]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/types/Order.java
[JMS] OLD workflow now works with dynamic pizzerias.
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / types / Order.java
1 package at.ac.tuwien.sbc.valesriegler.types;
2
3 import java.io.Serializable;
4 import java.util.ArrayList;
5 import java.util.List;
6
7 import org.mozartspaces.capi3.Queryable;
8
9 import at.ac.tuwien.sbc.valesriegler.common.HasId;
10 import at.ac.tuwien.sbc.valesriegler.common.Util;
11
12 /**
13  * Object denotes a Group's interest in pizzas and the state of the pizzas
14  * themselves.
15  * 
16  * @author jan
17  * 
18  */
19 @Queryable(autoindex = true)
20 public class Order implements Serializable, HasId {
21         private static int idNext = 0;
22         private Integer id;
23         private Integer groupId;
24         private OrderStatus status;
25
26         private List<PizzaOrder> orderedPizzas;
27         private List<Pizza> cookedPizzas;
28
29         // this is necessary so that i can make a xvsm linda selection on it
30         private Integer numberOfPizzas;
31
32         public Order() {
33         }
34
35         public Order(int groupId, List<PizzaOrder> orderedPizzas) {
36                 // TODO don't set the id here but let the waiter set it
37                 // genId();
38                 this.groupId = groupId;
39                 status = OrderStatus.NEW;
40                 this.orderedPizzas = orderedPizzas;
41                 cookedPizzas = new ArrayList<Pizza>();
42         }
43
44         public Order(HasId group, List<PizzaOrder> orderedPizzas) {
45                 // TODO don't set the id here but let the waiter set it
46                 // genId();
47                 groupId = group.getId();
48                 status = OrderStatus.NEW;
49                 this.orderedPizzas = orderedPizzas;
50                 cookedPizzas = new ArrayList<Pizza>();
51         }
52
53         public void addCookedPizza(Pizza pizza) {
54                 cookedPizzas.add(pizza);
55         }
56
57         public List<Pizza> getCookedPizzas() {
58                 return cookedPizzas;
59         }
60
61         public int getGroupId() {
62                 return groupId;
63         }
64
65         public int getNumberOfPizzas() {
66                 return Util.getIntSafe(numberOfPizzas);
67         }
68
69         public void setNumberOfPizzas(Integer numberOfPizzas) {
70                 this.numberOfPizzas = numberOfPizzas;
71         }
72
73         public void setId(Integer id) {
74                 this.id = id;
75         }
76         public void genId() {
77                 id = ++idNext;
78         }
79
80         @Override
81         public int getId() {
82                 return id;
83         }
84
85         public List<PizzaOrder> getOrderedPizzas() {
86                 return orderedPizzas;
87         }
88
89         public OrderStatus getStatus() {
90                 return status;
91         }
92
93         public void setCookedPizzas(List<Pizza> cookedPizzas) {
94                 this.cookedPizzas = cookedPizzas;
95         }
96
97         public void setGroupId(int groupId) {
98                 this.groupId = groupId;
99         }
100
101         public void setOrderedPizzas(List<PizzaOrder> orderedPizzas) {
102                 this.orderedPizzas = orderedPizzas;
103         }
104
105         public void setStatus(OrderStatus status) {
106                 this.status = status;
107         }
108
109         @Override
110         public String toString() {
111                 return "Order [id=" + id + ", groupId=" + groupId + ", status=" + status + ", orderedPizzas=" + orderedPizzas
112                                 + ", cookedPizzas=" + cookedPizzas + "]";
113         }
114 }