View Javadoc

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          sb.append("   switch (" + tstfield + ") {\n");
40  
41          for (String[] sa : matchCalls) {
42             String sm = sa[0];
43             String sc = sa[1];
44             sb.append ("      case \"" + sm + "\" :\n");
45             sb.append("          " + sc + ";\n");
46             sb.append("          break;\n");
47          }
48          sb. append("      defalut :\n");
49          sb.append("          System.out.println(\"warning - dropped event \" + " + tstfield + ");\n");
50  
51          sb.append ("   }\n");
52          */
53  
54          //    E.info("case relay body written " + sb.toString());
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  }