View Javadoc

1   /*
2    * Copyright (C) 2007 ETH Zurich
3    *
4    * This file is part of Fosstrak (www.fosstrak.org).
5    *
6    * Fosstrak is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Lesser General Public
8    * License version 2.1, as published by the Free Software Foundation.
9    *
10   * Fosstrak is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13   * Lesser General Public License for more details.
14   *
15   * You should have received a copy of the GNU Lesser General Public
16   * License along with Fosstrak; if not, write to the Free
17   * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18   * Boston, MA  02110-1301  USA
19   */
20  
21  package org.fosstrak.epcis.captureclient;
22  
23  import java.util.ArrayList;
24  
25  /**
26   * Implements an example event object for the EPCIS Query Interface Client.
27   * 
28   * @author David Gubler
29   */
30  public class CaptureEvent {
31      /**
32       * Human readable description to be shown in the GUI.
33       */
34      private String desc = null;
35  
36      /**
37       * Type of the event.<br>
38       * 0 = ObjectEvent<br>
39       * 1 = AggregationEvent<br>
40       * 2 = QuantityEvent<br>
41       * 3 = TransactionEvent
42       */
43      private int type = 0;
44  
45      /**
46       * The time at which the event occurred. Null will insert the time when the
47       * example is selected. Used by all events.
48       */
49      private String eventTime = null;
50  
51      /**
52       * The event time zone offset.
53       */
54      private String eventTimeZoneOffset = "+00:00";
55  
56      /**
57       * Action value. Not used for QuantityEvent.<br>
58       * 0 = ADD<br>
59       * 1 = OBSERVE<br>
60       * 2 = DELETE
61       */
62      private int action = 1;
63  
64      /**
65       * Business step. Optional for all events.
66       */
67      private String bizStep = "";
68  
69      /**
70       * Disposition. Optional for all events.
71       */
72      private String disposition = "";
73  
74      /**
75       * Read point. Optional for all events.
76       */
77      private String readPoint = "";
78  
79      /**
80       * Business location. Optional for all events.
81       */
82      private String bizLocation = "";
83  
84      /**
85       * Business transaction. Optional for all events except TransactionEvent.
86       */
87      private ArrayList<BizTransaction> businessTransactions = new ArrayList<BizTransaction>();
88  
89      /**
90       * List of EPCs. Mandatory for ObjectEvent and used by TransactionEvent, not
91       * used by other events.
92       */
93      private String epcList = "";
94  
95      /**
96       * List of children EPCs. Mandatory for AggregationEvent except if
97       * action=DELETE. Not used by other events.
98       */
99      private String childEPCs = "";
100 
101     /**
102      * ID of the parent (URI, but not necessarily an EPC). Mandatory for
103      * AggregationEvent, not used by other events.
104      */
105     private String parentID = "";
106 
107     /**
108      * Class part of the EPCs. Mandatory for QuantityEvent, not used by other
109      * events.
110      */
111     private String epcClass = "";
112 
113     /**
114      * Quantity. Mandatory for QuantityEvent, not used by other events.
115      */
116     private int quantity = 0;
117 
118     /**
119      * @param description
120      *            Sets the description.
121      */
122     public void setDescription(final String description) {
123         desc = description;
124     }
125 
126     /**
127      * @return The description of the event.
128      */
129     public String getDescription() {
130         return desc;
131     }
132 
133     /**
134      * @param type
135      *            Sets the event type.<br>
136      *            0 = ObjectEvent<br>
137      *            1 = AggregationEvent<br>
138      *            2 = QuantityEvent<br>
139      *            3 = TransactionEvent
140      */
141     public void setType(final int type) {
142         this.type = type;
143     }
144 
145     /**
146      * @return The type of the event.<br>
147      *         0 = ObjectEvent<br>
148      *         1 = AggregationEvent<br>
149      *         2 = QuantityEvent<br>
150      *         3 = TransactionEvent
151      */
152     public int getType() {
153         return type;
154     }
155 
156     /**
157      * @param time
158      *            Sets the event time. Use ISO8601, i.e. 2006-05-23T17:45:25
159      */
160     public void setEventTime(final String time) {
161         eventTime = time;
162     }
163 
164     /**
165      * @return The time of the event.
166      */
167     public String getEventTime() {
168         return eventTime;
169     }
170 
171     /**
172      * @param timeZoneOffset
173      *            Sets the event time zone offset.
174      */
175     public void setEventTimeZoneOffset(final String timeZoneOffset) {
176         eventTimeZoneOffset = timeZoneOffset;
177     }
178 
179     /**
180      * @return The time zone offset of the event.
181      */
182     public String getEventTimeZoneOffset() {
183         return eventTimeZoneOffset;
184     }
185 
186     /**
187      * @param action
188      *            Sets the action value.<br>
189      *            0 = ADD<br>
190      *            1 = OBSERVE<br>
191      *            2 = DELETE
192      */
193     public void setAction(final int action) {
194         this.action = action;
195     }
196 
197     /**
198      * @return The action value.<br>
199      *         0 = ADD<br>
200      *         1 = OBSERVE<br>
201      *         2 = DELETE
202      */
203     public int getAction() {
204         return action;
205     }
206 
207     /**
208      * @param step
209      *            Sets the business step.
210      */
211     public void setBizStep(final String step) {
212         bizStep = step;
213     }
214 
215     /**
216      * @return The business step.
217      */
218     public String getBizStep() {
219         return bizStep;
220     }
221 
222     /**
223      * @param disp
224      *            Sets the disposition.
225      */
226     public void setDisposition(final String disp) {
227         disposition = disp;
228     }
229 
230     /**
231      * @return The disposition.
232      */
233     public String getDisposition() {
234         return disposition;
235     }
236 
237     /**
238      * @param readp
239      *            Sets the read point.
240      */
241     public void setReadPoint(final String readp) {
242         readPoint = readp;
243     }
244 
245     /**
246      * @return The read point.
247      */
248     public String getReadPoint() {
249         return readPoint;
250     }
251 
252     /**
253      * @param location
254      *            Sets the business location.
255      */
256     public void setBizLocation(final String location) {
257         bizLocation = location;
258     }
259 
260     /**
261      * @return The business location.
262      */
263     public String getBizLocation() {
264         return bizLocation;
265     }
266 
267     /**
268      * Sets the business transaction.
269      * 
270      * @param t
271      *            The type of the business transaction.
272      * @param id
273      *            The id of the business transaction.
274      */
275     public void setBizTransaction(final String t, final String id) {
276         BizTransaction bizTrans = new BizTransaction(t, id);
277         businessTransactions.add(bizTrans);
278     }
279 
280     /**
281      * @return The business transaction.
282      */
283     public ArrayList<BizTransaction> getBizTransaction() {
284         return businessTransactions;
285     }
286 
287     /**
288      * @param list
289      *            Sets the list of EPCs (for object and transaction events).
290      */
291     public void setEpcList(final String list) {
292         epcList = list;
293     }
294 
295     /**
296      * @return list The list of EPCs (for object and transaction events).
297      */
298     public String getEpcList() {
299         return epcList;
300     }
301 
302     /**
303      * @param epcs
304      *            Sets the list of children EPCs (for aggregation events).
305      */
306     public void setChildEPCs(final String epcs) {
307         childEPCs = epcs;
308     }
309 
310     /**
311      * @return epcs The list of children EPCs (for aggregation events).
312      */
313     public String getChildEPCs() {
314         return childEPCs;
315     }
316 
317     /**
318      * @param id
319      *            Sets the id of the parent object (for aggregation events).
320      */
321     public void setParentID(final String id) {
322         parentID = id;
323     }
324 
325     /**
326      * @return id The id of the parent object (for aggregation events).
327      */
328     public String getParentID() {
329         return parentID;
330     }
331 
332     /**
333      * @param cls
334      *            Sets the EPC class (for quantity events).
335      */
336     public void setEpcClass(final String cls) {
337         epcClass = cls;
338     }
339 
340     /**
341      * @return cls The EPC class (for quantity events).
342      */
343     public String getEpcClass() {
344         return epcClass;
345     }
346 
347     /**
348      * @param n
349      *            Sets the quantity (for quantity events).
350      */
351     public void setQuantity(final int n) {
352         quantity = n;
353     }
354 
355     /**
356      * @return quantity The quantity (for quantity events).
357      */
358     public int getQuantity() {
359         return quantity;
360     }
361 
362     /**
363      * A BusinessTransaction conists of two elements, the BizTransTypeID and the
364      * BizTransID which are Vocabularies.
365      * 
366      * @author Alain Remund
367      */
368     public class BizTransaction {
369         /**
370          * The private Variable for the BizTransTypeID.
371          */
372         private String type;
373 
374         /**
375          * The private Variable for the BizTransID.
376          */
377         private String id;
378 
379         /**
380          * Constructor for a new BusinessTransaction.
381          * 
382          * @param aType
383          *            with the value of the BizTransTypeID.
384          * @param aId
385          *            with the value of the BizTransID.
386          */
387         public BizTransaction(final String aType, final String aId) {
388             type = aType;
389             id = aId;
390         }
391 
392         /**
393          * @return value of the BizTransTypeID.
394          */
395         public String getBizTransType() {
396             return type;
397         }
398 
399         /**
400          * @return value of the BizTransID.
401          */
402         public String getBizTransID() {
403             return id;
404         }
405     }
406 }