FindBugs™ 1.3.9

edu.umd.cs.findbugs.detect
Class StreamFrameModelingVisitor

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

public class StreamFrameModelingVisitor
extends ResourceValueFrameModelingVisitor

A visitor to model the effect of instructions on the status of the resource (in this case, Streams).


Field Summary
 
Fields inherited from class edu.umd.cs.findbugs.ba.AbstractFrameModelingVisitor
cpg
 
Constructor Summary
StreamFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg, StreamResourceTracker resourceTracker, Stream stream)
           
 
Method Summary
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.
 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.
 
Methods inherited from class edu.umd.cs.findbugs.ba.ResourceValueFrameModelingVisitor
getDefaultValue, visitAASTORE, visitARETURN, visitCHECKCAST, visitINVOKEINTERFACE, visitINVOKESPECIAL, visitINVOKESTATIC, visitINVOKEVIRTUAL, visitPUTFIELD, visitPUTSTATIC
 
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

StreamFrameModelingVisitor

public StreamFrameModelingVisitor(org.apache.bcel.generic.ConstantPoolGen cpg,
                                  StreamResourceTracker resourceTracker,
                                  Stream stream)
Method Detail

transferInstruction

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

Specified by:
transferInstruction in class ResourceValueFrameModelingVisitor
Throws:
DataflowAnalysisException

instanceEscapes

protected boolean instanceEscapes(org.apache.bcel.generic.InvokeInstruction inv,
                                  int instanceArgNum)
Description copied from class: ResourceValueFrameModelingVisitor
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.

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

FindBugs™ 1.3.9

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