Interface ClassBuilder

  • All Known Implementing Classes:
    BCClass, GClass

    public interface ClassBuilder
    ClassBuilder is used to construct a java class's byte array representation. Limitations: No checking for language use violations such as invalid modifiers or duplicate field names. All classes must have a superclass; java.lang.Object must be supplied if there is no superclass.

    When a class is first created, it has:

    • a superclass
    • modifiers
    • a name
    • a package
    • no superinterfaces, methods, fields, or constructors
    • an empty static initializer

    MethodBuilder implementations are required to get code out of the constructs within their bodies in some manner. Most typically, they may have a stream to which the statement and expression constructs write the code that they represent, and they walk over the statements and expressions in the appropriate order.

    • Method Detail

      • addField

        LocalField addField​(java.lang.String type,
                            java.lang.String name,
                            int modifiers)
        add a field to this class. Fields cannot be initialized here, they must be initialized in the static initializer code (static fields) or in the constructors.

        Methods are added when they are created with the JavaFactory.

        Parameters:
        type - The type of the field in java language.
        name - The name of the field.
        modifiers - The | of the modifier values such as public, static, etc.
        See Also:
        newMethodBuilder(int, java.lang.String, java.lang.String), newConstructorBuilder(int)
      • getClassBytecode

        ByteArray getClassBytecode()
                            throws StandardException
        At the time the class is completed and bytecode generated, if there are no constructors then the default no-arg constructor will be defined.
        Throws:
        StandardException
      • getName

        java.lang.String getName()
        the class's unqualified name
      • getFullName

        java.lang.String getFullName()
        the class's qualified name
      • newMethodBuilder

        MethodBuilder newMethodBuilder​(int modifiers,
                                       java.lang.String returnType,
                                       java.lang.String methodName)
        a method. Once it is created, parameters, thrown exceptions, statements, and local variable declarations must be added to it. It is put into its defining class when it is created. Java: #modifiers #returnType #methodName() {} // modifiers is the | of the JVM constants for // the modifiers such as static, public, etc.

        This is used to start a constructor as well; pass in null for the returnType when used in that manner.

        Parameters:
        modifiers - the | of the Modifier constants representing the visibility and control of this method.
        returnType - the return type of the method as its Java language type name.
        methodName - the name of the method.
        Returns:
        the method builder.
        See Also:
        Modifier
      • newMethodBuilder

        MethodBuilder newMethodBuilder​(int modifiers,
                                       java.lang.String returnType,
                                       java.lang.String methodName,
                                       java.lang.String[] parms)
        a method with parameters. Once it is created, thrown exceptions, statements, and local variable declarations must be added to it. It is put into its defining class when it is created. Java: #modifiers #returnType #methodName() {} // modifiers is the | of the JVM constants for // the modifiers such as static, public, etc.

        This is used to start a constructor as well; pass in null for the returnType when used in that manner.

        Parameters:
        modifiers - the | of the Modifier constants representing the visibility and control of this method.
        returnType - the return type of the method as its Java language type name.
        methodName - the name of the method.
        parms - an array of String representing the method's parameter types
        Returns:
        the method builder.
        See Also:
        Modifier
      • newConstructorBuilder

        MethodBuilder newConstructorBuilder​(int modifiers)
        a constructor. Once it is created, parameters, thrown exceptions, statements, and local variable declarations must be added to it. It is put into its defining class when it is created. Java: #modifiers #className() {} // modifiers is the | of the JVM constants for // the modifiers such as static, public, etc. // className is taken from definingClass.name()

        This is used to start a constructor as well; pass in null for the returnType when used in that manner.

        Parameters:
        modifiers - the | of the Modifier constants representing the visibility and control of this method.
        Returns:
        the method builder for the constructor.
        See Also:
        Modifier