Package org.apache.bcel.util
Class BCELFactory
- java.lang.Object
-
- org.apache.bcel.generic.EmptyVisitor
-
- 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.- See Also:
BCELifier
-
-
Field Summary
Fields Modifier and Type Field Description private ConstantPoolGen_cpprivate MethodGen_mgprivate java.io.PrintWriter_outprivate java.util.Map<Instruction,InstructionHandle>branch_mapprivate java.util.List<BranchInstruction>branchesprivate static java.lang.StringCONSTANT_PREFIX
-
Constructor Summary
Constructors Constructor Description BCELFactory(MethodGen mg, java.io.PrintWriter out)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcreateConstant(java.lang.Object value)voidstart()private voidupdateBranchTargets()private voidupdateExceptionHandlers()voidvisitAllocationInstruction(AllocationInstruction i)voidvisitArrayInstruction(ArrayInstruction i)voidvisitBranchInstruction(BranchInstruction bi)voidvisitCHECKCAST(CHECKCAST i)voidvisitConstantPushInstruction(ConstantPushInstruction i)voidvisitFieldInstruction(FieldInstruction i)voidvisitINSTANCEOF(INSTANCEOF i)private booleanvisitInstruction(Instruction i)voidvisitInvokeInstruction(InvokeInstruction i)voidvisitLDC(LDC i)voidvisitLDC2_W(LDC2_W i)voidvisitLocalVariableInstruction(LocalVariableInstruction i)voidvisitRET(RET i)voidvisitReturnInstruction(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, visitDUP_X1, visitDUP_X2, visitDUP2, visitDUP2_X1, visitDUP2_X2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldOrMethod, visitFLOAD, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSTORE, visitFSUB, visitGETFIELD, visitGETSTATIC, visitGOTO, visitGOTO_W, 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, visitINVOKEDYNAMIC, visitINVOKEINTERFACE, visitINVOKESPECIAL, visitINVOKESTATIC, visitINVOKEVIRTUAL, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISTORE, visitISUB, visitIUSHR, visitIXOR, visitJSR, visitJSR_W, 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
-
-
-
-
Field Detail
-
CONSTANT_PREFIX
private static final java.lang.String CONSTANT_PREFIX
-
_mg
private final MethodGen _mg
-
_out
private final java.io.PrintWriter _out
-
_cp
private final ConstantPoolGen _cp
-
branch_map
private final java.util.Map<Instruction,InstructionHandle> branch_map
-
branches
private final java.util.List<BranchInstruction> 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:
visitLocalVariableInstructionin interfaceVisitor- Overrides:
visitLocalVariableInstructionin classEmptyVisitor
-
visitArrayInstruction
public void visitArrayInstruction(ArrayInstruction i)
- Specified by:
visitArrayInstructionin interfaceVisitor- Overrides:
visitArrayInstructionin classEmptyVisitor
-
visitFieldInstruction
public void visitFieldInstruction(FieldInstruction i)
- Specified by:
visitFieldInstructionin interfaceVisitor- Overrides:
visitFieldInstructionin classEmptyVisitor
-
visitInvokeInstruction
public void visitInvokeInstruction(InvokeInstruction i)
- Specified by:
visitInvokeInstructionin interfaceVisitor- Overrides:
visitInvokeInstructionin classEmptyVisitor
-
visitAllocationInstruction
public void visitAllocationInstruction(AllocationInstruction i)
- Specified by:
visitAllocationInstructionin interfaceVisitor- Overrides:
visitAllocationInstructionin classEmptyVisitor
-
createConstant
private void createConstant(java.lang.Object value)
-
visitLDC
public void visitLDC(LDC i)
- Specified by:
visitLDCin interfaceVisitor- Overrides:
visitLDCin classEmptyVisitor
-
visitLDC2_W
public void visitLDC2_W(LDC2_W i)
- Specified by:
visitLDC2_Win interfaceVisitor- Overrides:
visitLDC2_Win classEmptyVisitor
-
visitConstantPushInstruction
public void visitConstantPushInstruction(ConstantPushInstruction i)
- Specified by:
visitConstantPushInstructionin interfaceVisitor- Overrides:
visitConstantPushInstructionin classEmptyVisitor
-
visitINSTANCEOF
public void visitINSTANCEOF(INSTANCEOF i)
- Specified by:
visitINSTANCEOFin interfaceVisitor- Overrides:
visitINSTANCEOFin classEmptyVisitor
-
visitCHECKCAST
public void visitCHECKCAST(CHECKCAST i)
- Specified by:
visitCHECKCASTin interfaceVisitor- Overrides:
visitCHECKCASTin classEmptyVisitor
-
visitReturnInstruction
public void visitReturnInstruction(ReturnInstruction i)
- Specified by:
visitReturnInstructionin interfaceVisitor- Overrides:
visitReturnInstructionin classEmptyVisitor
-
visitBranchInstruction
public void visitBranchInstruction(BranchInstruction bi)
- Specified by:
visitBranchInstructionin interfaceVisitor- Overrides:
visitBranchInstructionin classEmptyVisitor
-
visitRET
public void visitRET(RET i)
- Specified by:
visitRETin interfaceVisitor- Overrides:
visitRETin classEmptyVisitor
-
updateBranchTargets
private void updateBranchTargets()
-
updateExceptionHandlers
private void updateExceptionHandlers()
-
-