001 // Java tool interface class NavigatorTool 002 // This file is generated automatically, please do not edit! 003 // generation time: Aug 17, 2007 11:11:44 AM 004 005 package nl.cwi.sen1.gui.plugin; 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 NavigatorTool 019 extends SwingTool 020 implements NavigatorTif 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 PselectModule0; 027 private ATerm PupdateModule0; 028 private ATerm PmarkModuleNormal0; 029 private ATerm PmarkModuleError0; 030 private ATerm PdeleteModule0; 031 private ATerm PshowPopup0; 032 private ATerm PrecAckEvent0; 033 private ATerm PrecTerminate0; 034 035 // Mimic the constructor from the AbstractTool class 036 protected NavigatorTool(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-do(<navigator>,update-module(<term>,<file>))")); 047 sigTable.add(factory.parse("rec-do(<navigator>,delete-module(<term>))")); 048 sigTable.add(factory.parse("rec-do(<navigator>,select-module(<term>))")); 049 sigTable.add(factory.parse("rec-do(<navigator>,mark-module-error(<term>))")); 050 sigTable.add(factory.parse("rec-do(<navigator>,mark-module-normal(<term>))")); 051 sigTable.add(factory.parse("rec-do(<navigator>,show-popup(<term>,<list>))")); 052 sigTable.add(factory.parse("rec-ack-event(<navigator>,<term>)")); 053 sigTable.add(factory.parse("rec-terminate(<navigator>,<term>)")); 054 } 055 056 // Initialize the patterns that are used to match against incoming terms 057 private void initPatterns() 058 { 059 PselectModule0 = factory.parse("rec-do(select-module(<term>))"); 060 PupdateModule0 = factory.parse("rec-do(update-module(<term>,<term>))"); 061 PmarkModuleNormal0 = factory.parse("rec-do(mark-module-normal(<term>))"); 062 PmarkModuleError0 = factory.parse("rec-do(mark-module-error(<term>))"); 063 PdeleteModule0 = factory.parse("rec-do(delete-module(<term>))"); 064 PshowPopup0 = factory.parse("rec-do(show-popup(<term>,<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(PselectModule0); 075 if (result != null) { 076 selectModule((ATerm)result.get(0)); 077 return null; 078 } 079 result = term.match(PupdateModule0); 080 if (result != null) { 081 updateModule((ATerm)result.get(0), (ATerm)result.get(1)); 082 return null; 083 } 084 result = term.match(PmarkModuleNormal0); 085 if (result != null) { 086 markModuleNormal((ATerm)result.get(0)); 087 return null; 088 } 089 result = term.match(PmarkModuleError0); 090 if (result != null) { 091 markModuleError((ATerm)result.get(0)); 092 return null; 093 } 094 result = term.match(PdeleteModule0); 095 if (result != null) { 096 deleteModule((ATerm)result.get(0)); 097 return null; 098 } 099 result = term.match(PshowPopup0); 100 if (result != null) { 101 showPopup((ATerm)result.get(0), (ATerm)result.get(1)); 102 return null; 103 } 104 result = term.match(PrecAckEvent0); 105 if (result != null) { 106 recAckEvent((ATerm)result.get(0)); 107 return null; 108 } 109 result = term.match(PrecTerminate0); 110 if (result != null) { 111 recTerminate((ATerm)result.get(0)); 112 return null; 113 } 114 115 notInInputSignature(term); 116 return null; 117 } 118 119 // Check the input signature 120 public void checkInputSignature(ATermList sigs) 121 { 122 while(!sigs.isEmpty()) { 123 ATermAppl sig = (ATermAppl)sigs.getFirst(); 124 sigs = sigs.getNext(); 125 if (!sigTable.contains(sig)) { 126 // Sorry, but the term is not in the input signature! 127 notInInputSignature(sig); 128 } 129 } 130 } 131 132 // This function is called when an input term 133 // was not in the input signature. 134 void notInInputSignature(ATerm t) 135 { 136 throw new RuntimeException("term not in input signature: " + t); 137 } 138 }