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.GET;
8   import javax.ws.rs.POST;
9   import javax.ws.rs.Path;
10  import javax.ws.rs.Produces;
11  import javax.ws.rs.core.Context;
12  import javax.ws.rs.core.HttpHeaders;
13  import javax.ws.rs.core.MediaType;
14  import javax.ws.rs.core.Response;
15  
16  import java.util.Date;
17  import java.util.Iterator;
18  import java.util.List;
19  
20  @Path("fruit")
21  @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
22  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
23  @Singleton
24  public class EntityResource {
25      @POST
26      @AnonymousAllowed
27      public Response applesForOranges(final Orange orange, @Context HttpHeaders headers) {
28          return Response.ok(new Apple("apple-" + orange.getName(),
29                  toString(headers, "Content-Type"),
30                  toString(headers, "Accept")
31          )).build();
32      }
33  
34      private String toString(HttpHeaders headers, String headerName) {
35          List<String> vals = headers.getRequestHeader(headerName);
36          if (vals.isEmpty()) {
37              return "N/A";
38          }
39          Iterator<String> it = vals.iterator();
40          StringBuilder buff = new StringBuilder(it.next());
41          while (it.hasNext()) {
42              buff.append(",").append(it.next());
43          }
44          return buff.toString();
45      }
46  
47      @GET
48      @AnonymousAllowed
49      @Path("jackfruit")
50      public JackFruit get() {
51          return new JackFruit("fresh at " + new Date());
52      }
53  }