Module eclipselink
Class StoredProcedureGenerator
- java.lang.Object
-
- org.eclipse.persistence.tools.schemaframework.StoredProcedureGenerator
-
public class StoredProcedureGenerator extends 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 SchemaManagerschemaManager
-
Constructor Summary
Constructors Constructor Description StoredProcedureGenerator(SchemaManager schemaMngr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbuildIntToTypeConverterHash()INTERNAL: Build all conversions based on JDBC return values.protected StringbuildProcedureString(SQLCall call)INTERNAL: Given a call, this method produces the stored procedure string based on the SQL string inside the call.voidgenerateAmendmentClass(Writer outputWriter, String packageName, String className)PUBLIC: Generate an amendment class that will set up the descriptors to use these stored procedures.protected StoredProcedureDefinitiongenerateDeleteStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the delete stored procedure for this descriptorprotected StoredProcedureDefinitiongenerateInsertStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the insert stored procedure for this descriptorprotected Map<String,Map<String,StoredProcedureDefinition>>generateMappingStoredProcedures(ClassDescriptor descriptor)INTERNAL: Generates the mapping stored procedures for this descriptor.protected StoredProcedureDefinitiongenerateObjectStoredProcedure(DatabaseQuery query, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, String namePrefix)INTERNAL: Generates the object level stored procedure based on the passed in queryprotected StoredProcedureDefinitiongenerateOneToManyMappingDeleteAllProcedure(OneToManyMapping mapping)INTERNAL: Generates the delete all stored procedure for this mappingprotected StoredProcedureDefinitiongenerateOneToManyMappingProcedures(OneToManyMapping mapping, DatabaseQuery query, Map<org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.helper.DatabaseField> fields, String namePrefix)INTERNAL: Generates all the stored procedures for this mappingprotected StoredProcedureDefinitiongenerateOneToManyMappingReadProcedure(OneToManyMapping mapping)INTERNAL: Generates the read all stored procedure for this mappingprotected StoredProcedureDefinitiongenerateReadAllStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the read all stored procedure for this descriptorprotected StoredProcedureDefinitiongenerateReadStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the read stored procedure for this descriptorprotected voidgenerateSequenceStoredProcedures(Project project)INTERNAL: Generates the select and update stored procedures for this project.protected StoredProcedureDefinitiongenerateStoredProcedure(DatabaseQuery query, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, String name)INTERNAL: Generates the stored procedure for this query.protected StoredProcedureDefinitiongenerateStoredProcedure(DatabaseQuery query, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, org.eclipse.persistence.internal.sessions.AbstractRecord rowForPrepare, String name)INTERNAL: Generates the stored procedure for this query using the row passed in for the check prepare.voidgenerateStoredProcedures()PUBLIC: generates all the stored procedures using the schema manager.voidgenerateStoredProcedures(Writer writerOrNull)PUBLIC: generates all the stored procedures to the writer using the schema manager outputDDLToWriter(Writer).protected StoredProcedureDefinitiongenerateUpdateStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the update stored procedure for this descriptorprotected StringgetFieldName(String argumentName)INTERNAL: return the original field name based on the argument name.protected Class<?>getFieldType(Object jdbcDataType)INTERNAL: return the class corresponding to the passed in JDBC type.StringgetPrefix()org.eclipse.persistence.internal.sessions.AbstractSessiongetSession()WritergetWriter()voidsetPrefix(String prefix)protected voidverify()INTERNAL: Verify that this project and descriptors do not have optimistic locking.voidwriteDefinition(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 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(Writer outputWriter, String packageName, 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 Map<String,Map<String,StoredProcedureDefinition>> 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, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, 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, Map<org.eclipse.persistence.internal.helper.DatabaseField,org.eclipse.persistence.internal.helper.DatabaseField> fields, 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, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, 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, List<org.eclipse.persistence.internal.helper.DatabaseField> fields, org.eclipse.persistence.internal.sessions.AbstractRecord rowForPrepare, 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 or to the file. See outputDDLToWriter(Writer) and outputDDLToDatabase() on SchemaManager
-
generateStoredProcedures
public void generateStoredProcedures(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 String getFieldName(String argumentName)
INTERNAL: return the original field name based on the argument name.
-
getFieldType
protected Class<?> getFieldType(Object jdbcDataType)
INTERNAL: return the class corresponding to the passed in JDBC type.
-
getPrefix
public String getPrefix()
-
getSession
public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
-
getWriter
public Writer getWriter()
-
setPrefix
public void setPrefix(String prefix)
-
verify
protected void verify() throws ValidationExceptionINTERNAL: Verify that this project and descriptors do not have optimistic locking.- Throws:
ValidationException
-
writeDefinition
public void writeDefinition(StoredProcedureDefinition definition)
-
-