Class TypeFrameModelingVisitor

java.lang.Object
edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
edu.umd.cs.findbugs.ba.type.TypeFrameModelingVisitor
All Implemented Interfaces:
Debug, org.apache.bcel.generic.Visitor

public class TypeFrameModelingVisitor extends AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame> implements 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:
  • Field Details

    • typeMerger

      protected final TypeMerger typeMerger
    • localTypeTable

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

      protected BitSet genericLocalVariables
    • DEBUG

      public static final boolean DEBUG
    • mapSignaturePattern

      public static final Pattern mapSignaturePattern
  • Constructor Details

    • 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 Details

    • 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
    • getDefaultValue

      public org.apache.bcel.generic.Type getDefaultValue()
      Description copied from class: AbstractFrameModelingVisitor
      Produce a "default" value. This is what is pushed onto the stack by the handleNormalInstruction() method for instructions which produce stack values.
      Specified by:
      getDefaultValue in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
    • analyzeInstruction

      public void analyzeInstruction(org.apache.bcel.generic.Instruction ins) throws DataflowAnalysisException
      Description copied from class: AbstractFrameModelingVisitor
      Analyze the given Instruction.
      Overrides:
      analyzeInstruction in class AbstractFrameModelingVisitor<org.apache.bcel.generic.Type,TypeFrame>
      Parameters:
      ins - the Instruction
      Throws:
      DataflowAnalysisException - if an error occurs analyzing the instruction; in most cases, this indicates that the bytecode for the method being analyzed is invalid
    • 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>
    • visitINVOKEDYNAMIC

      public void visitINVOKEDYNAMIC(org.apache.bcel.generic.INVOKEDYNAMIC obj)
      Specified by:
      visitINVOKEDYNAMIC in interface org.apache.bcel.generic.Visitor
      Overrides:
      visitINVOKEDYNAMIC 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)