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 static final Stringprivate final JavaClassprivate static final Stringprivate final ConstantPoolGenprivate final PrintWriter -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static JavaClassgetJavaClass(String name) static voidDefault main method(package private) static StringprintArgumentTypes(Type[] argTypes) private void(package private) static StringprintFlags(int flags) static StringprintFlags(int flags, BCELifier.FLAGS location) Return a string with the flag settingsprivate void(package private) static String(package private) static Stringvoidstart()Start Java code generationvoidvisitField(Field field) voidvisitJavaClass(JavaClass clazz) voidvisitMethod(Method method) voidvisitStackMap(StackMap stackMap) voidvisitStackMapEntry(StackMapEntry stackMapEntry) voidvisitStackMapType(StackMapType stackMapType) Visits aStackMapTypeobject.private voidvisitStackMapTypeArray(StackMapType[] types) 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, visitSynthetic, visitUnknown
-
Field Details
-
BASE_PACKAGE
-
CONSTANT_PREFIX
-
clazz
-
printWriter
-
constantPoolGen
-
-
Constructor Details
-
BCELifier
Constructs a new instance.- Parameters:
clazz- Java class to "decompile".out- where to print the Java program in UTF-8.
-
-
Method Details
-
getJavaClass
- Throws:
ClassNotFoundExceptionIOException
-
main
Default main method- Throws:
Exception
-
printArgumentTypes
-
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
-
printType
-
printType
-
printCreate
private void printCreate() -
printMain
private void printMain() -
start
public void start()Start Java code generation -
visitField
- Specified by:
visitFieldin interfaceVisitor- Overrides:
visitFieldin classEmptyVisitor
-
visitJavaClass
- Specified by:
visitJavaClassin interfaceVisitor- Overrides:
visitJavaClassin classEmptyVisitor
-
visitMethod
- Specified by:
visitMethodin interfaceVisitor- Overrides:
visitMethodin classEmptyVisitor
-
visitStackMap
- Specified by:
visitStackMapin interfaceVisitor- Overrides:
visitStackMapin classEmptyVisitor
-
visitStackMapEntry
- Specified by:
visitStackMapEntryin interfaceVisitor- Overrides:
visitStackMapEntryin classEmptyVisitor
-
visitStackMapType
Visits aStackMapTypeobject.- Specified by:
visitStackMapTypein interfaceVisitor- Overrides:
visitStackMapTypein classEmptyVisitor- Parameters:
stackMapType- object to visit- Since:
- 6.7.1
-
visitStackMapTypeArray
-