Class StoredProcedureGenerator


  • public class StoredProcedureGenerator
    extends java.lang.Object
    Purpose: To generate StoredProcedures from EclipseLink Projects

    Description: This Class was designed to read in a project and produce StoredProcedures. It then modifies the descriptors files of the project to use these StoredProcedures. NOTE: reads are not supported in Oracle.

    Responsibilities:

    Author:
    Gordon Yorke
    Since:
    TopLink 2.1
    • Constructor Detail

      • StoredProcedureGenerator

        public StoredProcedureGenerator​(SchemaManager schemaMngr)
    • Method Detail

      • buildIntToTypeConverterHash

        protected void buildIntToTypeConverterHash()
        INTERNAL: Build all conversions based on JDBC return values.
      • buildProcedureString

        protected java.lang.String buildProcedureString​(SQLCall call)
        INTERNAL: Given a call, this method produces the stored procedure string based on the SQL string inside the call.
      • generateAmendmentClass

        public void generateAmendmentClass​(java.io.Writer outputWriter,
                                           java.lang.String packageName,
                                           java.lang.String className)
                                    throws ValidationException
        PUBLIC: Generate an amendment class that will set up the descriptors to use these stored procedures.
        Throws:
        ValidationException
      • generateMappingStoredProcedures

        protected java.util.Hashtable generateMappingStoredProcedures​(ClassDescriptor descriptor)
        INTERNAL: Generates the mapping stored procedures for this descriptor. currently only 1:1 and 1:M are supported
      • generateObjectStoredProcedure

        protected StoredProcedureDefinition generateObjectStoredProcedure​(DatabaseQuery query,
                                                                          java.util.List fields,
                                                                          java.lang.String namePrefix)
        INTERNAL: Generates the object level stored procedure based on the passed in query
      • generateOneToManyMappingDeleteAllProcedure

        protected StoredProcedureDefinition generateOneToManyMappingDeleteAllProcedure​(OneToManyMapping mapping)
        INTERNAL: Generates the delete all stored procedure for this mapping
      • generateOneToManyMappingProcedures

        protected StoredProcedureDefinition generateOneToManyMappingProcedures​(OneToManyMapping mapping,
                                                                               DatabaseQuery query,
                                                                               java.util.Map fields,
                                                                               java.lang.String namePrefix)
        INTERNAL: Generates all the stored procedures for this mapping
      • generateOneToManyMappingReadProcedure

        protected StoredProcedureDefinition generateOneToManyMappingReadProcedure​(OneToManyMapping mapping)
        INTERNAL: Generates the read all stored procedure for this mapping
      • generateReadAllStoredProcedure

        protected StoredProcedureDefinition generateReadAllStoredProcedure​(ClassDescriptor descriptor)
        INTERNAL: Generates the read all stored procedure for this descriptor
      • generateSequenceStoredProcedures

        protected void generateSequenceStoredProcedures​(Project project)
        INTERNAL: Generates the select and update stored procedures for this project. no procedures are generated for native sequencing. Note: reads are not supported in Oracle.
      • generateStoredProcedure

        protected StoredProcedureDefinition generateStoredProcedure​(DatabaseQuery query,
                                                                    java.util.List fields,
                                                                    java.lang.String name)
        INTERNAL: Generates the stored procedure for this query. A new row will be used for the check prepare.
      • generateStoredProcedure

        protected StoredProcedureDefinition generateStoredProcedure​(DatabaseQuery query,
                                                                    java.util.List fields,
                                                                    org.eclipse.persistence.internal.sessions.AbstractRecord rowForPrepare,
                                                                    java.lang.String name)
        INTERNAL: Generates the stored procedure for this query using the row passed in for the check prepare.
      • generateStoredProcedures

        public void generateStoredProcedures()
        PUBLIC: generates all the stored procedures using the schema manager. The schema manager may be set to write directly to the database on the a file. See outputDDLToWriter(Writer) and outputDDLToDatabase() on SchemaManager
      • generateStoredProcedures

        public void generateStoredProcedures​(java.io.Writer writerOrNull)
        PUBLIC: generates all the stored procedures to the writer using the schema manager outputDDLToWriter(Writer).
      • getFieldName

        protected java.lang.String getFieldName​(java.lang.String argumentName)
        INTERNAL: return the original field name based on the argument name.
      • getFieldType

        protected java.lang.Class getFieldType​(java.lang.Object jdbcDataType)
        INTERNAL: return the class corresponding to the passed in JDBC type.
      • getPrefix

        public java.lang.String getPrefix()
      • getSession

        public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
      • getWriter

        public java.io.Writer getWriter()
      • setPrefix

        public void setPrefix​(java.lang.String prefix)