Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.enhance
Class CodeGenerator

    java.lang.Object
      org.apache.openjpa.enhance.CodeGenerator

    public class CodeGenerator

extends Object

Generates Java class code from metadata.

Since:
  0.3.0
Author:
  Abe White, Stephen Kim

Constructor Summary
`CodeGenerator(ClassMetaData meta)` Constructor.
`CodeGenerator(OpenJPAConfiguration conf, Class type)` Constructor.

Method Summary
`protected void` | `closeClassBrace(CodeFormat code)` Append the closing code-level brace to the code; this can be overridden to add code to the bottom of the class.
`void` | `generateCode()` Writes the generated code to the proper directory.
`protected List` | `getClassAnnotations()` Return class-level annotations.
`protected String` | `getClassCode()` Return a code template for the given class, or null to use the standard system-generated Java code.
`String` | `getCode()` Return the generated code, or null if `generateCode()` has not been called.
`File` | `getCodeDirectory()` The directory to write source to.
`CodeFormat` | `getCodeFormat()` The code formatter for the generated Java code.
`protected String` | `getDeclaration(FieldMetaData field)` Return a code template for the declaration of the given field, or null to use the system-generated default Java code.
`protected List` | `getFieldAnnotations(FieldMetaData field)` Return field-level annotations.
`protected String` | `getFieldCode(FieldMetaData field)` Return a code template for the get/set methods of the given field, or null to use the system-generated default Java code.
`File` | `getFile()` Return Java file to write to.
`Set` | `getImportPackages()` Returns the set of packages that needs to be imported for this code.
`protected String` | `getInitialValue(FieldMetaData field)` Return code for the initial value for the given field, or null to use the default generated by the system.
`ClassMetaData` | `getMetaData()` Return metadata for the type being generated.
`Class` | `getType()` Return the type being generated.
`protected CodeFormat` | `newCodeFormat()` Return a copy of the internal code format.
`protected void` | `openClassBrace(CodeFormat code)` Append the opening code-level brace to the code; this can be overridden to add code to the top of the class.
`void` | `setCodeFormat(CodeFormat format)` Set the code formatter for the generated Java code.
`void` | `setDirectory(File dir)` The directory to write source to.
`protected boolean` | `useGenericCollections()` Whether to use generic collections on one-to-many and many-to-many relations instead of untyped collections.
`protected boolean` | `usePropertyBasedAccess()` Whether to use property-based access on generated code.
`void` | `writeCode()` Write the generated code to the proper file.
`void` | `writeCode(Writer out)` Write the code to the specified `Writer`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CodeGenerator

    public CodeGenerator(OpenJPAConfiguration conf,
                         Class type)

  Constructor. Supply configuration and class to generate code for.

### CodeGenerator

    public CodeGenerator(ClassMetaData meta)

  Constructor. Supply configuration and metadata to generate code for.

Method Detail

### getCodeDirectory

    public File getCodeDirectory()

  The directory to write source to. Defaults to the current directory. If the given directory does not match the package of the metadata, the package structure will be created below the directory.

### setDirectory

    public void setDirectory(File dir)

  The directory to write source to. Defaults to the current directory. If the given directory does not match the package of the metadata, the package structure will be created below the directory.

### getCodeFormat

    public CodeFormat getCodeFormat()

  The code formatter for the generated Java code.

### setCodeFormat

    public void setCodeFormat(CodeFormat format)

  Set the code formatter for the generated Java code.

### getType

    public Class getType()

  Return the type being generated.

### getMetaData

    public ClassMetaData getMetaData()

  Return metadata for the type being generated.

### getCode

    public String getCode()

  Return the generated code, or null if `generateCode()` has not been called.

### generateCode

    public void generateCode()

  Writes the generated code to the proper directory.

### writeCode

    public void writeCode()
                   throws IOException

  Write the generated code to the proper file.

  Throws:
    `IOException`

### writeCode

    public void writeCode(Writer out)
                   throws IOException

  Write the code to the specified `Writer`.

  Throws:
    `IOException`

### getImportPackages

    public Set getImportPackages()

  Returns the set of packages that needs to be imported for this code.

### openClassBrace

    protected void openClassBrace(CodeFormat code)

  Append the opening code-level brace to the code; this can be overridden to add code to the top of the class.

### closeClassBrace

    protected void closeClassBrace(CodeFormat code)

  Append the closing code-level brace to the code; this can be overridden to add code to the bottom of the class.

### getFile

    public File getFile()

  Return Java file to write to.

### newCodeFormat

    protected CodeFormat newCodeFormat()

  Return a copy of the internal code format.

### getClassCode

    protected String getClassCode()

  Return a code template for the given class, or null to use the standard system-generated Java code. To facilitate template reuse, the following parameters can appear in the template; the proper values will be subtituted by the system:
  - ${packageDec}: The package declaration, in the form "package <package name >;", or empty string if no package.
  - ${imports}: Imports for the packages used by the declared field types.
  - ${className}: The name of the class, without package.
  - ${extendsDec}: Extends declaration, in the form "extends <superclass>", or empty string if no superclass.
  - ${constructor}: A constructor that takes in all primary key fields of the class, or empty string if the class uses datastore identity.
  - ${fieldDecs}: Declarations of all the declared fields.
  - ${fieldCode}: Get/set methods for all the declared fields.
  Returns null by default.

### getInitialValue

    protected String getInitialValue(FieldMetaData field)

  Return code for the initial value for the given field, or null to use the default generated by the system. Returns null by default.

### getDeclaration

    protected String getDeclaration(FieldMetaData field)

  Return a code template for the declaration of the given field, or null to use the system-generated default Java code. To facilitate template reuse, the following parameters can appear in your template; the proper values will be subtituted by the system:
  - ${fieldName}: The name of the field.
  - ${capFieldName}: The capitalized field name.
  - ${propertyName}: The field name without leading '_', if any.
  - ${fieldType}: The field's type name.
  - ${keyType}: Key type name for maps, null otherwise.
  - ${elementType}: Element type name for collections, null otherwise.
  - ${fieldValue}: The field's initial value, in the form " = <value>", or empty string if none.
  Returns null by default.

### getFieldCode

    protected String getFieldCode(FieldMetaData field)

  Return a code template for the get/set methods of the given field, or null to use the system-generated default Java code. To facilitate template reuse, the following parameters can appear in your template; the proper values will be subtituted by the system:
  - ${fieldName}: The name of the field.
  - ${capFieldName}: The capitalized field name.
  - ${propertyName}: The field name without leading '_', if any.
  - ${fieldType}: The field's type name.
  - ${keyType}: Key type name for maps, null otherwise.
  - ${elementType}: Element type name for collections, null otherwise.
  - ${fieldValue}: The field's initial value, in the form "= <value>", or empty string if none.

### usePropertyBasedAccess

    protected boolean usePropertyBasedAccess()

  Whether to use property-based access on generated code. Defaults to false (field-based).

### getClassAnnotations

    protected List getClassAnnotations()

  Return class-level annotations. Returns null by default.

### getFieldAnnotations

    protected List getFieldAnnotations(FieldMetaData field)

  Return field-level annotations. Returns null by default.

### useGenericCollections

    protected boolean useGenericCollections()

  Whether to use generic collections on one-to-many and many-to-many relations instead of untyped collections. Override in descendants to change default behavior.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.