edu.umd.cs.findbugs.ba
Class IsNullValueFrameModelingVisitor

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>
      extended by edu.umd.cs.findbugs.ba.IsNullValueFrameModelingVisitor
All Implemented Interfaces:
org.apache.bcel.generic.Visitor

public class IsNullValueFrameModelingVisitor
extends AbstractFrameModelingVisitor<IsNullValue,IsNullValueFrame>


Field Summary
private  AssertionMethods assertionMethods
           
private static boolean NO_ASSERT_HACK
           
 
Constructor Summary
IsNullValueFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, AssertionMethods assertionMethods)
           
 
Method Summary
 IsNullValue getDefaultValue()
          Produce a "default" value.
private  void handleInvoke(org.apache.bcel.generic.InvokeInstruction obj)
          Handle method invocations.
private  void produce(IsNullValue value)
           
private  void produce2(IsNullValue value)
           
 void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj)
           
 void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE obj)
           
 void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL obj)
           
 void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj)
           
 void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj)
           
 void visitLDC_W(org.apache.bcel.generic.LDC_W obj)
           
 void visitLDC(org.apache.bcel.generic.LDC obj)
           
 void visitLDC2_W(org.apache.bcel.generic.LDC2_W obj)
           
 void visitNEW(org.apache.bcel.generic.NEW obj)
           
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
getCPG, getFrame, getNumWordsConsumed, getNumWordsProduced, handleLoadInstruction, handleNormalInstruction, handleStoreInstruction, modelNormalInstruction, setFrame, visitAALOAD, visitAASTORE, visitAllocationInstruction, visitALOAD, visitANEWARRAY, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, 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, visitICONST, 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, visitIINC, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitINSTANCEOF, visitInvokeInstruction, 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, visitNEWARRAY, visitNOP, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitPUTSTATIC, visitRET, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitSIPUSH, 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
 

Field Detail

NO_ASSERT_HACK

private static final boolean NO_ASSERT_HACK

assertionMethods

private AssertionMethods assertionMethods
Constructor Detail

IsNullValueFrameModelingVisitor

public IsNullValueFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg,
                                       AssertionMethods assertionMethods)
Method Detail

getDefaultValue

public IsNullValue 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<IsNullValue,IsNullValueFrame>

produce

private void produce(IsNullValue value)

produce2

private void produce2(IsNullValue value)

handleInvoke

private void handleInvoke(org.apache.bcel.generic.InvokeInstruction obj)
Handle method invocations. Generally, we want to get rid of null information following a call to a likely exception thrower or assertion.


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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>

visitLDC_W

public void visitLDC_W(org.apache.bcel.generic.LDC_W obj)

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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>

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<IsNullValue,IsNullValueFrame>