001 // Java tool interface class GuiTool
002 // This file is generated automatically, please do not edit!
003 // generation time: Mar 14, 2007 10:20:35 AM
004
005 package nl.cwi.sen1.gui;
006
007 import java.util.HashSet;
008 import java.util.List;
009 import java.util.Set;
010
011 import toolbus.SwingTool;
012
013 import aterm.ATerm;
014 import aterm.ATermAppl;
015 import aterm.ATermFactory;
016 import aterm.ATermList;
017
018 abstract public class GuiTool
019 extends SwingTool
020 implements GuiTif
021 {
022 // This table will hold the complete input signature
023 private Set<ATerm> sigTable = new HashSet<ATerm>();
024
025 // Patterns that are used to match against incoming terms
026 private ATerm PloadJarUrls0;
027 private ATerm PloadJar0;
028 private ATerm PaddMenuEvents0;
029 private ATerm PloadJarClasspath0;
030 private ATerm PjobDone0;
031 private ATerm PaddJob0;
032 private ATerm PsetStatus0;
033 private ATerm PsetTitle0;
034 private ATerm PrecAckEvent0;
035 private ATerm PrecTerminate0;
036
037 // Mimic the constructor from the AbstractTool class
038 protected GuiTool(ATermFactory factory)
039 {
040 super(factory);
041 initSigTable();
042 initPatterns();
043 }
044
045 // This method initializes the table with input signatures
046 private void initSigTable()
047 {
048 sigTable.add(factory.parse("rec-do(<gui>,set-title(<str>))"));
049 sigTable.add(factory.parse("rec-do(<gui>,load-jar(<str>))"));
050 sigTable.add(factory.parse("rec-do(<gui>,load-jar-classpath(<str>,<str>))"));
051 sigTable.add(factory.parse("rec-do(<gui>,load-jar-urls(<str>,<list>))"));
052 sigTable.add(factory.parse("rec-do(<gui>,set-status(<str>))"));
053 sigTable.add(factory.parse("rec-do(<gui>,add-job(<str>))"));
054 sigTable.add(factory.parse("rec-do(<gui>,job-done(<str>))"));
055 sigTable.add(factory.parse("rec-do(<gui>,add-menu-events(<list>))"));
056 sigTable.add(factory.parse("rec-ack-event(<gui>,<term>)"));
057 sigTable.add(factory.parse("rec-terminate(<gui>,<term>)"));
058 }
059
060 // Initialize the patterns that are used to match against incoming terms
061 private void initPatterns()
062 {
063 PloadJarUrls0 = factory.parse("rec-do(load-jar-urls(<str>,<term>))");
064 PloadJar0 = factory.parse("rec-do(load-jar(<str>))");
065 PaddMenuEvents0 = factory.parse("rec-do(add-menu-events(<term>))");
066 PloadJarClasspath0 = factory.parse("rec-do(load-jar-classpath(<str>,<str>))");
067 PjobDone0 = factory.parse("rec-do(job-done(<str>))");
068 PaddJob0 = factory.parse("rec-do(add-job(<str>))");
069 PsetStatus0 = factory.parse("rec-do(set-status(<str>))");
070 PsetTitle0 = factory.parse("rec-do(set-title(<str>))");
071 PrecAckEvent0 = factory.parse("rec-ack-event(<term>)");
072 PrecTerminate0 = factory.parse("rec-terminate(<term>)");
073 }
074
075 // The generic handler calls the specific handlers
076 public ATerm handler(ATerm term)
077 {
078 List<?> result;
079
080 result = term.match(PloadJarUrls0);
081 if (result != null) {
082 loadJarUrls((String)result.get(0), (ATerm)result.get(1));
083 return null;
084 }
085 result = term.match(PloadJar0);
086 if (result != null) {
087 loadJar((String)result.get(0));
088 return null;
089 }
090 result = term.match(PaddMenuEvents0);
091 if (result != null) {
092 addMenuEvents((ATerm)result.get(0));
093 return null;
094 }
095 result = term.match(PloadJarClasspath0);
096 if (result != null) {
097 loadJarClasspath((String)result.get(0), (String)result.get(1));
098 return null;
099 }
100 result = term.match(PjobDone0);
101 if (result != null) {
102 jobDone((String)result.get(0));
103 return null;
104 }
105 result = term.match(PaddJob0);
106 if (result != null) {
107 addJob((String)result.get(0));
108 return null;
109 }
110 result = term.match(PsetStatus0);
111 if (result != null) {
112 setStatus((String)result.get(0));
113 return null;
114 }
115 result = term.match(PsetTitle0);
116 if (result != null) {
117 setTitle((String)result.get(0));
118 return null;
119 }
120 result = term.match(PrecAckEvent0);
121 if (result != null) {
122 recAckEvent((ATerm)result.get(0));
123 return null;
124 }
125 result = term.match(PrecTerminate0);
126 if (result != null) {
127 recTerminate((ATerm)result.get(0));
128 return null;
129 }
130
131 notInInputSignature(term);
132 return null;
133 }
134
135 // Check the input signature
136 public void checkInputSignature(ATermList sigs)
137 {
138 while(!sigs.isEmpty()) {
139 ATermAppl sig = (ATermAppl)sigs.getFirst();
140 sigs = sigs.getNext();
141 if (!sigTable.contains(sig)) {
142 // Sorry, but the term is not in the input signature!
143 notInInputSignature(sig);
144 }
145 }
146 }
147
148 // This function is called when an input term
149 // was not in the input signature.
150 void notInInputSignature(ATerm t)
151 {
152 throw new RuntimeException("term not in input signature: " + t);
153 }
154 }