Class TypeFrameModelingVisitor

  • All Implemented Interfaces:
    Debug, org.apache.bcel.Constants, org.apache.bcel.generic.Visitor, org.apache.bcel.generic.VisitorSupportsInvokeDynamic

    public class TypeFrameModelingVisitor
    extends AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
    implements org.apache.bcel.Constants, Debug
    Visitor to model the effects of bytecode instructions on the types of the values (local and operand stack) in Java stack frames. This visitor does not verify that the types are sensible for the bytecodes executed. In other words, this isn't a bytecode verifier, although it wouldn't be too hard to turn it into something vaguely verifier-like.
    Author:
    David Hovemeyer
    See Also:
    TypeFrame, TypeAnalysis
    • Field Detail

      • typeMerger

        protected final TypeMerger typeMerger
      • localTypeTable

        protected org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable
      • genericLocalVariables

        protected java.util.BitSet genericLocalVariables
      • DEBUG

        public static final boolean DEBUG
      • mapSignaturePattern

        public static final java.util.regex.Pattern mapSignaturePattern
    • Constructor Detail

      • TypeFrameModelingVisitor

        public TypeFrameModelingVisitor​(org.apache.bcel.generic.ConstantPoolGen cpg,
                                        TypeMerger typeMerger)
        Constructor.
        Parameters:
        cpg - the ConstantPoolGen of the method whose instructions we are examining
        typeMerger - TODO
    • Method Detail

      • setValueNumberDataflow

        public void setValueNumberDataflow​(ValueNumberDataflow valueNumberDataflow)
        Set ValueNumberDataflow for the method being analyzed. This is optional; if set, we will use the information to more accurately model the effects of instanceof instructions.
        Parameters:
        valueNumberDataflow - the ValueNumberDataflow
      • setLocalTypeTable

        public void setLocalTypeTable​(org.apache.bcel.classfile.LocalVariableTypeTable localTypeTable)
      • isInstanceOfFollowedByBranch

        public boolean isInstanceOfFollowedByBranch()
        Return whether an instanceof instruction was followed by a branch. The TypeAnalysis may use this to get more precise types in the resulting frame.
        Returns:
        true if an instanceof instruction was followed by a branch, false if not
      • getInstanceOfType

        public org.apache.bcel.generic.Type getInstanceOfType()
        Get the type of the most recent instanceof instruction modeled. The TypeAnalysis may use this to get more precise types in the resulting frame.
        Returns:
        the Type checked by the most recent instanceof instruction
      • getInstanceOfValueNumber

        public ValueNumber getInstanceOfValueNumber()
        Get the value number of the most recent instanceof instruction modeled. The TypeAnalysis may use this to get more precise types in the resulting frame.
        Returns:
        the ValueNumber checked by the most recent instanceof instruction
      • setFieldStoreTypeDatabase

        public void setFieldStoreTypeDatabase​(FieldStoreTypeDatabase database)
        Set the field store type database. We can use this to get more accurate types for values loaded from fields.
        Parameters:
        database - the FieldStoreTypeDatabase
      • startBasicBlock

        public void startBasicBlock()
        This method must be called at the beginning of modeling a basic block in order to clear information cached for instanceof modeling.
      • consumeStack

        protected void consumeStack​(org.apache.bcel.generic.Instruction ins)
        Consume stack. This is a convenience method for instructions where the types of popped operands can be ignored.
      • pushValue

        protected void pushValue​(org.apache.bcel.generic.Type type)
        Work around some weirdness in BCEL (inherited from JVM Spec 1): BCEL considers long and double types to consume two slots on the stack. This method ensures that we push two types for each double or long value.
      • pushReturnType

        protected void pushReturnType​(org.apache.bcel.generic.InvokeInstruction ins)
        Helper for pushing the return type of an invoke instruction.
      • modelNormalInstruction

        public void modelNormalInstruction​(org.apache.bcel.generic.Instruction ins,
                                           int numWordsConsumed,
                                           int numWordsProduced)
        This is overridden only to ensure that we don't rely on the base class to handle instructions that produce stack operands.
        Overrides:
        modelNormalInstruction in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
        Parameters:
        ins - the Instruction to model
        numWordsConsumed - number of stack words consumed
        numWordsProduced - number of stack words produced
      • visitATHROW

        public void visitATHROW​(org.apache.bcel.generic.ATHROW obj)
        Specified by:
        visitATHROW in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitATHROW in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitACONST_NULL

        public void visitACONST_NULL​(org.apache.bcel.generic.ACONST_NULL obj)
        Specified by:
        visitACONST_NULL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitACONST_NULL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDCONST

        public void visitDCONST​(org.apache.bcel.generic.DCONST obj)
        Specified by:
        visitDCONST in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDCONST in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFCONST

        public void visitFCONST​(org.apache.bcel.generic.FCONST obj)
        Specified by:
        visitFCONST in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFCONST in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitICONST

        public void visitICONST​(org.apache.bcel.generic.ICONST obj)
        Specified by:
        visitICONST in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitICONST in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLCONST

        public void visitLCONST​(org.apache.bcel.generic.LCONST obj)
        Specified by:
        visitLCONST in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLCONST in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLDC

        public void visitLDC​(org.apache.bcel.generic.LDC obj)
        Specified by:
        visitLDC in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLDC in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLDC2_W

        public void visitLDC2_W​(org.apache.bcel.generic.LDC2_W obj)
        Specified by:
        visitLDC2_W in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLDC2_W in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitBIPUSH

        public void visitBIPUSH​(org.apache.bcel.generic.BIPUSH obj)
        Specified by:
        visitBIPUSH in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitBIPUSH in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitSIPUSH

        public void visitSIPUSH​(org.apache.bcel.generic.SIPUSH obj)
        Specified by:
        visitSIPUSH in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitSIPUSH in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitGETSTATIC

        public void visitGETSTATIC​(org.apache.bcel.generic.GETSTATIC obj)
        Specified by:
        visitGETSTATIC in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitGETSTATIC in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitGETFIELD

        public void visitGETFIELD​(org.apache.bcel.generic.GETFIELD obj)
        Specified by:
        visitGETFIELD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitGETFIELD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • modelFieldLoad

        public void modelFieldLoad​(org.apache.bcel.generic.FieldInstruction obj)
      • getType

        public static org.apache.bcel.generic.Type getType​(XField xfield)
      • visitINVOKESTATIC

        public void visitINVOKESTATIC​(org.apache.bcel.generic.INVOKESTATIC obj)
        Specified by:
        visitINVOKESTATIC in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINVOKESTATIC in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitINVOKESPECIAL

        public void visitINVOKESPECIAL​(org.apache.bcel.generic.INVOKESPECIAL obj)
        Specified by:
        visitINVOKESPECIAL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINVOKESPECIAL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitINVOKEINTERFACE

        public void visitINVOKEINTERFACE​(org.apache.bcel.generic.INVOKEINTERFACE obj)
        Specified by:
        visitINVOKEINTERFACE in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINVOKEINTERFACE in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitINVOKEVIRTUAL

        public void visitINVOKEVIRTUAL​(org.apache.bcel.generic.INVOKEVIRTUAL obj)
        Specified by:
        visitINVOKEVIRTUAL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINVOKEVIRTUAL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitInvokeInstructionCommon

        public void visitInvokeInstructionCommon​(org.apache.bcel.generic.InvokeInstruction obj)
      • isStraightGenericMap

        public static boolean isStraightGenericMap​(ClassDescriptor c)
      • handleStoreInstruction

        public void handleStoreInstruction​(org.apache.bcel.generic.StoreInstruction obj)
        Description copied from class: AbstractFrameModelingVisitor
        Handler for all instructions which pop values from the stack and store them in a local variable. Note that two locals are stored into for long and double stores.
        Overrides:
        handleStoreInstruction in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • handleLoadInstruction

        public void handleLoadInstruction​(org.apache.bcel.generic.LoadInstruction obj)
        Handler for all instructions which load values from a local variable and push them on the stack. Note that two locals are loaded for long and double loads.
        Overrides:
        handleLoadInstruction in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitCHECKCAST

        public void visitCHECKCAST​(org.apache.bcel.generic.CHECKCAST obj)
        Specified by:
        visitCHECKCAST in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitCHECKCAST in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitINSTANCEOF

        public void visitINSTANCEOF​(org.apache.bcel.generic.INSTANCEOF obj)
        Specified by:
        visitINSTANCEOF in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINSTANCEOF in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFNULL

        public void visitIFNULL​(org.apache.bcel.generic.IFNULL obj)
        Specified by:
        visitIFNULL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFNULL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFNONNULL

        public void visitIFNONNULL​(org.apache.bcel.generic.IFNONNULL obj)
        Specified by:
        visitIFNONNULL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFNONNULL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFCMPL

        public void visitFCMPL​(org.apache.bcel.generic.FCMPL obj)
        Specified by:
        visitFCMPL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFCMPL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFCMPG

        public void visitFCMPG​(org.apache.bcel.generic.FCMPG obj)
        Specified by:
        visitFCMPG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFCMPG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDCMPL

        public void visitDCMPL​(org.apache.bcel.generic.DCMPL obj)
        Specified by:
        visitDCMPL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDCMPL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDCMPG

        public void visitDCMPG​(org.apache.bcel.generic.DCMPG obj)
        Specified by:
        visitDCMPG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDCMPG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLCMP

        public void visitLCMP​(org.apache.bcel.generic.LCMP obj)
        Specified by:
        visitLCMP in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLCMP in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitD2F

        public void visitD2F​(org.apache.bcel.generic.D2F obj)
        Specified by:
        visitD2F in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitD2F in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitD2I

        public void visitD2I​(org.apache.bcel.generic.D2I obj)
        Specified by:
        visitD2I in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitD2I in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitD2L

        public void visitD2L​(org.apache.bcel.generic.D2L obj)
        Specified by:
        visitD2L in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitD2L in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitF2D

        public void visitF2D​(org.apache.bcel.generic.F2D obj)
        Specified by:
        visitF2D in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitF2D in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitF2I

        public void visitF2I​(org.apache.bcel.generic.F2I obj)
        Specified by:
        visitF2I in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitF2I in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitF2L

        public void visitF2L​(org.apache.bcel.generic.F2L obj)
        Specified by:
        visitF2L in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitF2L in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2B

        public void visitI2B​(org.apache.bcel.generic.I2B obj)
        Specified by:
        visitI2B in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2B in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2C

        public void visitI2C​(org.apache.bcel.generic.I2C obj)
        Specified by:
        visitI2C in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2C in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2D

        public void visitI2D​(org.apache.bcel.generic.I2D obj)
        Specified by:
        visitI2D in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2D in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2F

        public void visitI2F​(org.apache.bcel.generic.I2F obj)
        Specified by:
        visitI2F in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2F in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2L

        public void visitI2L​(org.apache.bcel.generic.I2L obj)
        Specified by:
        visitI2L in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2L in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitI2S

        public void visitI2S​(org.apache.bcel.generic.I2S obj)
        Specified by:
        visitI2S in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitI2S in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitL2D

        public void visitL2D​(org.apache.bcel.generic.L2D obj)
        Specified by:
        visitL2D in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitL2D in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitL2F

        public void visitL2F​(org.apache.bcel.generic.L2F obj)
        Specified by:
        visitL2F in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitL2F in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitL2I

        public void visitL2I​(org.apache.bcel.generic.L2I obj)
        Specified by:
        visitL2I in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitL2I in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIAND

        public void visitIAND​(org.apache.bcel.generic.IAND obj)
        Specified by:
        visitIAND in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIAND in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLAND

        public void visitLAND​(org.apache.bcel.generic.LAND obj)
        Specified by:
        visitLAND in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLAND in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIOR

        public void visitIOR​(org.apache.bcel.generic.IOR obj)
        Specified by:
        visitIOR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIOR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLOR

        public void visitLOR​(org.apache.bcel.generic.LOR obj)
        Specified by:
        visitLOR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLOR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIXOR

        public void visitIXOR​(org.apache.bcel.generic.IXOR obj)
        Specified by:
        visitIXOR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIXOR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLXOR

        public void visitLXOR​(org.apache.bcel.generic.LXOR obj)
        Specified by:
        visitLXOR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLXOR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitISHR

        public void visitISHR​(org.apache.bcel.generic.ISHR obj)
        Specified by:
        visitISHR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitISHR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIUSHR

        public void visitIUSHR​(org.apache.bcel.generic.IUSHR obj)
        Specified by:
        visitIUSHR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIUSHR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLSHR

        public void visitLSHR​(org.apache.bcel.generic.LSHR obj)
        Specified by:
        visitLSHR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLSHR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLUSHR

        public void visitLUSHR​(org.apache.bcel.generic.LUSHR obj)
        Specified by:
        visitLUSHR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLUSHR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitISHL

        public void visitISHL​(org.apache.bcel.generic.ISHL obj)
        Specified by:
        visitISHL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitISHL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLSHL

        public void visitLSHL​(org.apache.bcel.generic.LSHL obj)
        Specified by:
        visitLSHL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLSHL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDADD

        public void visitDADD​(org.apache.bcel.generic.DADD obj)
        Specified by:
        visitDADD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDADD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFADD

        public void visitFADD​(org.apache.bcel.generic.FADD obj)
        Specified by:
        visitFADD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFADD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIADD

        public void visitIADD​(org.apache.bcel.generic.IADD obj)
        Specified by:
        visitIADD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIADD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLADD

        public void visitLADD​(org.apache.bcel.generic.LADD obj)
        Specified by:
        visitLADD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLADD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDSUB

        public void visitDSUB​(org.apache.bcel.generic.DSUB obj)
        Specified by:
        visitDSUB in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDSUB in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDUP

        public void visitDUP​(org.apache.bcel.generic.DUP obj)
        Specified by:
        visitDUP in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDUP in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFSUB

        public void visitFSUB​(org.apache.bcel.generic.FSUB obj)
        Specified by:
        visitFSUB in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFSUB in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitISUB

        public void visitISUB​(org.apache.bcel.generic.ISUB obj)
        Specified by:
        visitISUB in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitISUB in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLSUB

        public void visitLSUB​(org.apache.bcel.generic.LSUB obj)
        Specified by:
        visitLSUB in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLSUB in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDMUL

        public void visitDMUL​(org.apache.bcel.generic.DMUL obj)
        Specified by:
        visitDMUL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDMUL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFMUL

        public void visitFMUL​(org.apache.bcel.generic.FMUL obj)
        Specified by:
        visitFMUL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFMUL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIMUL

        public void visitIMUL​(org.apache.bcel.generic.IMUL obj)
        Specified by:
        visitIMUL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIMUL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLMUL

        public void visitLMUL​(org.apache.bcel.generic.LMUL obj)
        Specified by:
        visitLMUL in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLMUL in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDDIV

        public void visitDDIV​(org.apache.bcel.generic.DDIV obj)
        Specified by:
        visitDDIV in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDDIV in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFDIV

        public void visitFDIV​(org.apache.bcel.generic.FDIV obj)
        Specified by:
        visitFDIV in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFDIV in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIDIV

        public void visitIDIV​(org.apache.bcel.generic.IDIV obj)
        Specified by:
        visitIDIV in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIDIV in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLDIV

        public void visitLDIV​(org.apache.bcel.generic.LDIV obj)
        Specified by:
        visitLDIV in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLDIV in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDREM

        public void visitDREM​(org.apache.bcel.generic.DREM obj)
        Specified by:
        visitDREM in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDREM in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFREM

        public void visitFREM​(org.apache.bcel.generic.FREM obj)
        Specified by:
        visitFREM in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFREM in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIREM

        public void visitIREM​(org.apache.bcel.generic.IREM obj)
        Specified by:
        visitIREM in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIREM in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLREM

        public void visitLREM​(org.apache.bcel.generic.LREM obj)
        Specified by:
        visitLREM in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLREM in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIINC

        public void visitIINC​(org.apache.bcel.generic.IINC obj)
        Specified by:
        visitIINC in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIINC in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDNEG

        public void visitDNEG​(org.apache.bcel.generic.DNEG obj)
        Specified by:
        visitDNEG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDNEG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFNEG

        public void visitFNEG​(org.apache.bcel.generic.FNEG obj)
        Specified by:
        visitFNEG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFNEG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitINEG

        public void visitINEG​(org.apache.bcel.generic.INEG obj)
        Specified by:
        visitINEG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitINEG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLNEG

        public void visitLNEG​(org.apache.bcel.generic.LNEG obj)
        Specified by:
        visitLNEG in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLNEG in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitARRAYLENGTH

        public void visitARRAYLENGTH​(org.apache.bcel.generic.ARRAYLENGTH obj)
        Specified by:
        visitARRAYLENGTH in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitARRAYLENGTH in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitAALOAD

        public void visitAALOAD​(org.apache.bcel.generic.AALOAD obj)
        Specified by:
        visitAALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitAALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitBALOAD

        public void visitBALOAD​(org.apache.bcel.generic.BALOAD obj)
        Specified by:
        visitBALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitBALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitCALOAD

        public void visitCALOAD​(org.apache.bcel.generic.CALOAD obj)
        Specified by:
        visitCALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitCALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitDALOAD

        public void visitDALOAD​(org.apache.bcel.generic.DALOAD obj)
        Specified by:
        visitDALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitDALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitFALOAD

        public void visitFALOAD​(org.apache.bcel.generic.FALOAD obj)
        Specified by:
        visitFALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitFALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIALOAD

        public void visitIALOAD​(org.apache.bcel.generic.IALOAD obj)
        Specified by:
        visitIALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitLALOAD

        public void visitLALOAD​(org.apache.bcel.generic.LALOAD obj)
        Specified by:
        visitLALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitLALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitSALOAD

        public void visitSALOAD​(org.apache.bcel.generic.SALOAD obj)
        Specified by:
        visitSALOAD in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitSALOAD in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitNEW

        public void visitNEW​(org.apache.bcel.generic.NEW obj)
        Specified by:
        visitNEW in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitNEW in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitNEWARRAY

        public void visitNEWARRAY​(org.apache.bcel.generic.NEWARRAY obj)
        Specified by:
        visitNEWARRAY in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitNEWARRAY in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitANEWARRAY

        public void visitANEWARRAY​(org.apache.bcel.generic.ANEWARRAY obj)
        Specified by:
        visitANEWARRAY in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitANEWARRAY in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitMULTIANEWARRAY

        public void visitMULTIANEWARRAY​(org.apache.bcel.generic.MULTIANEWARRAY obj)
        Specified by:
        visitMULTIANEWARRAY in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitMULTIANEWARRAY in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitJSR

        public void visitJSR​(org.apache.bcel.generic.JSR obj)
        Specified by:
        visitJSR in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitJSR in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitJSR_W

        public void visitJSR_W​(org.apache.bcel.generic.JSR_W obj)
        Specified by:
        visitJSR_W in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitJSR_W in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitRET

        public void visitRET​(org.apache.bcel.generic.RET obj)
        Specified by:
        visitRET in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitRET in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFEQ

        public void visitIFEQ​(org.apache.bcel.generic.IFEQ obj)
        Specified by:
        visitIFEQ in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFEQ in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFGT

        public void visitIFGT​(org.apache.bcel.generic.IFGT obj)
        Specified by:
        visitIFGT in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFGT in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFLE

        public void visitIFLE​(org.apache.bcel.generic.IFLE obj)
        Specified by:
        visitIFLE in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFLE in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • visitIFNE

        public void visitIFNE​(org.apache.bcel.generic.IFNE obj)
        Specified by:
        visitIFNE in interface org.apache.bcel.generic.Visitor
        Overrides:
        visitIFNE in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,​TypeFrame>
      • isImpliedByGenericTypes

        public boolean isImpliedByGenericTypes​(org.apache.bcel.generic.ReferenceType t)