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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidDefault main method.static StringprintFlags(int flags, BCELifier.FLAGS location) Return a string with the flag settingsvoidstart()Start Java code generationvoidvisitField(Field field) Visits a Field.voidvisitJavaClass(JavaClass clazz) Visits a JavaClass.voidvisitMethod(Method method) Visits a Method.voidvisitStackMap(StackMap stackMap) Visits a StackMap attribute.voidvisitStackMapEntry(StackMapEntry stackMapEntry) Visits a StackMapEntry.voidvisitStackMapType(StackMapType stackMapType) Visits aStackMapTypeobject.Methods inherited from class 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, visitPermittedSubclasses, visitSignature, visitSourceFile, visitSynthetic, visitTypeAnnotations, visitUnknownModifier and TypeMethodDescriptionvoidVisits an Annotations attribute.voidVisits an AnnotationDefault attribute.voidVisits an AnnotationEntry.voidVisits a BootstrapMethods attribute.voidVisits a Code attribute.voidVisits a CodeException.voidVisits a ConstantClass.voidVisits a ConstantDouble.voidVisits a ConstantDynamic.voidVisits a ConstantFieldref.voidVisits a ConstantFloat.voidVisits a ConstantInteger.voidVisits a ConstantInterfaceMethodref.voidVisits a ConstantInvokeDynamic.voidVisits a ConstantLong.voidvisitConstantMethodHandle(ConstantMethodHandle constantMethodHandle) Visits a ConstantMethodHandle.voidVisits a ConstantMethodref.voidVisits a ConstantMethodType.voidvisitConstantModule(ConstantModule constantModule) Visits a ConstantModule.voidVisits a ConstantNameAndType.voidvisitConstantPackage(ConstantPackage constantPackage) Visits a ConstantPackage.voidVisits a ConstantPool.voidVisits a ConstantString.voidVisits a ConstantUtf8.voidVisits a ConstantValue attribute.voidVisits a Deprecated attribute.voidVisits an EnclosingMethod attribute.voidVisits an ExceptionTable attribute.voidVisits an InnerClass.voidVisits an InnerClasses attribute.voidVisits a LineNumber.voidVisits a LineNumberTable attribute.voidVisits a LocalVariable.voidVisits a LocalVariableTable attribute.voidVisits a LocalVariableTypeTable attribute.voidVisits a MethodParameter.voidVisits a MethodParameters attribute.voidvisitModule(Module obj) Visits a Module attribute.voidVisits a ModuleExports entry.voidVisits a ModuleMainClass attribute.voidVisits a ModuleOpens entry.voidVisits a ModulePackages attribute.voidVisits a ModuleProvides entry.voidVisits a ModuleRequires entry.voidvisitNestHost(NestHost obj) Visits a NestHost attribute.voidVisits a NestMembers attribute.voidVisits a ParameterAnnotations attribute.voidvisitParameterAnnotationEntry(ParameterAnnotationEntry parameterAnnotationEntry) Visits a ParameterAnnotationEntry.voidVisits a PermittedSubclasses attribute.voidvisitSignature(Signature obj) Visits a Signature attribute.voidVisits a SourceFile attribute.voidvisitSynthetic(Synthetic obj) Visits a Synthetic attribute.voidVisits a RuntimeVisibleTypeAnnotations or RuntimeInvisibleTypeAnnotations attribute.voidvisitUnknown(Unknown obj) Visits an Unknown attribute.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Visitor
visitRecord, visitRecordComponentModifier and TypeMethodDescriptiondefault voidvisitRecord(Record obj) Visits aRecordobject.default voidVisits aRecordComponentInfoobject.
-
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
-
main
-
printFlags
Return a string with the flag settings- Parameters:
flags- The flags field to interpret.location- The item type.- Returns:
- The formatted string.
- Since:
- 6.0 made public
-
start
Start Java code generation -
visitField
Description copied from interface:VisitorVisits a Field.- Specified by:
visitFieldin interfaceVisitor- Overrides:
visitFieldin classEmptyVisitor- Parameters:
field- The field.
-
visitJavaClass
Description copied from interface:VisitorVisits a JavaClass.- Specified by:
visitJavaClassin interfaceVisitor- Overrides:
visitJavaClassin classEmptyVisitor- Parameters:
clazz- The class.
-
visitMethod
Description copied from interface:VisitorVisits a Method.- Specified by:
visitMethodin interfaceVisitor- Overrides:
visitMethodin classEmptyVisitor- Parameters:
method- The method.
-
visitStackMap
Description copied from interface:VisitorVisits a StackMap attribute.- Specified by:
visitStackMapin interfaceVisitor- Overrides:
visitStackMapin classEmptyVisitor- Parameters:
stackMap- The attribute.
-
visitStackMapEntry
Description copied from interface:VisitorVisits a StackMapEntry.- Specified by:
visitStackMapEntryin interfaceVisitor- Overrides:
visitStackMapEntryin classEmptyVisitor- Parameters:
stackMapEntry- The entry.
-
visitStackMapType
Visits aStackMapTypeobject.- Specified by:
visitStackMapTypein interfaceVisitor- Overrides:
visitStackMapTypein classEmptyVisitor- Parameters:
stackMapType- object to visit.- Since:
- 6.7.1
-