001 // Java tool interface class TideControlTool 002 // This file is generated automatically, please do not edit! 003 // generation time: Feb 20, 2007 2:36:36 PM 004 005 package nl.cwi.sen1.tide; 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 TideControlTool 019 extends AbstractTool 020 implements TideControlTif 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 PrecTerminate0; 027 028 // Mimic the constructor from the AbstractTool class 029 protected TideControlTool(ATermFactory factory) 030 { 031 super(factory); 032 initSigTable(); 033 initPatterns(); 034 } 035 036 // This method initializes the table with input signatures 037 private void initSigTable() 038 { 039 sigTable.add(factory.parse("rec-terminate(<tide-control>,<term>)")); 040 sigTable.add(factory.parse("rec-ack-event(<debug-tool>,<term>)")); 041 sigTable.add(factory.parse("rec-do(<debug-tool>,adapter-connected(<debug-adapter>))")); 042 sigTable.add(factory.parse("rec-do(<debug-tool>,adapter-disconnected(<debug-adapter>))")); 043 sigTable.add(factory.parse("rec-do(<debug-tool>,process-created(<proc(<debug-adapter>,<int>)>,<str>))")); 044 sigTable.add(factory.parse("rec-do(<debug-tool>,process-destroyed(<proc(<debug-adapter>,<int>)>))")); 045 sigTable.add(factory.parse("rec-do(<debug-tool>,event(<proc(<debug-adapter>,<int>)>,<int>,<term>))")); 046 sigTable.add(factory.parse("rec-terminate(<debug-tool>,<term>)")); 047 sigTable.add(factory.parse("rec-eval(<debug-adapter>,evaluate(<int>,<term>))")); 048 sigTable.add(factory.parse("rec-eval(<debug-adapter>,create-rule(<int>,<term>,<term>,<term>,<term>,<term>))")); 049 sigTable.add(factory.parse("rec-eval(<debug-adapter>,enable-rule(<int>,<int>))")); 050 sigTable.add(factory.parse("rec-eval(<debug-adapter>,disable-rule(<int>,<int>))")); 051 sigTable.add(factory.parse("rec-eval(<debug-adapter>,modify-rule(<int>,<int>,<term>,<term>,<term>,<term>))")); 052 sigTable.add(factory.parse("rec-eval(<debug-adapter>,delete-rule(<int>,<int>))")); 053 sigTable.add(factory.parse("rec-ack-event(<debug-adapter>,<term>)")); 054 sigTable.add(factory.parse("rec-terminate(<debug-adapter>,<term>)")); 055 } 056 057 // Initialize the patterns that are used to match against incoming terms 058 private void initPatterns() 059 { 060 PrecTerminate0 = factory.parse("rec-terminate(<term>)"); 061 } 062 063 // The generic handler calls the specific handlers 064 public ATerm handler(ATerm term) 065 { 066 List<?> result; 067 068 result = term.match(PrecTerminate0); 069 if (result != null) { 070 recTerminate((ATerm)result.get(0)); 071 return null; 072 } 073 074 notInInputSignature(term); 075 return null; 076 } 077 078 // Check the input signature 079 public void checkInputSignature(ATermList sigs) 080 { 081 while(!sigs.isEmpty()) { 082 ATermAppl sig = (ATermAppl)sigs.getFirst(); 083 sigs = sigs.getNext(); 084 if (!sigTable.contains(sig)) { 085 // Sorry, but the term is not in the input signature! 086 notInInputSignature(sig); 087 } 088 } 089 } 090 091 // This function is called when an input term 092 // was not in the input signature. 093 void notInInputSignature(ATerm t) 094 { 095 throw new RuntimeException("term not in input signature: " + t); 096 } 097 }