Class StoredProcedureGenerator
- java.lang.Object
-
- org.eclipse.persistence.tools.schemaframework.StoredProcedureGenerator
-
public class StoredProcedureGenerator extends java.lang.ObjectPurpose: 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 java.lang.StringbuildProcedureString(SQLCall call)INTERNAL: Given a call, this method produces the stored procedure string based on the SQL string inside the call.voidgenerateAmendmentClass(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 StoredProcedureDefinitiongenerateDeleteStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the delete stored procedure for this descriptorprotected StoredProcedureDefinitiongenerateInsertStoredProcedure(ClassDescriptor descriptor)INTERNAL: Generates the insert stored procedure for this descriptorprotected java.util.HashtablegenerateMappingStoredProcedures(ClassDescriptor descriptor)INTERNAL: Generates the mapping stored procedures for this descriptor.protected StoredProcedureDefinitiongenerateObjectStoredProcedure(DatabaseQuery query, java.util.List fields, java.lang.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, java.util.Map fields, java.lang.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, java.util.List fields, java.lang.String name)INTERNAL: Generates the stored procedure for this query.protected StoredProcedureDefinitiongenerateStoredProcedure(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.voidgenerateStoredProcedures()PUBLIC: generates all the stored procedures using the schema manager.voidgenerateStoredProcedures(java.io.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 java.lang.StringgetFieldName(java.lang.String argumentName)INTERNAL: return the original field name based on the argument name.protected java.lang.ClassgetFieldType(java.lang.Object jdbcDataType)INTERNAL: return the class corresponding to the passed in JDBC type.java.lang.StringgetPrefix()org.eclipse.persistence.internal.sessions.AbstractSessiongetSession()java.io.WritergetWriter()voidsetPrefix(java.lang.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 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 ValidationExceptionPUBLIC: 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 ValidationExceptionINTERNAL: Verify that this project and descriptors do not have optimistic locking.- Throws:
ValidationException
-
writeDefinition
public void writeDefinition(StoredProcedureDefinition definition)
-
-