1   package com.atlassian.plugins.rest.test;
2   
3   import com.atlassian.plugins.rest.common.expand.Expandable;
4   import com.atlassian.plugins.rest.common.expand.entity.ListWrapper;
5   import com.atlassian.plugins.rest.common.expand.entity.ListWrapperCallback;
6   import com.google.common.base.Preconditions;
7   
8   import static javax.xml.bind.annotation.XmlAccessType.*;
9   import javax.xml.bind.annotation.XmlAccessorType;
10  import javax.xml.bind.annotation.XmlAttribute;
11  import javax.xml.bind.annotation.XmlElement;
12  import javax.xml.bind.annotation.XmlRootElement;
13  import javax.xml.bind.annotation.XmlTransient;
14  import java.util.List;
15  
16  @XmlRootElement
17  @XmlAccessorType(FIELD)
18  public class FavouriteDrinks implements ListWrapper<FavouriteDrink>
19  {
20      @XmlAttribute
21      private String expand;
22  
23      @XmlAttribute
24      private int size;
25  
26      @XmlElement(name = "drink")
27      @Expandable
28      private List<FavouriteDrink> favouriteDrinks;
29  
30      @XmlTransient
31      private final ListWrapperCallback<FavouriteDrink> callback;
32  
33      @SuppressWarnings("unused")
34      private FavouriteDrinks()
35      {
36          this.size = 0;
37          callback = null;
38      }
39  
40      public FavouriteDrinks(int size, ListWrapperCallback<FavouriteDrink> callback)
41      {
42          this.size = size;
43          this.callback = Preconditions.checkNotNull(callback);
44      }
45  
46      public int getSize()
47      {
48          return size;
49      }
50  
51      public List<FavouriteDrink> getFavouriteDrinks()
52      {
53          return favouriteDrinks;
54      }
55  
56      public void setFavouriteDrinks(List<FavouriteDrink> favouriteDrinks)
57      {
58          this.favouriteDrinks = favouriteDrinks;
59      }
60  
61      public ListWrapperCallback<FavouriteDrink> getCallback()
62      {
63          return callback;
64      }
65  }