View Javadoc

1   package com.atlassian.plugins.rest.test;
2   
3   import com.atlassian.plugins.rest.common.Link;
4   import com.atlassian.plugins.rest.common.expand.Expandable;
5   import com.atlassian.plugins.rest.common.expand.Expander;
6   import com.google.common.collect.ImmutableList;
7   
8   import javax.ws.rs.core.UriInfo;
9   import static javax.xml.bind.annotation.XmlAccessType.*;
10  import javax.xml.bind.annotation.XmlAccessorType;
11  import javax.xml.bind.annotation.XmlAttribute;
12  import javax.xml.bind.annotation.XmlElement;
13  import javax.xml.bind.annotation.XmlRootElement;
14  import java.util.Collections;
15  import java.util.List;
16  
17  @XmlRootElement
18  @XmlAccessorType(FIELD)
19  @Expander(DeveloperExpander.class)
20  public class Developer
21  {
22      @XmlAttribute
23      private String expand;
24  
25      @XmlElement
26      private Link link;
27  
28      @XmlAttribute
29      private String userName;
30  
31      @XmlElement
32      private String fullName;
33  
34      @XmlElement
35      private String email;
36  
37      @XmlElement
38      @Expandable("drinks")
39      private FavouriteDrinks favouriteDrinks;
40  
41      public Link getLink()
42      {
43          return link;
44      }
45  
46      public void setLink(Link link)
47      {
48          this.link = link;
49      }
50  
51      public String getUserName()
52      {
53          return userName;
54      }
55  
56      public void setUserName(String userName)
57      {
58          this.userName = userName;
59      }
60  
61      public String getFullName()
62      {
63          return fullName;
64      }
65  
66      public void setFullName(String fullName)
67      {
68          this.fullName = fullName;
69      }
70  
71      public String getEmail()
72      {
73          return email;
74      }
75  
76      public void setEmail(String email)
77      {
78          this.email = email;
79      }
80  
81      public void setFavouriteDrinks(FavouriteDrinks favouriteDrinks)
82      {
83          this.favouriteDrinks = favouriteDrinks;
84      }
85  
86      public List<FavouriteDrink> getFavouriteDrinks()
87      {
88          return favouriteDrinks.getFavouriteDrinks() != null ? ImmutableList.copyOf(favouriteDrinks.getFavouriteDrinks()) : Collections.<FavouriteDrink>emptyList();
89      }
90  
91      public static Developer getDeveloper(String userName, UriInfo uriInfo)
92      {
93          final Developer developer = new Developer();
94          developer.setLink(Link.self(uriInfo.getAbsolutePathBuilder().path("developer").path(userName).build()));
95          developer.setUserName(userName);
96          return developer;
97      }
98  }