FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba.constant
Class ConstantFrameModelingVisitor

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<Constant,ConstantFrame>
      extended by edu.umd.cs.findbugs.ba.constant.ConstantFrameModelingVisitor
All Implemented Interfaces:
org.apache.bcel.generic.Visitor

public class ConstantFrameModelingVisitor
extends AbstractFrameModelingVisitor<Constant,ConstantFrame>

Visitor to model the effect of bytecode instructions on ConstantFrames.

For now, only String constants are modeled. In the future we can add other kinds of constants.

Author:
David Hovemeyer
See Also:
ConstantAnalysis

Field Summary
 
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
 
Constructor Summary
ConstantFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg)
           
 
Method Summary
 Constant getDefaultValue()
          Produce a "default" value.
 void visitBIPUSH(org.apache.bcel.generic.BIPUSH obj)
           
 void visitICONST(org.apache.bcel.generic.ICONST obj)
           
 void visitIINC(org.apache.bcel.generic.IINC obj)
           
 void visitLDC(org.apache.bcel.generic.LDC obj)
           
 void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj)
           
 void visitSIPUSH(org.apache.bcel.generic.SIPUSH obj)
           
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
analyzeInstruction, getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleLoadInstruction, handleNormalInstruction, handleStoreInstruction, modelInstruction, modelNormalInstruction, setFrameAndLocation, visitAALOAD, visitAASTORE, visitACONST_NULL, visitAllocationInstruction, visitALOAD, visitANEWARRAY, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, visitCHECKCAST, visitConstantPushInstruction, visitConversionInstruction, visitCPInstruction, visitD2F, visitD2I, visitD2L, visitDADD, visitDALOAD, visitDASTORE, visitDCMPG, visitDCMPL, visitDCONST, visitDDIV, visitDLOAD, visitDMUL, visitDNEG, visitDREM, visitDRETURN, visitDSTORE, visitDSUB, visitDUP_X1, visitDUP_X2, visitDUP, visitDUP2_X1, visitDUP2_X2, visitDUP2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSTORE, visitFSUB, visitGETFIELD, visitGETSTATIC, visitGOTO_W, visitGOTO, visitGotoInstruction, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIADD, visitIALOAD, visitIAND, visitIASTORE, visitIDIV, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFEQ, visitIFGE, visitIFGT, visitIfInstruction, visitIFLE, visitIFLT, visitIFNE, visitIFNONNULL, visitIFNULL, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitINSTANCEOF, visitInvokeInstruction, visitINVOKEINTERFACE, visitINVOKESPECIAL, visitINVOKESTATIC, visitINVOKEVIRTUAL, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISTORE, visitISUB, visitIUSHR, visitIXOR, visitJSR_W, visitJSR, visitJsrInstruction, visitL2D, visitL2F, visitL2I, visitLADD, visitLALOAD, visitLAND, visitLASTORE, visitLCMP, visitLCONST, visitLDIV, visitLLOAD, visitLMUL, visitLNEG, visitLoadClass, visitLoadInstruction, visitLocalVariableInstruction, visitLOOKUPSWITCH, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSTORE, visitLSUB, visitLUSHR, visitLXOR, visitMONITORENTER, visitMONITOREXIT, visitMULTIANEWARRAY, visitNEW, visitNEWARRAY, visitNOP, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitPUTSTATIC, visitRET, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTABLESWITCH, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConstantFrameModelingVisitor

public ConstantFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg)
Method Detail

getDefaultValue

public Constant 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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

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<Constant,ConstantFrame>

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.