FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba
Class ResourceValueFrameModelingVisitor

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>
      extended by edu.umd.cs.findbugs.ba.ResourceValueFrameModelingVisitor
All Implemented Interfaces:
org.apache.bcel.generic.Visitor
Direct Known Subclasses:
StreamFrameModelingVisitor

public abstract class ResourceValueFrameModelingVisitor
extends AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>


Field Summary
 
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
 
Constructor Summary
ResourceValueFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg)
           
 
Method Summary
 ResourceValue getDefaultValue()
          Produce a "default" value.
protected  boolean instanceEscapes(org.apache.bcel.generic.InvokeInstruction inv, int instanceArgNum)
          Override this to check for methods that it is legal to pass the instance to without the instance escaping.
abstract  void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock)
          Subclasses must override this to model the effect of the given instruction on the current frame.
 void visitAASTORE(org.apache.bcel.generic.AASTORE arr)
           
 void visitARETURN(org.apache.bcel.generic.ARETURN ins)
           
 void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj)
           
 void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE inv)
           
 void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL inv)
           
 void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC inv)
           
 void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL inv)
           
 void visitPUTFIELD(org.apache.bcel.generic.PUTFIELD putfield)
           
 void visitPUTSTATIC(org.apache.bcel.generic.PUTSTATIC putstatic)
           
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
analyzeInstruction, getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleLoadInstruction, handleNormalInstruction, handleStoreInstruction, modelInstruction, modelNormalInstruction, setFrameAndLocation, visitAALOAD, visitACONST_NULL, visitAllocationInstruction, visitALOAD, visitANEWARRAY, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, 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, visitLDC, visitLDC2_W, 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, 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
 

Constructor Detail

ResourceValueFrameModelingVisitor

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

getDefaultValue

public ResourceValue 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<ResourceValue,ResourceValueFrame>

transferInstruction

public abstract void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
                                         BasicBlock basicBlock)
                                  throws DataflowAnalysisException
Subclasses must override this to model the effect of the given instruction on the current frame.

Throws:
DataflowAnalysisException

visitPUTFIELD

public void visitPUTFIELD(org.apache.bcel.generic.PUTFIELD putfield)
Specified by:
visitPUTFIELD in interface org.apache.bcel.generic.Visitor
Overrides:
visitPUTFIELD in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitAASTORE

public void visitAASTORE(org.apache.bcel.generic.AASTORE arr)
Specified by:
visitAASTORE in interface org.apache.bcel.generic.Visitor
Overrides:
visitAASTORE in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitPUTSTATIC

public void visitPUTSTATIC(org.apache.bcel.generic.PUTSTATIC putstatic)
Specified by:
visitPUTSTATIC in interface org.apache.bcel.generic.Visitor
Overrides:
visitPUTSTATIC in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

instanceEscapes

protected boolean instanceEscapes(org.apache.bcel.generic.InvokeInstruction inv,
                                  int instanceArgNum)
Override this to check for methods that it is legal to pass the instance to without the instance escaping. By default, we consider all methods to be possible escape routes.

Parameters:
inv - the InvokeInstruction to which the resource instance is passed as an argument
instanceArgNum - the first argument the instance is passed in

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<ResourceValue,ResourceValueFrame>

visitINVOKEVIRTUAL

public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL inv)
Specified by:
visitINVOKEVIRTUAL in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKEVIRTUAL in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitINVOKEINTERFACE

public void visitINVOKEINTERFACE(org.apache.bcel.generic.INVOKEINTERFACE inv)
Specified by:
visitINVOKEINTERFACE in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKEINTERFACE in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitINVOKESPECIAL

public void visitINVOKESPECIAL(org.apache.bcel.generic.INVOKESPECIAL inv)
Specified by:
visitINVOKESPECIAL in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKESPECIAL in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitINVOKESTATIC

public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC inv)
Specified by:
visitINVOKESTATIC in interface org.apache.bcel.generic.Visitor
Overrides:
visitINVOKESTATIC in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

visitARETURN

public void visitARETURN(org.apache.bcel.generic.ARETURN ins)
Specified by:
visitARETURN in interface org.apache.bcel.generic.Visitor
Overrides:
visitARETURN in class AbstractFrameModelingVisitor<ResourceValue,ResourceValueFrame>

FindBugs™ 1.3.9

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