org.apache.derby.impl.services.bytecode
Class BCClass

java.lang.Object
  extended byorg.apache.derby.impl.services.bytecode.GClass
      extended byorg.apache.derby.impl.services.bytecode.BCClass
All Implemented Interfaces:
ClassBuilder

class BCClass
extends GClass

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:

MethodBuilder implementations are required to supply a way for Generators to give them code. Most typically, they may have a stream to which the Generator writes the code that is of the type to satisfy what the Generator is writing.

See Also:

BCClass is a ClassBuilder implementation for generating java bytecode directly.


Field Summary
protected  ClassHolder classHold
           
(package private)  Type classType
           
(package private)  BCJava factory
           
protected  java.lang.String name
           
protected  java.lang.String superClassName
           
 
Fields inherited from class org.apache.derby.impl.services.bytecode.GClass
bytecode, cf, qualifiedName
 
Constructor Summary
(package private) BCClass(ClassFactory cf, java.lang.String packageName, int classModifiers, java.lang.String className, java.lang.String superClassName, BCJava factory)
           
 
Method Summary
 LocalField addField(java.lang.String javaType, java.lang.String name, int modifiers)
          add a field to this class.
 ByteArray getClassBytecode()
          At the time the class is completed and bytecode generated, if there are no constructors then the default no-arg constructor will be defined.
(package private)  ClassFactory getClassFactory()
           
 java.lang.String getName()
          the class's unqualified name
(package private)  java.lang.String getSuperClassName()
           
(package private)  ClassHolder modify()
          Let those that need to get to the classModify tool to alter the class definition.
 MethodBuilder newConstructorBuilder(int modifiers)
          a constructor.
 void newFieldWithAccessors(java.lang.String getter, java.lang.String setter, int methodModifers, boolean staticField, java.lang.String type)
          Create a new private field and its getter and setter methods.
 MethodBuilder newMethodBuilder(int modifiers, java.lang.String returnType, java.lang.String methodName)
          a method.
 MethodBuilder newMethodBuilder(int modifiers, java.lang.String returnType, java.lang.String methodName, java.lang.String[] parms)
          a method with parameters.
 
Methods inherited from class org.apache.derby.impl.services.bytecode.GClass
getFullName, getGeneratedClass, validateType, writeClassFile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classHold

protected ClassHolder classHold

superClassName

protected java.lang.String superClassName

name

protected java.lang.String name

factory

BCJava factory

classType

final Type classType
Constructor Detail

BCClass

BCClass(ClassFactory cf,
        java.lang.String packageName,
        int classModifiers,
        java.lang.String className,
        java.lang.String superClassName,
        BCJava factory)
Method Detail

addField

public LocalField addField(java.lang.String javaType,
                           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.

static fields also added to this list, with the modifier set appropriately.

Parameters:
javaType - 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:
ClassBuilder.newMethodBuilder(int, java.lang.String, java.lang.String), ClassBuilder.newConstructorBuilder(int)

getClassBytecode

public 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

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


newMethodBuilder

public MethodBuilder newMethodBuilder(int modifiers,
                                      java.lang.String returnType,
                                      java.lang.String methodName)
a method. 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 Modifiers 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:
java.lang.reflect..Modifiers

newMethodBuilder

public 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 Modifiers 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 ParameterDeclarations representing the method's parameters
Returns:
the method builder.
See Also:
java.lang.reflect..Modifiers

newConstructorBuilder

public MethodBuilder newConstructorBuilder(int modifiers)
a constructor. 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 #className() {} // modifiers is the | of the JVM constants for // the modifiers such as static, public, etc. // className is taken from definingClass.getName()

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 Modifiers constants representing the visibility and control of this method.
Returns:
the method builder for the constructor.
See Also:
Modifiers

getSuperClassName

java.lang.String getSuperClassName()

modify

ClassHolder modify()
Let those that need to get to the classModify tool to alter the class definition.


getClassFactory

ClassFactory getClassFactory()

newFieldWithAccessors

public void newFieldWithAccessors(java.lang.String getter,
                                  java.lang.String setter,
                                  int methodModifers,
                                  boolean staticField,
                                  java.lang.String type)
Description copied from interface: ClassBuilder
Create a new private field and its getter and setter methods.

Parameters:
type - type of the field, return type of the get method and parameter type of the set method.

Built on Tue 2006-10-10 19:23:47+0200, from revision exported

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.