001 // Java tool interface class RStoreContainerTool 002 // This file is generated automatically, please do not edit! 003 // generation time: Aug 14, 2007 5:22:04 PM 004 005 package nl.cwi.sen1.visbase.rstorecontainer; 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 RStoreContainerTool 019 extends AbstractTool 020 implements RStoreContainerTif 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 PrcUnloadRstore0; 027 private ATerm PrcGetFactData0; 028 private ATerm PrcGetRstore0; 029 private ATerm PrcGetRstoreFacts0; 030 private ATerm PrcLoadRstore0; 031 private ATerm PrcLoadRstore1; 032 private ATerm PrecAckEvent0; 033 private ATerm PrecTerminate0; 034 035 // Mimic the constructor from the AbstractTool class 036 protected RStoreContainerTool(ATermFactory factory) 037 { 038 super(factory); 039 initSigTable(); 040 initPatterns(); 041 } 042 043 // This method initializes the table with input signatures 044 private void initSigTable() 045 { 046 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-load-rstore(<str>))")); 047 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-load-rstore(<str>,<term>))")); 048 sigTable.add(factory.parse("rec-ack-event(<rStoreContainer>,<term>)")); 049 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-get-rstore(<int>))")); 050 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-get-rstore-facts(<int>))")); 051 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-get-fact-data(<int>,<int>))")); 052 sigTable.add(factory.parse("rec-eval(<rStoreContainer>,rc-unload-rstore(<int>))")); 053 sigTable.add(factory.parse("rec-terminate(<rStoreContainer>,<term>)")); 054 } 055 056 // Initialize the patterns that are used to match against incoming terms 057 private void initPatterns() 058 { 059 PrcUnloadRstore0 = factory.parse("rec-eval(rc-unload-rstore(<int>))"); 060 PrcGetFactData0 = factory.parse("rec-eval(rc-get-fact-data(<int>,<int>))"); 061 PrcGetRstore0 = factory.parse("rec-eval(rc-get-rstore(<int>))"); 062 PrcGetRstoreFacts0 = factory.parse("rec-eval(rc-get-rstore-facts(<int>))"); 063 PrcLoadRstore0 = factory.parse("rec-eval(rc-load-rstore(<str>))"); 064 PrcLoadRstore1 = factory.parse("rec-eval(rc-load-rstore(<str>,<term>))"); 065 PrecAckEvent0 = factory.parse("rec-ack-event(<term>)"); 066 PrecTerminate0 = factory.parse("rec-terminate(<term>)"); 067 } 068 069 // The generic handler calls the specific handlers 070 public ATerm handler(ATerm term) 071 { 072 List<?> result; 073 074 result = term.match(PrcUnloadRstore0); 075 if (result != null) { 076 return rcUnloadRstore(((Integer)result.get(0)).intValue()); 077 } 078 result = term.match(PrcGetFactData0); 079 if (result != null) { 080 return rcGetFactData(((Integer)result.get(0)).intValue(), ((Integer)result.get(1)).intValue()); 081 } 082 result = term.match(PrcGetRstore0); 083 if (result != null) { 084 return rcGetRstore(((Integer)result.get(0)).intValue()); 085 } 086 result = term.match(PrcGetRstoreFacts0); 087 if (result != null) { 088 return rcGetRstoreFacts(((Integer)result.get(0)).intValue()); 089 } 090 result = term.match(PrcLoadRstore0); 091 if (result != null) { 092 return rcLoadRstore((String)result.get(0)); 093 } 094 result = term.match(PrcLoadRstore1); 095 if (result != null) { 096 return rcLoadRstore((String)result.get(0), (ATerm)result.get(1)); 097 } 098 result = term.match(PrecAckEvent0); 099 if (result != null) { 100 recAckEvent((ATerm)result.get(0)); 101 return null; 102 } 103 result = term.match(PrecTerminate0); 104 if (result != null) { 105 recTerminate((ATerm)result.get(0)); 106 return null; 107 } 108 109 notInInputSignature(term); 110 return null; 111 } 112 113 // Check the input signature 114 public void checkInputSignature(ATermList sigs) 115 { 116 while(!sigs.isEmpty()) { 117 ATermAppl sig = (ATermAppl)sigs.getFirst(); 118 sigs = sigs.getNext(); 119 if (!sigTable.contains(sig)) { 120 // Sorry, but the term is not in the input signature! 121 notInInputSignature(sig); 122 } 123 } 124 } 125 126 // This function is called when an input term 127 // was not in the input signature. 128 void notInInputSignature(ATerm t) 129 { 130 throw new RuntimeException("term not in input signature: " + t); 131 } 132 }