Class StoredProcedureGenerator
- java.lang.Object
-
- org.eclipse.persistence.tools.schemaframework.StoredProcedureGenerator
-
public class StoredProcedureGenerator extends java.lang.Object
Purpose: To generate StoredProcedures from EclipseLink ProjectsDescription: 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
Fields Modifier and Type Field Description SchemaManager
schemaManager
-
Constructor Summary
Constructors Constructor Description StoredProcedureGenerator(SchemaManager schemaMngr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 descriptorprotected StoredProcedureDefinition
generateInsertStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the insert stored procedure for this descriptorprotected 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 queryprotected StoredProcedureDefinition
generateOneToManyMappingDeleteAllProcedure(OneToManyMapping mapping)
INTERNAL: Generates the delete all stored procedure for this mappingprotected StoredProcedureDefinition
generateOneToManyMappingProcedures(OneToManyMapping mapping, DatabaseQuery query, java.util.Map fields, java.lang.String namePrefix)
INTERNAL: Generates all the stored procedures for this mappingprotected StoredProcedureDefinition
generateOneToManyMappingReadProcedure(OneToManyMapping mapping)
INTERNAL: Generates the read all stored procedure for this mappingprotected StoredProcedureDefinition
generateReadAllStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the read all stored procedure for this descriptorprotected StoredProcedureDefinition
generateReadStoredProcedure(ClassDescriptor descriptor)
INTERNAL: Generates the read stored procedure for this descriptorprotected void
generateSequenceStoredProcedures(Project project)
INTERNAL: Generates the select and update stored procedures for this project.protected StoredProcedureDefinition
generateStoredProcedure(DatabaseQuery query, java.util.List fields, java.lang.String name)
INTERNAL: Generates the stored procedure for this query.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.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 descriptorprotected 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)
-
-
-
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)
-
-