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
_cp
private MethodGen
_mg
private java.io.PrintWriter
_out
private java.util.Map<Instruction,InstructionHandle>
branch_map
private java.util.List<BranchInstruction>
branches
private static java.lang.String
CONSTANT_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 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, 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:
visitLocalVariableInstruction
in interfaceVisitor
- Overrides:
visitLocalVariableInstruction
in classEmptyVisitor
-
visitArrayInstruction
public void visitArrayInstruction(ArrayInstruction i)
- Specified by:
visitArrayInstruction
in interfaceVisitor
- Overrides:
visitArrayInstruction
in classEmptyVisitor
-
visitFieldInstruction
public void visitFieldInstruction(FieldInstruction i)
- Specified by:
visitFieldInstruction
in interfaceVisitor
- Overrides:
visitFieldInstruction
in classEmptyVisitor
-
visitInvokeInstruction
public void visitInvokeInstruction(InvokeInstruction i)
- Specified by:
visitInvokeInstruction
in interfaceVisitor
- Overrides:
visitInvokeInstruction
in classEmptyVisitor
-
visitAllocationInstruction
public void visitAllocationInstruction(AllocationInstruction i)
- Specified by:
visitAllocationInstruction
in interfaceVisitor
- Overrides:
visitAllocationInstruction
in classEmptyVisitor
-
createConstant
private void createConstant(java.lang.Object value)
-
visitLDC
public void visitLDC(LDC i)
- Specified by:
visitLDC
in interfaceVisitor
- Overrides:
visitLDC
in classEmptyVisitor
-
visitLDC2_W
public void visitLDC2_W(LDC2_W i)
- Specified by:
visitLDC2_W
in interfaceVisitor
- Overrides:
visitLDC2_W
in classEmptyVisitor
-
visitConstantPushInstruction
public void visitConstantPushInstruction(ConstantPushInstruction i)
- Specified by:
visitConstantPushInstruction
in interfaceVisitor
- Overrides:
visitConstantPushInstruction
in classEmptyVisitor
-
visitINSTANCEOF
public void visitINSTANCEOF(INSTANCEOF i)
- Specified by:
visitINSTANCEOF
in interfaceVisitor
- Overrides:
visitINSTANCEOF
in classEmptyVisitor
-
visitCHECKCAST
public void visitCHECKCAST(CHECKCAST i)
- Specified by:
visitCHECKCAST
in interfaceVisitor
- Overrides:
visitCHECKCAST
in classEmptyVisitor
-
visitReturnInstruction
public void visitReturnInstruction(ReturnInstruction i)
- Specified by:
visitReturnInstruction
in interfaceVisitor
- Overrides:
visitReturnInstruction
in classEmptyVisitor
-
visitBranchInstruction
public void visitBranchInstruction(BranchInstruction bi)
- Specified by:
visitBranchInstruction
in interfaceVisitor
- Overrides:
visitBranchInstruction
in classEmptyVisitor
-
visitRET
public void visitRET(RET i)
- Specified by:
visitRET
in interfaceVisitor
- Overrides:
visitRET
in classEmptyVisitor
-
updateBranchTargets
private void updateBranchTargets()
-
updateExceptionHandlers
private void updateExceptionHandlers()
-
-