/*
* Copyright 2000-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.bcel.generic;
/**
* Interface implementing the Visitor pattern programming style.
* I.e., a class that implements this interface can handle all types of
* instructions with the properly typed methods just by calling the accept()
* method.
*
* @version $Id: Visitor.java 386056 2006-03-15 11:31:56Z tcurdt $
* @author <A HREF="mailto:m.dahm@gmx.de">M. Dahm</A>
*/
public interface Visitor {
public void visitStackInstruction( StackInstruction obj );
public void visitLocalVariableInstruction( LocalVariableInstruction obj );
public void visitBranchInstruction( BranchInstruction obj );
public void visitLoadClass( LoadClass obj );
public void visitFieldInstruction( FieldInstruction obj );
public void visitIfInstruction( IfInstruction obj );
public void visitConversionInstruction( ConversionInstruction obj );
public void visitPopInstruction( PopInstruction obj );
public void visitStoreInstruction( StoreInstruction obj );
public void visitTypedInstruction( TypedInstruction obj );
public void visitSelect( Select obj );
public void visitJsrInstruction( JsrInstruction obj );
public void visitGotoInstruction( GotoInstruction obj );
public void visitUnconditionalBranch( UnconditionalBranch obj );
public void visitPushInstruction( PushInstruction obj );
public void visitArithmeticInstruction( ArithmeticInstruction obj );
public void visitCPInstruction( CPInstruction obj );
public void visitInvokeInstruction( InvokeInstruction obj );
public void visitArrayInstruction( ArrayInstruction obj );
public void visitAllocationInstruction( AllocationInstruction obj );
public void visitReturnInstruction( ReturnInstruction obj );
public void visitFieldOrMethod( FieldOrMethod obj );
public void visitConstantPushInstruction( ConstantPushInstruction obj );
public void visitExceptionThrower( ExceptionThrower obj );
public void visitLoadInstruction( LoadInstruction obj );
public void visitVariableLengthInstruction( VariableLengthInstruction obj );
public void visitStackProducer( StackProducer obj );
public void visitStackConsumer( StackConsumer obj );
public void visitACONST_NULL( ACONST_NULL obj );
public void visitGETSTATIC( GETSTATIC obj );
public void visitIF_ICMPLT( IF_ICMPLT obj );
public void visitMONITOREXIT( MONITOREXIT obj );
public void visitIFLT( IFLT obj );
public void visitLSTORE( LSTORE obj );
public void visitPOP2( POP2 obj );
public void visitBASTORE( BASTORE obj );
public void visitISTORE( ISTORE obj );
public void visitCHECKCAST( CHECKCAST obj );
public void visitFCMPG( FCMPG obj );
public void visitI2F( I2F obj );
public void visitATHROW( ATHROW obj );
public void visitDCMPL( DCMPL obj );
public void visitARRAYLENGTH( ARRAYLENGTH obj );
public void visitDUP( DUP obj );
public void visitINVOKESTATIC( INVOKESTATIC obj );
public void visitLCONST( LCONST obj );
public void visitDREM( DREM obj );
public void visitIFGE( IFGE obj );
public void visitCALOAD( CALOAD obj );
public void visitLASTORE( LASTORE obj );
public void visitI2D( I2D obj );
public void visitDADD( DADD obj );
public void visitINVOKESPECIAL( INVOKESPECIAL obj );
public void visitIAND( IAND obj );
public void visitPUTFIELD( PUTFIELD obj );
public void visitILOAD( ILOAD obj );
public void visitDLOAD( DLOAD obj );
public void visitDCONST( DCONST obj );
public void visitNEW( NEW obj );
public void visitIFNULL( IFNULL obj );
public void visitLSUB( LSUB obj );
public void visitL2I( L2I obj );
public void visitISHR( ISHR obj );
public void visitTABLESWITCH( TABLESWITCH obj );
public void visitIINC( IINC obj );
public void visitDRETURN( DRETURN obj );
public void visitFSTORE( FSTORE obj );
public void visitDASTORE( DASTORE obj );
public void visitIALOAD( IALOAD obj );
public void visitDDIV( DDIV obj );
public void visitIF_ICMPGE( IF_ICMPGE obj );
public void visitLAND( LAND obj );
public void visitIDIV( IDIV obj );
public void visitLOR( LOR obj );
public void visitCASTORE( CASTORE obj );
public void visitFREM( FREM obj );
public void visitLDC( LDC obj );
public void visitBIPUSH( BIPUSH obj );
public void visitDSTORE( DSTORE obj );
public void visitF2L( F2L obj );
public void visitFMUL( FMUL obj );
public void visitLLOAD( LLOAD obj );
public void visitJSR( JSR obj );
public void visitFSUB( FSUB obj );
public void visitSASTORE( SASTORE obj );
public void visitALOAD( ALOAD obj );
public void visitDUP2_X2( DUP2_X2 obj );
public void visitRETURN( RETURN obj );
public void visitDALOAD( DALOAD obj );
public void visitSIPUSH( SIPUSH obj );
public void visitDSUB( DSUB obj );
public void visitL2F( L2F obj );
public void visitIF_ICMPGT( IF_ICMPGT obj );
public void visitF2D( F2D obj );
public void visitI2L( I2L obj );
public void visitIF_ACMPNE( IF_ACMPNE obj );
public void visitPOP( POP obj );
public void visitI2S( I2S obj );
public void visitIFEQ( IFEQ obj );
public void visitSWAP( SWAP obj );
public void visitIOR( IOR obj );
public void visitIREM( IREM obj );
public void visitIASTORE( IASTORE obj );
public void visitNEWARRAY( NEWARRAY obj );
public void visitINVOKEINTERFACE( INVOKEINTERFACE obj );
public void visitINEG( INEG obj );
public void visitLCMP( LCMP obj );
public void visitJSR_W( JSR_W obj );
public void visitMULTIANEWARRAY( MULTIANEWARRAY obj );
public void visitDUP_X2( DUP_X2 obj );
public void visitSALOAD( SALOAD obj );
public void visitIFNONNULL( IFNONNULL obj );
public void visitDMUL( DMUL obj );
public void visitIFNE( IFNE obj );
public void visitIF_ICMPLE( IF_ICMPLE obj );
public void visitLDC2_W( LDC2_W obj );
public void visitGETFIELD( GETFIELD obj );
public void visitLADD( LADD obj );
public void visitNOP( NOP obj );
public void visitFALOAD( FALOAD obj );
public void visitINSTANCEOF( INSTANCEOF obj );
public void visitIFLE( IFLE obj );
public void visitLXOR( LXOR obj );
public void visitLRETURN( LRETURN obj );
public void visitFCONST( FCONST obj );
public void visitIUSHR( IUSHR obj );
public void visitBALOAD( BALOAD obj );
public void visitDUP2( DUP2 obj );
public void visitIF_ACMPEQ( IF_ACMPEQ obj );
public void visitIMPDEP1( IMPDEP1 obj );
public void visitMONITORENTER( MONITORENTER obj );
public void visitLSHL( LSHL obj );
public void visitDCMPG( DCMPG obj );
public void visitD2L( D2L obj );
public void visitIMPDEP2( IMPDEP2 obj );
public void visitL2D( L2D obj );
public void visitRET( RET obj );
public void visitIFGT( IFGT obj );
public void visitIXOR( IXOR obj );
public void visitINVOKEVIRTUAL( INVOKEVIRTUAL obj );
public void visitFASTORE( FASTORE obj );
public void visitIRETURN( IRETURN obj );
public void visitIF_ICMPNE( IF_ICMPNE obj );
public void visitFLOAD( FLOAD obj );
public void visitLDIV( LDIV obj );
public void visitPUTSTATIC( PUTSTATIC obj );
public void visitAALOAD( AALOAD obj );
public void visitD2I( D2I obj );
public void visitIF_ICMPEQ( IF_ICMPEQ obj );
public void visitAASTORE( AASTORE obj );
public void visitARETURN( ARETURN obj );
public void visitDUP2_X1( DUP2_X1 obj );
public void visitFNEG( FNEG obj );
public void visitGOTO_W( GOTO_W obj );
public void visitD2F( D2F obj );
public void visitGOTO( GOTO obj );
public void visitISUB( ISUB obj );
public void visitF2I( F2I obj );
public void visitDNEG( DNEG obj );
public void visitICONST( ICONST obj );
public void visitFDIV( FDIV obj );
public void visitI2B( I2B obj );
public void visitLNEG( LNEG obj );
public void visitLREM( LREM obj );
public void visitIMUL( IMUL obj );
public void visitIADD( IADD obj );
public void visitLSHR( LSHR obj );
public void visitLOOKUPSWITCH( LOOKUPSWITCH obj );
public void visitDUP_X1( DUP_X1 obj );
public void visitFCMPL( FCMPL obj );
public void visitI2C( I2C obj );
public void visitLMUL( LMUL obj );
public void visitLUSHR( LUSHR obj );
public void visitISHL( ISHL obj );
public void visitLALOAD( LALOAD obj );
public void visitASTORE( ASTORE obj );
public void visitANEWARRAY( ANEWARRAY obj );
public void visitFRETURN( FRETURN obj );
public void visitFADD( FADD obj );
public void visitBREAKPOINT( BREAKPOINT obj );
}