EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.tools.schemaframework
Class StoredProcedureGenerator

java.lang.Object
  extended by org.eclipse.persistence.tools.schemaframework.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

Field Summary
 SchemaManager schemaManager
           
 
Constructor Summary
StoredProcedureGenerator(SchemaManager schemaMngr)
           
 
Method Summary
protected  void buildIntToTypeConverterHash()
          INTERNAL: Build all conversions based on JDBC return values.
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.
 void generateAmendmentClass(java.io.Writer outputWriter, java.lang.String packageName, java.lang.String className)
          PUBLIC: Generate an amendment class that will set up the descriptors to use these stored procedures.
protected  StoredProcedureDefinition generateDeleteStoredProcedure(ClassDescriptor descriptor)
          INTERNAL: Generates the delete stored procedure for this descriptor
protected  StoredProcedureDefinition generateInsertStoredProcedure(ClassDescriptor descriptor)
          INTERNAL: Generates the insert stored procedure for this descriptor
protected  java.util.Hashtable generateMappingStoredProcedures(ClassDescriptor descriptor)
          INTERNAL: Generates the mapping stored procedures for this descriptor.
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
protected  StoredProcedureDefinition generateOneToManyMappingDeleteAllProcedure(OneToManyMapping mapping)
          INTERNAL: Generates the delete all stored procedure for this mapping
protected  StoredProcedureDefinition generateOneToManyMappingProcedures(OneToManyMapping mapping, DatabaseQuery query, java.util.Map fields, java.lang.String namePrefix)
          INTERNAL: Generates all the stored procedures for this mapping
protected  StoredProcedureDefinition generateOneToManyMappingReadProcedure(OneToManyMapping mapping)
          INTERNAL: Generates the read all stored procedure for this mapping
protected  StoredProcedureDefinition generateReadAllStoredProcedure(ClassDescriptor descriptor)
          INTERNAL: Generates the read all stored procedure for this descriptor
protected  StoredProcedureDefinition generateReadStoredProcedure(ClassDescriptor descriptor)
          INTERNAL: Generates the read stored procedure for this descriptor
protected  void generateSequenceStoredProcedures(Project project)
          INTERNAL: Generates the select and update stored procedures for this project.
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.
protected  StoredProcedureDefinition generateStoredProcedure(DatabaseQuery query, java.util.List fields, java.lang.String name)
          INTERNAL: Generates the stored procedure for this query.
 void generateStoredProcedures()
          PUBLIC: generates all the stored procedures using the schema manager.
 void generateStoredProcedures(java.io.Writer writerOrNull)
          PUBLIC: generates all the stored procedures to the writer using the schema manager outputDDLToWriter(Writer).
protected  StoredProcedureDefinition generateUpdateStoredProcedure(ClassDescriptor descriptor)
          INTERNAL: Generates the update stored procedure for this descriptor
protected  java.lang.String getFieldName(java.lang.String argumentName)
          INTERNAL: return the original field name based on the argument name.
protected  java.lang.Class getFieldType(java.lang.Object jdbcDataType)
          INTERNAL: return the class corresponding to the passed in JDBC type.
 java.lang.String getPrefix()
           
 org.eclipse.persistence.internal.sessions.AbstractSession getSession()
           
 java.io.Writer getWriter()
           
 void setPrefix(java.lang.String prefix)
           
protected  void verify()
          INTERNAL: Verify that this project and descriptors do not have optimistic locking.
 void writeDefinition(StoredProcedureDefinition definition)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

schemaManager

public SchemaManager schemaManager
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

generateDeleteStoredProcedure

protected StoredProcedureDefinition generateDeleteStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the delete stored procedure for this descriptor


generateInsertStoredProcedure

protected StoredProcedureDefinition generateInsertStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the insert stored procedure for this descriptor


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


generateReadStoredProcedure

protected StoredProcedureDefinition generateReadStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the read 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).


generateUpdateStoredProcedure

protected StoredProcedureDefinition generateUpdateStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the update stored procedure for this descriptor


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)

verify

protected void verify()
               throws ValidationException
INTERNAL: Verify that this project and descriptors do not have optimistic locking.

Throws:
ValidationException

writeDefinition

public void writeDefinition(StoredProcedureDefinition definition)

EclipseLink 2.2.0, build 'v20110202-r8913' API Reference