Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


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:

Since:
TopLink 2.1
Author:
Gordon Yorke

Field Summary
private static java.lang.String DEFAULT_PREFIX
           
private  java.util.Hashtable intToTypeConverterHash
           
private  java.util.Hashtable mappingStoredProcedures
          This hashtable is used to store the storedProcedure referenced by the mapping name.
private static int MAX_NAME_SIZE
           
private  java.lang.String prefix
           
 SchemaManager schemaManager
           
private  java.util.Hashtable sequenceProcedures
           
private  java.util.Hashtable storedProcedures
          This hashtable is used to store the storedProcedure referenced by the class name.
private  java.io.Writer writer
           

 

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

storedProcedures

private java.util.Hashtable storedProcedures
This hashtable is used to store the storedProcedure referenced by the class name.

mappingStoredProcedures

private java.util.Hashtable mappingStoredProcedures
This hashtable is used to store the storedProcedure referenced by the mapping name.

intToTypeConverterHash

private java.util.Hashtable intToTypeConverterHash

writer

private java.io.Writer writer

prefix

private java.lang.String prefix

DEFAULT_PREFIX

private static final java.lang.String DEFAULT_PREFIX
See Also:
Constant Field Values

sequenceProcedures

private java.util.Hashtable sequenceProcedures

MAX_NAME_SIZE

private static final int MAX_NAME_SIZE
See Also:
Constant Field Values

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)

Skip navigation links

Copyright © 1998, 2012, Oracle. All Rights Reserved.