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 java.util.List<BranchInstruction>
branches
private java.util.Map<Instruction,InstructionHandle>
branchMap
private static java.lang.String
CONSTANT_PREFIX
private ConstantPoolGen
constantPoolGen
private MethodGen
methodGen
private java.io.PrintWriter
printWriter
-
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
-
methodGen
private final MethodGen methodGen
-
printWriter
private final java.io.PrintWriter printWriter
-
constantPoolGen
private final ConstantPoolGen constantPoolGen
-
branchMap
private final java.util.Map<Instruction,InstructionHandle> branchMap
-
branches
private final java.util.List<BranchInstruction> branches
-
-
Constructor Detail
-
BCELFactory
BCELFactory(MethodGen mg, java.io.PrintWriter out)
-
-
Method Detail
-
createConstant
private void createConstant(java.lang.Object value)
-
start
public void start()
-
updateBranchTargets
private void updateBranchTargets()
-
updateExceptionHandlers
private void updateExceptionHandlers()
-
visitAllocationInstruction
public void visitAllocationInstruction(AllocationInstruction i)
- Specified by:
visitAllocationInstruction
in interfaceVisitor
- Overrides:
visitAllocationInstruction
in classEmptyVisitor
-
visitArrayInstruction
public void visitArrayInstruction(ArrayInstruction i)
- Specified by:
visitArrayInstruction
in interfaceVisitor
- Overrides:
visitArrayInstruction
in classEmptyVisitor
-
visitBranchInstruction
public void visitBranchInstruction(BranchInstruction bi)
- Specified by:
visitBranchInstruction
in interfaceVisitor
- Overrides:
visitBranchInstruction
in classEmptyVisitor
-
visitCHECKCAST
public void visitCHECKCAST(CHECKCAST i)
- Specified by:
visitCHECKCAST
in interfaceVisitor
- Overrides:
visitCHECKCAST
in classEmptyVisitor
-
visitConstantPushInstruction
public void visitConstantPushInstruction(ConstantPushInstruction i)
- Specified by:
visitConstantPushInstruction
in interfaceVisitor
- Overrides:
visitConstantPushInstruction
in classEmptyVisitor
-
visitFieldInstruction
public void visitFieldInstruction(FieldInstruction i)
- Specified by:
visitFieldInstruction
in interfaceVisitor
- Overrides:
visitFieldInstruction
in classEmptyVisitor
-
visitINSTANCEOF
public void visitINSTANCEOF(INSTANCEOF i)
- Specified by:
visitINSTANCEOF
in interfaceVisitor
- Overrides:
visitINSTANCEOF
in classEmptyVisitor
-
visitInstruction
private boolean visitInstruction(Instruction i)
-
visitInvokeInstruction
public void visitInvokeInstruction(InvokeInstruction i)
- Specified by:
visitInvokeInstruction
in interfaceVisitor
- Overrides:
visitInvokeInstruction
in classEmptyVisitor
-
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
-
visitLocalVariableInstruction
public void visitLocalVariableInstruction(LocalVariableInstruction i)
- Specified by:
visitLocalVariableInstruction
in interfaceVisitor
- Overrides:
visitLocalVariableInstruction
in classEmptyVisitor
-
visitRET
public void visitRET(RET i)
- Specified by:
visitRET
in interfaceVisitor
- Overrides:
visitRET
in classEmptyVisitor
-
visitReturnInstruction
public void visitReturnInstruction(ReturnInstruction i)
- Specified by:
visitReturnInstruction
in interfaceVisitor
- Overrides:
visitReturnInstruction
in classEmptyVisitor
-
-