Package org.apache.bcel.util
Class BCELifier
java.lang.Object
org.apache.bcel.classfile.EmptyVisitor
org.apache.bcel.util.BCELifier
- All Implemented Interfaces:
Visitor
This class takes a given JavaClass object and converts it to a
Java program that creates that very class using BCEL. This
gives new users of BCEL a useful example showing how things
are done with BCEL. It does not cover all features of BCEL,
but tries to mimic hand-written code as close as possible.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final JavaClass
private final ConstantPoolGen
private final PrintWriter
private static final String
private static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static JavaClass
getJavaClass
(String name) static void
Default main method(package private) static String
printArgumentTypes
(Type[] arg_types) private void
(package private) static String
printFlags
(int flags) static String
printFlags
(int flags, BCELifier.FLAGS location) Return a string with the flag settingsprivate void
(package private) static String
(package private) static String
void
start()
Start Java code generationvoid
visitField
(Field field) void
visitJavaClass
(JavaClass clazz) void
visitMethod
(Method method) Methods inherited from class org.apache.bcel.classfile.EmptyVisitor
visitAnnotation, visitAnnotationDefault, visitAnnotationEntry, visitBootstrapMethods, visitCode, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantDynamic, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantInvokeDynamic, visitConstantLong, visitConstantMethodHandle, visitConstantMethodref, visitConstantMethodType, visitConstantModule, visitConstantNameAndType, visitConstantPackage, visitConstantPool, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitEnclosingMethod, visitExceptionTable, visitInnerClass, visitInnerClasses, visitLineNumber, visitLineNumberTable, visitLocalVariable, visitLocalVariableTable, visitLocalVariableTypeTable, visitMethodParameter, visitMethodParameters, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitParameterAnnotation, visitParameterAnnotationEntry, visitSignature, visitSourceFile, visitStackMap, visitStackMapEntry, visitSynthetic, visitUnknown
-
Field Details
-
BASE_PACKAGE
-
CONSTANT_PREFIX
-
_clazz
-
_out
-
_cp
-
-
Constructor Details
-
BCELifier
- Parameters:
clazz
- Java class to "decompile"out
- where to output Java program
-
-
Method Details
-
start
public void start()Start Java code generation -
visitJavaClass
- Specified by:
visitJavaClass
in interfaceVisitor
- Overrides:
visitJavaClass
in classEmptyVisitor
-
printCreate
private void printCreate() -
printMain
private void printMain() -
visitField
- Specified by:
visitField
in interfaceVisitor
- Overrides:
visitField
in classEmptyVisitor
-
visitMethod
- Specified by:
visitMethod
in interfaceVisitor
- Overrides:
visitMethod
in classEmptyVisitor
-
printFlags
-
printFlags
Return a string with the flag settings- Parameters:
flags
- the flags field to interpretlocation
- the item type- Returns:
- the formatted string
- Since:
- 6.0 made public
-
printArgumentTypes
-
printType
-
printType
-
main
Default main method- Throws:
Exception
-
getJavaClass
- Throws:
ClassNotFoundException
IOException
-