001    // Java tool interface class ModuleManagerTool
002    // This file is generated automatically, please do not edit!
003    // generation time: Mar 7, 2007 10:19:46 AM
004    
005    package nl.cwi.sen1.modulemanager;
006    
007    import java.util.HashSet;
008    import java.util.List;
009    import java.util.Set;
010    
011    import toolbus.AbstractTool;
012    
013    import aterm.ATerm;
014    import aterm.ATermAppl;
015    import aterm.ATermFactory;
016    import aterm.ATermList;
017    
018    abstract public class ModuleManagerTool
019      extends AbstractTool
020      implements ModuleManagerTif
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 PdeleteDependencies0;
027      private ATerm PaddDependency0;
028      private ATerm PdeleteModule0;
029      private ATerm PdeleteAttribute0;
030      private ATerm PdeleteDependency0;
031      private ATerm PaddAttribute0;
032      private ATerm PregisterAttributeUpdateRule0;
033      private ATerm PgetAttribute0;
034      private ATerm PgetAllAttributes0;
035      private ATerm PgetDependencies0;
036      private ATerm PgetChildrenModules0;
037      private ATerm PgetAllParentModules0;
038      private ATerm PgetClosableModules0;
039      private ATerm PgetAllChildrenModules0;
040      private ATerm PgetAllModules0;
041      private ATerm PcreateModule0;
042      private ATerm PgetModuleIdByAttribute0;
043      private ATerm PgetModuleGraph0;
044      private ATerm PgetParentModules0;
045      private ATerm PrecAckEvent0;
046      private ATerm PrecTerminate0;
047    
048      // Mimic the constructor from the AbstractTool class
049      protected ModuleManagerTool(ATermFactory factory)
050      {
051        super(factory);
052        initSigTable();
053        initPatterns();
054      }
055    
056      // This method initializes the table with input signatures
057      private void initSigTable()
058      {
059        sigTable.add(factory.parse("rec-eval(<module-manager>,create-module)"));
060        sigTable.add(factory.parse("rec-eval(<module-manager>,get-module-id-by-attribute(<term>,<term>,<term>))"));
061        sigTable.add(factory.parse("rec-eval(<module-manager>,get-all-modules)"));
062        sigTable.add(factory.parse("rec-do(<module-manager>,delete-module(<module-id>))"));
063        sigTable.add(factory.parse("rec-do(<module-manager>,register-attribute-update-rule(<term>,<term>,<term>,<term>))"));
064        sigTable.add(factory.parse("rec-do(<module-manager>,add-attribute(<module-id>,<term>,<term>,<term>))"));
065        sigTable.add(factory.parse("rec-ack-event(<module-manager>,<term>)"));
066        sigTable.add(factory.parse("rec-eval(<module-manager>,get-attribute(<module-id>,<term>,<term>))"));
067        sigTable.add(factory.parse("rec-eval(<module-manager>,get-all-attributes(<module-id>))"));
068        sigTable.add(factory.parse("rec-do(<module-manager>,delete-attribute(<module-id>,<term>,<term>))"));
069        sigTable.add(factory.parse("rec-do(<module-manager>,add-dependency(<module-id>,<module-id>))"));
070        sigTable.add(factory.parse("rec-eval(<module-manager>,get-children-modules(<module-id>))"));
071        sigTable.add(factory.parse("rec-eval(<module-manager>,get-all-children-modules(<module-id>))"));
072        sigTable.add(factory.parse("rec-eval(<module-manager>,get-all-parent-modules(<module-id>))"));
073        sigTable.add(factory.parse("rec-eval(<module-manager>,get-parent-modules(<module-id>))"));
074        sigTable.add(factory.parse("rec-eval(<module-manager>,get-closable-modules(<module-id>))"));
075        sigTable.add(factory.parse("rec-do(<module-manager>,delete-dependency(<module-id>,<module-id>))"));
076        sigTable.add(factory.parse("rec-eval(<module-manager>,get-dependencies)"));
077        sigTable.add(factory.parse("rec-do(<module-manager>,delete-dependencies(<module-id>))"));
078        sigTable.add(factory.parse("rec-eval(<module-manager>,get-module-graph(<term>))"));
079        sigTable.add(factory.parse("rec-terminate(<module-manager>,<term>)"));
080      }
081    
082      // Initialize the patterns that are used to match against incoming terms
083      private void initPatterns()
084      {
085        PdeleteDependencies0 = factory.parse("rec-do(delete-dependencies(<term>))");
086        PaddDependency0 = factory.parse("rec-do(add-dependency(<term>,<term>))");
087        PdeleteModule0 = factory.parse("rec-do(delete-module(<term>))");
088        PdeleteAttribute0 = factory.parse("rec-do(delete-attribute(<term>,<term>,<term>))");
089        PdeleteDependency0 = factory.parse("rec-do(delete-dependency(<term>,<term>))");
090        PaddAttribute0 = factory.parse("rec-do(add-attribute(<term>,<term>,<term>,<term>))");
091        PregisterAttributeUpdateRule0 = factory.parse("rec-do(register-attribute-update-rule(<term>,<term>,<term>,<term>))");
092        PgetAttribute0 = factory.parse("rec-eval(get-attribute(<term>,<term>,<term>))");
093        PgetAllAttributes0 = factory.parse("rec-eval(get-all-attributes(<term>))");
094        PgetDependencies0 = factory.parse("rec-eval(get-dependencies)");
095        PgetChildrenModules0 = factory.parse("rec-eval(get-children-modules(<term>))");
096        PgetAllParentModules0 = factory.parse("rec-eval(get-all-parent-modules(<term>))");
097        PgetClosableModules0 = factory.parse("rec-eval(get-closable-modules(<term>))");
098        PgetAllChildrenModules0 = factory.parse("rec-eval(get-all-children-modules(<term>))");
099        PgetAllModules0 = factory.parse("rec-eval(get-all-modules)");
100        PcreateModule0 = factory.parse("rec-eval(create-module)");
101        PgetModuleIdByAttribute0 = factory.parse("rec-eval(get-module-id-by-attribute(<term>,<term>,<term>))");
102        PgetModuleGraph0 = factory.parse("rec-eval(get-module-graph(<term>))");
103        PgetParentModules0 = factory.parse("rec-eval(get-parent-modules(<term>))");
104        PrecAckEvent0 = factory.parse("rec-ack-event(<term>)");
105        PrecTerminate0 = factory.parse("rec-terminate(<term>)");
106      }
107    
108      // The generic handler calls the specific handlers
109      public ATerm handler(ATerm term)
110      {
111        List<?> result;
112    
113        result = term.match(PdeleteDependencies0);
114        if (result != null) {
115          deleteDependencies((ATerm)result.get(0));
116          return null;
117        }
118        result = term.match(PaddDependency0);
119        if (result != null) {
120          addDependency((ATerm)result.get(0), (ATerm)result.get(1));
121          return null;
122        }
123        result = term.match(PdeleteModule0);
124        if (result != null) {
125          deleteModule((ATerm)result.get(0));
126          return null;
127        }
128        result = term.match(PdeleteAttribute0);
129        if (result != null) {
130          deleteAttribute((ATerm)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2));
131          return null;
132        }
133        result = term.match(PdeleteDependency0);
134        if (result != null) {
135          deleteDependency((ATerm)result.get(0), (ATerm)result.get(1));
136          return null;
137        }
138        result = term.match(PaddAttribute0);
139        if (result != null) {
140          addAttribute((ATerm)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2), (ATerm)result.get(3));
141          return null;
142        }
143        result = term.match(PregisterAttributeUpdateRule0);
144        if (result != null) {
145          registerAttributeUpdateRule((ATerm)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2), (ATerm)result.get(3));
146          return null;
147        }
148        result = term.match(PgetAttribute0);
149        if (result != null) {
150          return getAttribute((ATerm)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2));
151        }
152        result = term.match(PgetAllAttributes0);
153        if (result != null) {
154          return getAllAttributes((ATerm)result.get(0));
155        }
156        result = term.match(PgetDependencies0);
157        if (result != null) {
158          return getDependencies();
159        }
160        result = term.match(PgetChildrenModules0);
161        if (result != null) {
162          return getChildrenModules((ATerm)result.get(0));
163        }
164        result = term.match(PgetAllParentModules0);
165        if (result != null) {
166          return getAllParentModules((ATerm)result.get(0));
167        }
168        result = term.match(PgetClosableModules0);
169        if (result != null) {
170          return getClosableModules((ATerm)result.get(0));
171        }
172        result = term.match(PgetAllChildrenModules0);
173        if (result != null) {
174          return getAllChildrenModules((ATerm)result.get(0));
175        }
176        result = term.match(PgetAllModules0);
177        if (result != null) {
178          return getAllModules();
179        }
180        result = term.match(PcreateModule0);
181        if (result != null) {
182          return createModule();
183        }
184        result = term.match(PgetModuleIdByAttribute0);
185        if (result != null) {
186          return getModuleIdByAttribute((ATerm)result.get(0), (ATerm)result.get(1), (ATerm)result.get(2));
187        }
188        result = term.match(PgetModuleGraph0);
189        if (result != null) {
190          return getModuleGraph((ATerm)result.get(0));
191        }
192        result = term.match(PgetParentModules0);
193        if (result != null) {
194          return getParentModules((ATerm)result.get(0));
195        }
196        result = term.match(PrecAckEvent0);
197        if (result != null) {
198          recAckEvent((ATerm)result.get(0));
199          return null;
200        }
201        result = term.match(PrecTerminate0);
202        if (result != null) {
203          recTerminate((ATerm)result.get(0));
204          return null;
205        }
206    
207        notInInputSignature(term);
208        return null;
209      }
210    
211      // Check the input signature
212      public void checkInputSignature(ATermList sigs)
213      {
214        while(!sigs.isEmpty()) {
215          ATermAppl sig = (ATermAppl)sigs.getFirst();
216          sigs = sigs.getNext();
217          if (!sigTable.contains(sig)) {
218            // Sorry, but the term is not in the input signature!
219            notInInputSignature(sig);
220          }
221        }
222      }
223    
224      // This function is called when an input term
225      // was not in the input signature.
226      void notInInputSignature(ATerm t)
227      {
228        throw new RuntimeException("term not in input signature: " + t);
229      }
230    }