org.apache.bcel.util
Class BCELFactory

java.lang.Object
  extended by org.apache.bcel.generic.EmptyVisitor
      extended by org.apache.bcel.util.BCELFactory
All Implemented Interfaces:
Visitor

 class BCELFactory
extends EmptyVisitor

Factory creates il.append() statements, and sets instruction targets. A helper class for BCELifier.

Version:
$Id: BCELFactory.java 410087 2006-05-29 12:12:19Z tcurdt $
Author:
M. Dahm
See Also:
BCELifier

Field Summary
private  ConstantPoolGen _cp
           
private  MethodGen _mg
           
private  java.io.PrintWriter _out
           
private  java.util.Map branch_map
           
private  java.util.List branches
           
 
Constructor Summary
BCELFactory(MethodGen mg, java.io.PrintWriter out)
           
 
Method Summary
private  void createConstant(java.lang.Object value)
           
 void start()
           
private  void updateBranchTargets()
           
private  void updateExceptionHandlers()
           
 void visitAllocationInstruction(AllocationInstruction i)
           
 void visitArrayInstruction(ArrayInstruction i)
           
 void visitBranchInstruction(BranchInstruction bi)
           
 void visitCHECKCAST(CHECKCAST i)
           
 void visitConstantPushInstruction(ConstantPushInstruction i)
           
 void visitFieldInstruction(FieldInstruction i)
           
 void visitINSTANCEOF(INSTANCEOF i)
           
private  boolean visitInstruction(Instruction i)
           
 void visitInvokeInstruction(InvokeInstruction i)
           
 void visitLDC(LDC i)
           
 void visitLDC2_W(LDC2_W i)
           
 void visitLocalVariableInstruction(LocalVariableInstruction i)
           
 void visitRET(RET i)
           
 void visitReturnInstruction(ReturnInstruction i)
           
 
Methods inherited from class org.apache.bcel.generic.EmptyVisitor
visitAALOAD, visitAASTORE, visitACONST_NULL, visitALOAD, visitANEWARRAY, visitARETURN, visitArithmeticInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBREAKPOINT, visitCALOAD, visitCASTORE, 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, 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, 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, visitLOOKUPSWITCH, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSTORE, visitLSUB, visitLUSHR, visitLXOR, visitMONITORENTER, visitMONITOREXIT, visitMULTIANEWARRAY, visitNEW, visitNEWARRAY, visitNOP, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitPUTSTATIC, visitRETURN, 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

_mg

private MethodGen _mg

_out

private java.io.PrintWriter _out

_cp

private ConstantPoolGen _cp

branch_map

private java.util.Map branch_map

branches

private java.util.List branches
Constructor Detail

BCELFactory

BCELFactory(MethodGen mg,
            java.io.PrintWriter out)
Method Detail

start

public void start()

visitInstruction

private boolean visitInstruction(Instruction i)

visitLocalVariableInstruction

public void visitLocalVariableInstruction(LocalVariableInstruction i)
Specified by:
visitLocalVariableInstruction in interface Visitor
Overrides:
visitLocalVariableInstruction in class EmptyVisitor

visitArrayInstruction

public void visitArrayInstruction(ArrayInstruction i)
Specified by:
visitArrayInstruction in interface Visitor
Overrides:
visitArrayInstruction in class EmptyVisitor

visitFieldInstruction

public void visitFieldInstruction(FieldInstruction i)
Specified by:
visitFieldInstruction in interface Visitor
Overrides:
visitFieldInstruction in class EmptyVisitor

visitInvokeInstruction

public void visitInvokeInstruction(InvokeInstruction i)
Specified by:
visitInvokeInstruction in interface Visitor
Overrides:
visitInvokeInstruction in class EmptyVisitor

visitAllocationInstruction

public void visitAllocationInstruction(AllocationInstruction i)
Specified by:
visitAllocationInstruction in interface Visitor
Overrides:
visitAllocationInstruction in class EmptyVisitor

createConstant

private void createConstant(java.lang.Object value)

visitLDC

public void visitLDC(LDC i)
Specified by:
visitLDC in interface Visitor
Overrides:
visitLDC in class EmptyVisitor

visitLDC2_W

public void visitLDC2_W(LDC2_W i)
Specified by:
visitLDC2_W in interface Visitor
Overrides:
visitLDC2_W in class EmptyVisitor

visitConstantPushInstruction

public void visitConstantPushInstruction(ConstantPushInstruction i)
Specified by:
visitConstantPushInstruction in interface Visitor
Overrides:
visitConstantPushInstruction in class EmptyVisitor

visitINSTANCEOF

public void visitINSTANCEOF(INSTANCEOF i)
Specified by:
visitINSTANCEOF in interface Visitor
Overrides:
visitINSTANCEOF in class EmptyVisitor

visitCHECKCAST

public void visitCHECKCAST(CHECKCAST i)
Specified by:
visitCHECKCAST in interface Visitor
Overrides:
visitCHECKCAST in class EmptyVisitor

visitReturnInstruction

public void visitReturnInstruction(ReturnInstruction i)
Specified by:
visitReturnInstruction in interface Visitor
Overrides:
visitReturnInstruction in class EmptyVisitor

visitBranchInstruction

public void visitBranchInstruction(BranchInstruction bi)
Specified by:
visitBranchInstruction in interface Visitor
Overrides:
visitBranchInstruction in class EmptyVisitor

visitRET

public void visitRET(RET i)
Specified by:
visitRET in interface Visitor
Overrides:
visitRET in class EmptyVisitor

updateBranchTargets

private void updateBranchTargets()

updateExceptionHandlers

private void updateExceptionHandlers()