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 Hashtable<String,Hashtable<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 Hashtable<String,Hashtable<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 on the a 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)
-
-