View Javadoc

1   package com.atlassian.plugins.rest.sample.entities;
2   
3   import com.atlassian.plugins.rest.common.security.AnonymousAllowed;
4   import com.sun.jersey.spi.resource.Singleton;
5   
6   import javax.ws.rs.Consumes;
7   import javax.ws.rs.POST;
8   import javax.ws.rs.Path;
9   import javax.ws.rs.Produces;
10  import javax.ws.rs.core.Context;
11  import javax.ws.rs.core.HttpHeaders;
12  import javax.ws.rs.core.MediaType;
13  import javax.ws.rs.core.Response;
14  import java.util.Iterator;
15  import java.util.List;
16  
17  @Path("fruit")
18  @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
19  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
20  @Singleton
21  public class EntityResource
22  {
23      @POST
24      @AnonymousAllowed
25      public Response applesForOranges(final Orange orange, @Context HttpHeaders headers)
26      {
27          return Response.ok(new Apple("apple-" + orange.getName(),
28                  toString(headers, "Content-Type"),
29                  toString(headers, "Accept")
30          )).build();
31      }
32  
33      private String toString(HttpHeaders headers, String headerName)
34      {
35          List<String> vals = headers.getRequestHeader(headerName);
36          if (vals.isEmpty())
37          {
38              return "N/A";
39          }
40          Iterator<String> it = vals.iterator();
41          StringBuilder buff = new StringBuilder(it.next());
42          while (it.hasNext())
43          {
44              buff.append(",").append(it.next());
45          }
46          return buff.toString();
47      }
48  }