1 package org.catacomb.act;
2
3 import java.util.ArrayList;
4
5
6 public class CaseRelayBody extends MethodBody {
7
8 ArrayList<String[]> matchCalls;
9 String tstfield;
10
11
12 public CaseRelayBody(String s) {
13 tstfield = s;
14 matchCalls = new ArrayList<String[]>();
15 }
16
17
18
19 public String write() {
20 StringBuffer sb = new StringBuffer();
21
22 sb.append(" ");
23 for (String[] sa : matchCalls) {
24 String sm = sa[0];
25 String sc = sa[1];
26 sb.append("if (" + tstfield + ".equals(\"" + sm + "\")) {\n");
27 sb.append(" " + sc + ";\n");
28 sb.append(" } else ");
29 }
30 sb.append("{\n");
31
32 sb.append(" RunError.error(\"dropped event (no match for \" + " +
33 tstfield + " + \") in \" + this);\n");
34
35 sb.append(" }\n");
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 return sb.toString();
57 }
58
59
60
61
62 public void addCase(String sid, String call) {
63 String[] sa = {sid, call};
64 matchCalls.add(sa);
65 }
66
67 }