View Javadoc

1   /*
2    * Copyright  2000-2004 The Apache Software Foundation
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License"); 
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License. 
15   *
16   */
17  package org.apache.bcel.generic;
18  
19  /***
20   * Interface implementing the Visitor pattern programming style.
21   * I.e., a class that implements this interface can handle all types of
22   * instructions with the properly typed methods just by calling the accept()
23   * method.
24   *
25   * @version $Id: Visitor.java 386056 2006-03-15 11:31:56Z tcurdt $
26   * @author  <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
27   */
28  public interface Visitor {
29  
30      public void visitStackInstruction( StackInstruction obj );
31  
32  
33      public void visitLocalVariableInstruction( LocalVariableInstruction obj );
34  
35  
36      public void visitBranchInstruction( BranchInstruction obj );
37  
38  
39      public void visitLoadClass( LoadClass obj );
40  
41  
42      public void visitFieldInstruction( FieldInstruction obj );
43  
44  
45      public void visitIfInstruction( IfInstruction obj );
46  
47  
48      public void visitConversionInstruction( ConversionInstruction obj );
49  
50  
51      public void visitPopInstruction( PopInstruction obj );
52  
53  
54      public void visitStoreInstruction( StoreInstruction obj );
55  
56  
57      public void visitTypedInstruction( TypedInstruction obj );
58  
59  
60      public void visitSelect( Select obj );
61  
62  
63      public void visitJsrInstruction( JsrInstruction obj );
64  
65  
66      public void visitGotoInstruction( GotoInstruction obj );
67  
68  
69      public void visitUnconditionalBranch( UnconditionalBranch obj );
70  
71  
72      public void visitPushInstruction( PushInstruction obj );
73  
74  
75      public void visitArithmeticInstruction( ArithmeticInstruction obj );
76  
77  
78      public void visitCPInstruction( CPInstruction obj );
79  
80  
81      public void visitInvokeInstruction( InvokeInstruction obj );
82  
83  
84      public void visitArrayInstruction( ArrayInstruction obj );
85  
86  
87      public void visitAllocationInstruction( AllocationInstruction obj );
88  
89  
90      public void visitReturnInstruction( ReturnInstruction obj );
91  
92  
93      public void visitFieldOrMethod( FieldOrMethod obj );
94  
95  
96      public void visitConstantPushInstruction( ConstantPushInstruction obj );
97  
98  
99      public void visitExceptionThrower( ExceptionThrower obj );
100 
101 
102     public void visitLoadInstruction( LoadInstruction obj );
103 
104 
105     public void visitVariableLengthInstruction( VariableLengthInstruction obj );
106 
107 
108     public void visitStackProducer( StackProducer obj );
109 
110 
111     public void visitStackConsumer( StackConsumer obj );
112 
113 
114     public void visitACONST_NULL( ACONST_NULL obj );
115 
116 
117     public void visitGETSTATIC( GETSTATIC obj );
118 
119 
120     public void visitIF_ICMPLT( IF_ICMPLT obj );
121 
122 
123     public void visitMONITOREXIT( MONITOREXIT obj );
124 
125 
126     public void visitIFLT( IFLT obj );
127 
128 
129     public void visitLSTORE( LSTORE obj );
130 
131 
132     public void visitPOP2( POP2 obj );
133 
134 
135     public void visitBASTORE( BASTORE obj );
136 
137 
138     public void visitISTORE( ISTORE obj );
139 
140 
141     public void visitCHECKCAST( CHECKCAST obj );
142 
143 
144     public void visitFCMPG( FCMPG obj );
145 
146 
147     public void visitI2F( I2F obj );
148 
149 
150     public void visitATHROW( ATHROW obj );
151 
152 
153     public void visitDCMPL( DCMPL obj );
154 
155 
156     public void visitARRAYLENGTH( ARRAYLENGTH obj );
157 
158 
159     public void visitDUP( DUP obj );
160 
161 
162     public void visitINVOKESTATIC( INVOKESTATIC obj );
163 
164 
165     public void visitLCONST( LCONST obj );
166 
167 
168     public void visitDREM( DREM obj );
169 
170 
171     public void visitIFGE( IFGE obj );
172 
173 
174     public void visitCALOAD( CALOAD obj );
175 
176 
177     public void visitLASTORE( LASTORE obj );
178 
179 
180     public void visitI2D( I2D obj );
181 
182 
183     public void visitDADD( DADD obj );
184 
185 
186     public void visitINVOKESPECIAL( INVOKESPECIAL obj );
187 
188 
189     public void visitIAND( IAND obj );
190 
191 
192     public void visitPUTFIELD( PUTFIELD obj );
193 
194 
195     public void visitILOAD( ILOAD obj );
196 
197 
198     public void visitDLOAD( DLOAD obj );
199 
200 
201     public void visitDCONST( DCONST obj );
202 
203 
204     public void visitNEW( NEW obj );
205 
206 
207     public void visitIFNULL( IFNULL obj );
208 
209 
210     public void visitLSUB( LSUB obj );
211 
212 
213     public void visitL2I( L2I obj );
214 
215 
216     public void visitISHR( ISHR obj );
217 
218 
219     public void visitTABLESWITCH( TABLESWITCH obj );
220 
221 
222     public void visitIINC( IINC obj );
223 
224 
225     public void visitDRETURN( DRETURN obj );
226 
227 
228     public void visitFSTORE( FSTORE obj );
229 
230 
231     public void visitDASTORE( DASTORE obj );
232 
233 
234     public void visitIALOAD( IALOAD obj );
235 
236 
237     public void visitDDIV( DDIV obj );
238 
239 
240     public void visitIF_ICMPGE( IF_ICMPGE obj );
241 
242 
243     public void visitLAND( LAND obj );
244 
245 
246     public void visitIDIV( IDIV obj );
247 
248 
249     public void visitLOR( LOR obj );
250 
251 
252     public void visitCASTORE( CASTORE obj );
253 
254 
255     public void visitFREM( FREM obj );
256 
257 
258     public void visitLDC( LDC obj );
259 
260 
261     public void visitBIPUSH( BIPUSH obj );
262 
263 
264     public void visitDSTORE( DSTORE obj );
265 
266 
267     public void visitF2L( F2L obj );
268 
269 
270     public void visitFMUL( FMUL obj );
271 
272 
273     public void visitLLOAD( LLOAD obj );
274 
275 
276     public void visitJSR( JSR obj );
277 
278 
279     public void visitFSUB( FSUB obj );
280 
281 
282     public void visitSASTORE( SASTORE obj );
283 
284 
285     public void visitALOAD( ALOAD obj );
286 
287 
288     public void visitDUP2_X2( DUP2_X2 obj );
289 
290 
291     public void visitRETURN( RETURN obj );
292 
293 
294     public void visitDALOAD( DALOAD obj );
295 
296 
297     public void visitSIPUSH( SIPUSH obj );
298 
299 
300     public void visitDSUB( DSUB obj );
301 
302 
303     public void visitL2F( L2F obj );
304 
305 
306     public void visitIF_ICMPGT( IF_ICMPGT obj );
307 
308 
309     public void visitF2D( F2D obj );
310 
311 
312     public void visitI2L( I2L obj );
313 
314 
315     public void visitIF_ACMPNE( IF_ACMPNE obj );
316 
317 
318     public void visitPOP( POP obj );
319 
320 
321     public void visitI2S( I2S obj );
322 
323 
324     public void visitIFEQ( IFEQ obj );
325 
326 
327     public void visitSWAP( SWAP obj );
328 
329 
330     public void visitIOR( IOR obj );
331 
332 
333     public void visitIREM( IREM obj );
334 
335 
336     public void visitIASTORE( IASTORE obj );
337 
338 
339     public void visitNEWARRAY( NEWARRAY obj );
340 
341 
342     public void visitINVOKEINTERFACE( INVOKEINTERFACE obj );
343 
344 
345     public void visitINEG( INEG obj );
346 
347 
348     public void visitLCMP( LCMP obj );
349 
350 
351     public void visitJSR_W( JSR_W obj );
352 
353 
354     public void visitMULTIANEWARRAY( MULTIANEWARRAY obj );
355 
356 
357     public void visitDUP_X2( DUP_X2 obj );
358 
359 
360     public void visitSALOAD( SALOAD obj );
361 
362 
363     public void visitIFNONNULL( IFNONNULL obj );
364 
365 
366     public void visitDMUL( DMUL obj );
367 
368 
369     public void visitIFNE( IFNE obj );
370 
371 
372     public void visitIF_ICMPLE( IF_ICMPLE obj );
373 
374 
375     public void visitLDC2_W( LDC2_W obj );
376 
377 
378     public void visitGETFIELD( GETFIELD obj );
379 
380 
381     public void visitLADD( LADD obj );
382 
383 
384     public void visitNOP( NOP obj );
385 
386 
387     public void visitFALOAD( FALOAD obj );
388 
389 
390     public void visitINSTANCEOF( INSTANCEOF obj );
391 
392 
393     public void visitIFLE( IFLE obj );
394 
395 
396     public void visitLXOR( LXOR obj );
397 
398 
399     public void visitLRETURN( LRETURN obj );
400 
401 
402     public void visitFCONST( FCONST obj );
403 
404 
405     public void visitIUSHR( IUSHR obj );
406 
407 
408     public void visitBALOAD( BALOAD obj );
409 
410 
411     public void visitDUP2( DUP2 obj );
412 
413 
414     public void visitIF_ACMPEQ( IF_ACMPEQ obj );
415 
416 
417     public void visitIMPDEP1( IMPDEP1 obj );
418 
419 
420     public void visitMONITORENTER( MONITORENTER obj );
421 
422 
423     public void visitLSHL( LSHL obj );
424 
425 
426     public void visitDCMPG( DCMPG obj );
427 
428 
429     public void visitD2L( D2L obj );
430 
431 
432     public void visitIMPDEP2( IMPDEP2 obj );
433 
434 
435     public void visitL2D( L2D obj );
436 
437 
438     public void visitRET( RET obj );
439 
440 
441     public void visitIFGT( IFGT obj );
442 
443 
444     public void visitIXOR( IXOR obj );
445 
446 
447     public void visitINVOKEVIRTUAL( INVOKEVIRTUAL obj );
448 
449 
450     public void visitFASTORE( FASTORE obj );
451 
452 
453     public void visitIRETURN( IRETURN obj );
454 
455 
456     public void visitIF_ICMPNE( IF_ICMPNE obj );
457 
458 
459     public void visitFLOAD( FLOAD obj );
460 
461 
462     public void visitLDIV( LDIV obj );
463 
464 
465     public void visitPUTSTATIC( PUTSTATIC obj );
466 
467 
468     public void visitAALOAD( AALOAD obj );
469 
470 
471     public void visitD2I( D2I obj );
472 
473 
474     public void visitIF_ICMPEQ( IF_ICMPEQ obj );
475 
476 
477     public void visitAASTORE( AASTORE obj );
478 
479 
480     public void visitARETURN( ARETURN obj );
481 
482 
483     public void visitDUP2_X1( DUP2_X1 obj );
484 
485 
486     public void visitFNEG( FNEG obj );
487 
488 
489     public void visitGOTO_W( GOTO_W obj );
490 
491 
492     public void visitD2F( D2F obj );
493 
494 
495     public void visitGOTO( GOTO obj );
496 
497 
498     public void visitISUB( ISUB obj );
499 
500 
501     public void visitF2I( F2I obj );
502 
503 
504     public void visitDNEG( DNEG obj );
505 
506 
507     public void visitICONST( ICONST obj );
508 
509 
510     public void visitFDIV( FDIV obj );
511 
512 
513     public void visitI2B( I2B obj );
514 
515 
516     public void visitLNEG( LNEG obj );
517 
518 
519     public void visitLREM( LREM obj );
520 
521 
522     public void visitIMUL( IMUL obj );
523 
524 
525     public void visitIADD( IADD obj );
526 
527 
528     public void visitLSHR( LSHR obj );
529 
530 
531     public void visitLOOKUPSWITCH( LOOKUPSWITCH obj );
532 
533 
534     public void visitDUP_X1( DUP_X1 obj );
535 
536 
537     public void visitFCMPL( FCMPL obj );
538 
539 
540     public void visitI2C( I2C obj );
541 
542 
543     public void visitLMUL( LMUL obj );
544 
545 
546     public void visitLUSHR( LUSHR obj );
547 
548 
549     public void visitISHL( ISHL obj );
550 
551 
552     public void visitLALOAD( LALOAD obj );
553 
554 
555     public void visitASTORE( ASTORE obj );
556 
557 
558     public void visitANEWARRAY( ANEWARRAY obj );
559 
560 
561     public void visitFRETURN( FRETURN obj );
562 
563 
564     public void visitFADD( FADD obj );
565 
566 
567     public void visitBREAKPOINT( BREAKPOINT obj );
568 }