001    package nl.cwi.sen1.visplugin;
002    
003    // Java tool interface class VisualizationPluginTool
004    // This file is generated automatically, please do not edit!
005    // generation time: Mar 14, 2007 12:48:38 PM
006    
007    
008    import java.util.HashSet;
009    import java.util.List;
010    import java.util.Set;
011    
012    import toolbus.AbstractTool;
013    
014    import aterm.ATerm;
015    import aterm.ATermAppl;
016    import aterm.ATermFactory;
017    import aterm.ATermList;
018    
019    abstract public class VisualizationPluginTool
020      extends AbstractTool
021      implements VisualizationPluginTif
022    {
023      // This table will hold the complete input signature
024      private Set<ATerm> sigTable = new HashSet<ATerm>();
025    
026      // Patterns that are used to match against incoming terms
027      private ATerm PvpFileDialogResult0;
028      private ATerm PvpVisualizeFact0;
029      private ATerm PvpRstoreUnloaded0;
030      private ATerm PvpFileDialogCancel0;
031      private ATerm PvpFactOutOfDate0;
032      private ATerm PvpGetName0;
033      private ATerm PvpIsTypeSupported0;
034      private ATerm PrecAckEvent0;
035      private ATerm PrecTerminate0;
036    
037      // Mimic the constructor from the AbstractTool class
038      protected VisualizationPluginTool(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-eval(<visualizationPlugin>,vp-get-name)"));
049        sigTable.add(factory.parse("rec-eval(<visualizationPlugin>,vp-is-type-supported(<term>))"));
050        sigTable.add(factory.parse("rec-do(<visualizationPlugin>,vp-visualize-fact(<int>,<int>,<term>))"));
051        sigTable.add(factory.parse("rec-do(<visualizationPlugin>,vp-fact-out-of-date(<int>,<int>))"));
052        sigTable.add(factory.parse("rec-ack-event(<visualizationPlugin>,<term>)"));
053        sigTable.add(factory.parse("rec-do(<visualizationPlugin>,vp-file-dialog-result(<int>,<str>))"));
054        sigTable.add(factory.parse("rec-do(<visualizationPlugin>,vp-file-dialog-cancel(<int>))"));
055        sigTable.add(factory.parse("rec-do(<visualizationPlugin>,vp-rstore-unloaded(<int>))"));
056        sigTable.add(factory.parse("rec-terminate(<visualizationPlugin>,<term>)"));
057      }
058    
059      // Initialize the patterns that are used to match against incoming terms
060      private void initPatterns()
061      {
062        PvpFileDialogResult0 = factory.parse("rec-do(vp-file-dialog-result(<int>,<str>))");
063        PvpVisualizeFact0 = factory.parse("rec-do(vp-visualize-fact(<int>,<int>,<term>))");
064        PvpRstoreUnloaded0 = factory.parse("rec-do(vp-rstore-unloaded(<int>))");
065        PvpFileDialogCancel0 = factory.parse("rec-do(vp-file-dialog-cancel(<int>))");
066        PvpFactOutOfDate0 = factory.parse("rec-do(vp-fact-out-of-date(<int>,<int>))");
067        PvpGetName0 = factory.parse("rec-eval(vp-get-name)");
068        PvpIsTypeSupported0 = factory.parse("rec-eval(vp-is-type-supported(<term>))");
069        PrecAckEvent0 = factory.parse("rec-ack-event(<term>)");
070        PrecTerminate0 = factory.parse("rec-terminate(<term>)");
071      }
072    
073      // The generic handler calls the specific handlers
074      public ATerm handler(ATerm term)
075      {
076        List<?> result;
077    
078        result = term.match(PvpFileDialogResult0);
079        if (result != null) {
080          vpFileDialogResult(((Integer)result.get(0)).intValue(), (String)result.get(1));
081          return null;
082        }
083        result = term.match(PvpVisualizeFact0);
084        if (result != null) {
085          vpVisualizeFact(((Integer)result.get(0)).intValue(), ((Integer)result.get(1)).intValue(), (ATerm)result.get(2));
086          return null;
087        }
088        result = term.match(PvpRstoreUnloaded0);
089        if (result != null) {
090          vpRstoreUnloaded(((Integer)result.get(0)).intValue());
091          return null;
092        }
093        result = term.match(PvpFileDialogCancel0);
094        if (result != null) {
095          vpFileDialogCancel(((Integer)result.get(0)).intValue());
096          return null;
097        }
098        result = term.match(PvpFactOutOfDate0);
099        if (result != null) {
100          vpFactOutOfDate(((Integer)result.get(0)).intValue(), ((Integer)result.get(1)).intValue());
101          return null;
102        }
103        result = term.match(PvpGetName0);
104        if (result != null) {
105          return vpGetName();
106        }
107        result = term.match(PvpIsTypeSupported0);
108        if (result != null) {
109          return vpIsTypeSupported((ATerm)result.get(0));
110        }
111        result = term.match(PrecAckEvent0);
112        if (result != null) {
113          recAckEvent((ATerm)result.get(0));
114          return null;
115        }
116        result = term.match(PrecTerminate0);
117        if (result != null) {
118          recTerminate((ATerm)result.get(0));
119          return null;
120        }
121    
122        notInInputSignature(term);
123        return null;
124      }
125    
126      // Check the input signature
127      public void checkInputSignature(ATermList sigs)
128      {
129        while(!sigs.isEmpty()) {
130          ATermAppl sig = (ATermAppl)sigs.getFirst();
131          sigs = sigs.getNext();
132          if (!sigTable.contains(sig)) {
133            // Sorry, but the term is not in the input signature!
134            notInInputSignature(sig);
135          }
136        }
137      }
138    
139      // This function is called when an input term
140      // was not in the input signature.
141      void notInInputSignature(ATerm t)
142      {
143        throw new RuntimeException("term not in input signature: " + t);
144      }
145    }