Package org.apache.openjpa.enhance
Class ApplicationIdTool
- java.lang.Object
-
- org.apache.openjpa.enhance.ApplicationIdTool
-
public class ApplicationIdTool extends java.lang.Object
Generates a class appropriate for use as an application identity class.- Author:
- Patrick Linskey, Abe White
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ApplicationIdTool.Flags
Run flags.static interface
ApplicationIdTool.ObjectIdLoader
Interface implemented by metadata factories that can load non-existant object id classes.
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
TOKEN_DEFAULT
-
Constructor Summary
Constructors Constructor Description ApplicationIdTool(OpenJPAConfiguration conf, java.lang.Class type)
Constructs a new ApplicationIdTool capable of generating an object id class fortype
.ApplicationIdTool(OpenJPAConfiguration conf, java.lang.Class type, ClassMetaData meta)
Constructs a new tool instance capable of generating an object id class formeta
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getCode()
Return the code generated for the application id, or null if invalid class or therun()
method has not been called.CodeFormat
getCodeFormat()
The code formatter for the generated Java code.java.io.File
getDirectory()
The directory to write source to.boolean
getIgnoreErrors()
Return false if this tool is configured to throw an exception on an attempt to generate an id class for a type that does not use application identity.java.util.Set
getImportPackages()
Returns the collection of packages that need to be imported.ClassMetaData
getMetaData()
Return metadata for the type we are generating an application id for.java.lang.String
getToken()
The token to use to separate stringified primary key field values.java.lang.Class
getType()
Return the type we are generating an application id for.java.io.Writer
getWriter()
The writer to write source to, or null to write to default file.boolean
isInnerClass()
Returns true if the application identity class should be an inner class.static void
main(java.lang.String[] args)
Usage: java org.apache.openjpa.enhance.ApplicationIdTool [option]* <class name | .java file | .class file | .jdo file>+ Where the following options are recognized.void
record()
Writes the generated code to the proper file.boolean
run()
Generates the sourcecode for the application id class; returns false if the class is invalid.static boolean
run(OpenJPAConfiguration conf, java.lang.String[] args, ApplicationIdTool.Flags flags, java.lang.ClassLoader loader)
Run the tool.static boolean
run(OpenJPAConfiguration conf, java.lang.String[] args, Options opts)
Run the application id tool with the given command-line and given configuration.void
setCodeFormat(CodeFormat format)
Set the code formatter for the generated Java code.void
setDirectory(java.io.File dir)
The directory to write source to.void
setIgnoreErrors(boolean ignore)
Set to false if this tool should throw an exception on an attempt to generate an id class for a type that does not use application identity.void
setToken(java.lang.String token)
The token to use to separate stringified primary key field values.void
setWriter(java.io.Writer writer)
The writer to write source to, or null to write to default file.
-
-
-
Field Detail
-
TOKEN_DEFAULT
public static final java.lang.String TOKEN_DEFAULT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ApplicationIdTool
public ApplicationIdTool(OpenJPAConfiguration conf, java.lang.Class type)
Constructs a new ApplicationIdTool capable of generating an object id class fortype
.
-
ApplicationIdTool
public ApplicationIdTool(OpenJPAConfiguration conf, java.lang.Class type, ClassMetaData meta)
Constructs a new tool instance capable of generating an object id class formeta
.
-
-
Method Detail
-
getIgnoreErrors
public boolean getIgnoreErrors()
Return false if this tool is configured to throw an exception on an attempt to generate an id class for a type that does not use application identity.
-
setIgnoreErrors
public void setIgnoreErrors(boolean ignore)
Set to false if this tool should throw an exception on an attempt to generate an id class for a type that does not use application identity.
-
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.
-
getDirectory
public java.io.File getDirectory()
The directory to write source to. Defaults to the directory of the Java file for the set type. If the given directory does not match the package of the object id, the package structure will be created below the directory.
-
setDirectory
public void setDirectory(java.io.File dir)
The directory to write source to. Defaults to the directory of the Java file for the set type. If the given directory does not match the package of the object id, the package structure will be created below the directory.
-
getToken
public java.lang.String getToken()
The token to use to separate stringified primary key field values.
-
setToken
public void setToken(java.lang.String token)
The token to use to separate stringified primary key field values.
-
getWriter
public java.io.Writer getWriter()
The writer to write source to, or null to write to default file.
-
setWriter
public void setWriter(java.io.Writer writer)
The writer to write source to, or null to write to default file.
-
getType
public java.lang.Class getType()
Return the type we are generating an application id for.
-
getMetaData
public ClassMetaData getMetaData()
Return metadata for the type we are generating an application id for.
-
getCode
public java.lang.String getCode()
Return the code generated for the application id, or null if invalid class or therun()
method has not been called.
-
isInnerClass
public boolean isInnerClass()
Returns true if the application identity class should be an inner class.
-
run
public boolean run()
Generates the sourcecode for the application id class; returns false if the class is invalid.
-
record
public void record() throws java.io.IOException
Writes the generated code to the proper file.- Throws:
java.io.IOException
-
getImportPackages
public java.util.Set getImportPackages()
Returns the collection of packages that need to be imported.
-
main
public static void main(java.lang.String[] args) throws java.io.IOException, java.lang.ClassNotFoundException
Usage: java org.apache.openjpa.enhance.ApplicationIdTool [option]* <class name | .java file | .class file | .jdo file>+ Where the following options are recognized.- -properties/-p <properties file>: The path to a OpenJPA
properties file containing information as outlined in
Configuration
; optional. - -<property name> <property value>: All bean
properties of the standard OpenJPA
OpenJPAConfiguration
can be set by using their names and supplying a value. - -directory/-d <output directory>: Path to the base source directory. The package structure will be created beneath this directory if necessary. If not specified, the tool will try to locate the .java file in the CLASSPATH and output to the same directory; failing that, it will use the current directory as the base directory.
- -ignoreErrors/-i <true/t | false/f>: If false, an exception will be thrown if the tool encounters any class that does not use application identity or uses the identity class of its superclass; defaults to true.
- -token/-t <token>: The token to use to separate stingified primary key field values in the stringified oid.
- -name/-n <id class name>: The name of the identity class to generate. If this option is specified, you must only give a single class argument. If the class metadata names an object id class, this argument is ignored.
- -suffix/-s <id class suffix>: A string to suffix each
persistent class with to create the identity class name. This is
overridden by
-name
or by any identity class name specified in metadata. - -codeFormat/-cf.<property name> < property value>
: Arguments like this will be used to configure the bean
properties of the internal
CodeFormat
.
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
- -properties/-p <properties file>: The path to a OpenJPA
properties file containing information as outlined in
-
run
public static boolean run(OpenJPAConfiguration conf, java.lang.String[] args, Options opts) throws java.io.IOException, java.lang.ClassNotFoundException
Run the application id tool with the given command-line and given configuration. Returns false if invalid options were given.- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
run
public static boolean run(OpenJPAConfiguration conf, java.lang.String[] args, ApplicationIdTool.Flags flags, java.lang.ClassLoader loader) throws java.io.IOException, java.lang.ClassNotFoundException
Run the tool. Returns false if invalid options were given.- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-