1 package net.staniscia.sbs1.parser;
2
3 import net.staniscia.sbs1.*;
4 import net.staniscia.sbs1.msg.*;
5
6 import java.io.InputStream;
7
8
9
10
11
12 class SBS1SimpleScannerParser implements SBS1Parser, SBS1ParserHandler {
13
14
15 private final SBS1SimpleListenerCaller observers;
16
17 SBS1SimpleScannerParser() {
18 observers = new SBS1SimpleListenerCaller();
19 }
20
21 @Override
22 public void register(SBS1Observer observer) {
23 observers.register(observer);
24 }
25
26 @Override
27 public void unRegister(SBS1Observer observer) {
28 observers.unRegister(observer);
29 }
30
31 @Override
32 public boolean isDone() {
33 return !observers.isActive();
34 }
35
36 @Override
37 public void cancel() {
38 observers.doStop();
39 }
40
41
42 @Override
43 public SBS1ParserHandler process(InputStream s) {
44 return null;
45 }
46
47 @Override
48 public void processIt(String s) {
49 try {
50 process(s);
51 } catch (InvalidMessageHeatherException e) {
52 e.printStackTrace();
53 } catch (InvalidMessageBobyException e) {
54 e.printStackTrace();
55 }
56 }
57
58
59 private void process(String line) throws InvalidMessageHeatherException, InvalidMessageBobyException {
60 String[] msg = line.split(",");
61 if (msg.length > 2) {
62 String s = (new StringBuilder().append(msg[0]).append(msg[1]).toString()).toLowerCase();
63 if (s.equals("msg1")) {
64 observers.update(MsgFactory.makeMSG(msg, MSG1.class));
65 } else if (s.equals("msg2")) {
66 observers.update(MsgFactory.makeMSG(msg, MSG2.class));
67 } else if (s.equals("msg3")) {
68 observers.update(MsgFactory.makeMSG(msg, MSG3.class));
69 } else if (s.equals("msg4")) {
70 observers.update(MsgFactory.makeMSG(msg, MSG4.class));
71 } else if (s.equals("msg5")) {
72 observers.update(MsgFactory.makeMSG(msg, MSG5.class));
73 } else if (s.equals("msg6")) {
74 observers.update(MsgFactory.makeMSG(msg, MSG6.class));
75 } else if (s.equals("msg7")) {
76 observers.update(MsgFactory.makeMSG(msg, MSG7.class));
77 } else if (s.equals("msg8")) {
78 observers.update(MsgFactory.makeMSG(msg, MSG8.class));
79 } else if (s.equals("sel")) {
80 observers.update(MsgFactory.makeMSG(msg, SEL.class));
81 } else if (s.equals("id")) {
82 observers.update(MsgFactory.makeMSG(msg, ID.class));
83 } else if (s.equals("air")) {
84 observers.update(MsgFactory.makeMSG(msg, AIR.class));
85 } else if (s.equals("sta")) {
86 observers.update(MsgFactory.makeMSG(msg, STA.class));
87 } else if (s.equals("clk")) {
88 observers.update(MsgFactory.makeMSG(msg, CLK.class));
89 } else {
90 throw new InvalidMessageHeatherException();
91 }
92 }
93 }
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122 }