Class BytecodeProgram
java.lang.Object
org.eolang.jeo.representation.bytecode.BytecodeProgram
Bytecode program.
- Since:
- 0.6
-
Constructor Summary
ConstructorsConstructorDescriptionBytecodeProgram
(String pckg) Constructor.BytecodeProgram
(String pckg, List<BytecodeClass> classes) Constructor.BytecodeProgram
(String pckg, BytecodeClass... classes) Constructor.BytecodeProgram
(BytecodeClass... classes) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbytecode()
Generate bytecode.bytecode
(boolean verify) Traverse XML and build bytecode class.directives
(String code) Convert to directives.directives
(String code, boolean counting) Convert to directives.replaceTopClass
(BytecodeClass clazz) Copy program with replaced top class.top()
Get top class.Copy program without top class.com.jcabi.xml.XML
xml()
Converts bytecode into XML.
-
Constructor Details
-
BytecodeProgram
Constructor.- Parameters:
pckg
- Package.
-
BytecodeProgram
Constructor.- Parameters:
classes
- Classes.
-
BytecodeProgram
Constructor.- Parameters:
pckg
- Package.classes
- Classes.
-
BytecodeProgram
Constructor.- Parameters:
pckg
- Package.classes
- Classes.
-
-
Method Details
-
xml
public com.jcabi.xml.XML xml()Converts bytecode into XML.- Returns:
- XML representation of bytecode.
-
bytecode
Generate bytecode.In this method we intentionally use the Thread.currentThread().getContextClassLoader() for the class loader of the
CheckClassAdapter.verify(ClassReader, ClassLoader, boolean, PrintWriter)
instead of default implementation. This is because the default class loader doesn't know about classes compiled on the previous maven step. You can read more about the problem here:PluginStartup.init()
()}- Returns:
- Bytecode.
-
bytecode
Traverse XML and build bytecode class.- Parameters:
verify
- Verify bytecode.- Returns:
- Bytecode.
-
top
Get top class.- Returns:
- Top class.
-
replaceTopClass
Copy program with replaced top class.- Parameters:
clazz
- Class to replace.- Returns:
- Program with replaced top class.
-
withoutTopClass
Copy program without top class.- Returns:
- Program without top class.
-
directives
Convert to directives.- Parameters:
code
- Program listing.- Returns:
- Directives program.
-
directives
Convert to directives.- Parameters:
code
- Program listing.counting
- Opcodes counting.- Returns:
- Directives program.
-