Class ApplicationIdTool


  • public class ApplicationIdTool
    extends java.lang.Object
    Generates a class appropriate for use as an application identity class.
    Author:
    Patrick Linskey, Abe White
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String TOKEN_DEFAULT  
    • 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 the run() 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ApplicationIdTool

        public ApplicationIdTool​(OpenJPAConfiguration conf,
                                 java.lang.Class type)
        Constructs a new ApplicationIdTool capable of generating an object id class for type.
      • ApplicationIdTool

        public ApplicationIdTool​(OpenJPAConfiguration conf,
                                 java.lang.Class type,
                                 ClassMetaData meta)
        Constructs a new tool instance capable of generating an object id class for meta.
    • 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 the run() 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.
        Each additional argument can be either the full class name of the type to create an id class for, the path to the .java file for the type, the path to the .class file for the type, or the path to a .jdo file listing one or more types. If a .java file already exists for an application id, it will be backed up to a file named <orig file name>~.
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • 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