Class BytecodeClass

java.lang.Object
org.eolang.jeo.representation.bytecode.BytecodeClass

public final class BytecodeClass extends Object
Bytecode representation of a Java class.

This class represents a Java class in bytecode form, containing methods, fields, annotations, attributes, and class properties. It provides functionality for building bytecode classes programmatically and converting them to various formats.

Since:
0.1.0
  • Constructor Details

    • BytecodeClass

      public BytecodeClass()
      Default constructor. Creates a simple class with default settings.
    • BytecodeClass

      public BytecodeClass(String name)
      Constructor.
      Parameters:
      name - The class name
    • BytecodeClass

      public BytecodeClass(String name, int access)
      Constructor.
      Parameters:
      name - The class name
      access - The access modifiers
    • BytecodeClass

      public BytecodeClass(String name, BytecodeClassProperties properties)
      Constructor.
      Parameters:
      name - The class name
      properties - The class properties
    • BytecodeClass

      public BytecodeClass(String name, List<BytecodeMethod> methods, BytecodeClassProperties properties)
      Constructor.
      Parameters:
      name - The class name
      methods - The class methods
      properties - The class properties
    • BytecodeClass

      public BytecodeClass(ClassName name, List<BytecodeMethod> methods, List<BytecodeField> fields, BytecodeAnnotations annotations, BytecodeAttributes attributes, BytecodeClassProperties props)
      Constructor.
      Parameters:
      name - The class name
      methods - The class methods
      fields - The class fields
      annotations - The class annotations
      attributes - The class attributes
      props - The class properties
  • Method Details

    • name

      public ClassName name()
      Class name.
      Returns:
      Name.
    • withConstructor

      public BytecodeMethodBuilder withConstructor(int... modifiers)
      Add constructor to the class.
      Parameters:
      modifiers - The constructor access modifiers
      Returns:
      The method builder for chaining
    • withMethod

      public BytecodeMethodBuilder withMethod(BytecodeMethodProperties properties)
      Add method to the class.
      Parameters:
      properties - The method properties
      Returns:
      The method builder for chaining
    • withMethod

      public BytecodeMethodBuilder withMethod(BytecodeMethodProperties properties, BytecodeMaxs maxs)
      Add method to the class.
      Parameters:
      properties - The method properties
      maxs - The method stack/locals maxs
      Returns:
      The method builder for chaining
    • withConstructor

      public BytecodeMethodBuilder withConstructor(String descriptor, int... modifiers)
      Add constructor.
      Parameters:
      descriptor - Constructor descriptor.
      modifiers - Constructor modifiers.
      Returns:
      This object.
    • withField

      public BytecodeClass withField(String fname)
      Add field.
      Parameters:
      fname - Field name.
      Returns:
      This object.
    • withMethod

      public BytecodeMethodBuilder withMethod(String mname, String descriptor, int... modifiers)
      Add method.
      Parameters:
      mname - Method name.
      descriptor - Method descriptor.
      modifiers - Access modifiers.
      Returns:
      This object.
    • helloWorldMethod

      public BytecodeClass helloWorldMethod()
      Hello world bytecode.
      Returns:
      The same class with the hello world method.
    • properties

      public BytecodeClassProperties properties()
      Properties.
      Returns:
      Class properties.
    • methods

      public List<BytecodeMethod> methods()
      Retrieve class methods.
      Returns:
      Class methods.
    • withoutMethods

      public BytecodeClass withoutMethods()
      Without methods.
      Returns:
      The same class without methods.
    • directives

      public DirectivesClass directives()
      Convert to directives.
      Returns:
      Directives.