]> git.somenet.org - pub/jan/sbc.git/blob - src/main/java/at/ac/tuwien/sbc/valesriegler/xvsm/waiter/Waiter.java
Some space refactoring. Doing away with unnecessary containers. Auto-Reloading of...
[pub/jan/sbc.git] / src / main / java / at / ac / tuwien / sbc / valesriegler / xvsm / waiter / Waiter.java
1 package at.ac.tuwien.sbc.valesriegler.xvsm.waiter;
2
3 import java.io.Serializable;
4
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7
8 import at.ac.tuwien.sbc.valesriegler.xvsm.WaiterXVSM;
9
10 /**
11  * This is a waiter using XVSM
12  * 
13  * @author Gregor Riegler <gregor DOT riegler AT gmail DOT com>
14  * 
15  */
16 public class Waiter implements Serializable {
17         private static final String USAGE = "Waiter needs exactly one parameter: ID of type Integer";
18         private static final Logger log = LoggerFactory.getLogger(Waiter.class);
19
20         private int id;
21         private WaiterXVSM xvsm;
22
23         public static void main(String[] args) {
24                 if (args.length != 1) {
25                         throw new IllegalArgumentException(USAGE);
26                 }
27
28                 int parsedId = 0;
29                 try {
30                         parsedId = Integer.parseInt(args[0]);
31                 } catch (NumberFormatException e) {
32                         log.error(USAGE);
33                         return;
34                 }
35
36                 Waiter waiter = new Waiter(parsedId);
37                 waiter.start();
38         }
39
40         private void start() {
41                 xvsm = new WaiterXVSM(id);
42                 
43                 xvsm.listenForOrderRequests();
44                 
45                 xvsm.listenForPaymentRequest();
46                 
47                 xvsm.listenForPreparedPizzas();
48                 
49                 // when new guests arrive the waiter should try to assign a table to them
50                 xvsm.listenForNewGuests();
51                 
52                 // when tables get free the waiter should have a look if there are waiting guests and assign the new table to them
53                 xvsm.listenForFreeTable();
54         }
55
56
57         public Waiter(int id) {
58                 this.id = id;
59                 log.info("I AM A WAITER WITH ID {}", id);
60         }
61
62 }