|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.1.0) E13403-02 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectoracle.javatools.db.property.AbstractPropertyManager
oracle.javatools.db.ddl.TokenDDLGenerator<T>
oracle.javatools.db.ddl.BundleDDLGenerator<T>
public abstract class BundleDDLGenerator<T extends DDLType>
TokenDDLGenerator subclass that uses either a set of Properties files or ResourceBundles with specially formatted keys to automatically register DDL for generation. In addition to the automatic registration process, additional tokens can be registered from the bundles by calling the registerBundle* methods from a subclass.
If the a key in a bundle is of the form:
TYPE.ACTION.DDLTYPE
e.g. TABLE.CREATE.TAB
or SEQUENCE.ALTER.SEQ
then its value will automatically be registered as a token for that object
TYPE against the given ACTION (CREATE, DROP, UNDELETE, or ALTER). The final
DDLTYPE value is passed to getDDLType(java.lang.String)
method which should return a
DDLType appropriate to this generator.
When processing the entries of the resoure bundle, if any key contains two
"."s and doesn't match a type, action or ddltype a
severe
message will be logged on the
logger
.
Constructor Summary | |
---|---|
BundleDDLGenerator(DBObjectProvider pro,
java.lang.String... resourceNames)
Note the first parameter is a DBObjectProvider, not a Database. |
Method Summary | |
---|---|
protected void |
addBundles(java.util.ResourceBundle... bundles)
Adds the given bundles to this generator. |
protected void |
addResourceNames(java.lang.String... resourceNames)
Adds the given resource names to this generator. |
protected boolean |
canChangeWithAlter(DBObject orig,
DBObject update,
java.lang.String prop)
Returns true if the given property can be changed using an alter on the given original and updated objects. |
protected boolean |
canCreate(java.lang.String type,
java.lang.String prop)
Tests whether the given property is supported for create on the given object type. |
protected java.lang.String |
findResource(java.lang.String key)
|
protected DDL<T> |
finish(DDLOptions options,
DDL<T> ddl)
This method is called on every DDL created before it is returned. |
DDL<T> |
getCreateDDL(DDLOptions options,
DBObject... objects)
Gets CREATE statements for the given objects. |
Ddl |
getCreateDDL(Schema schema)
Retrieves the DDL for creating a new Schema |
Ddl |
getCreateDDL(SchemaObject[] objects,
boolean replace,
boolean cascade)
Retrieves the DDL for creating the specified objects. |
Ddl |
getCreateDDL(SchemaObject obj,
boolean replace,
boolean cascade)
Retrieves the DDL for creating the specified object. |
protected DDL<T> |
getCreateDDLImpl(DDLOptions options,
DBObject... objects)
|
protected abstract T |
getDDLType(java.lang.String type)
Implement in subclasses to return the right DDLType implementation for the given string. |
DDL<T> |
getDeleteDDL(DDLOptions options,
DBObject... objects)
Gets DROP statements for the given objects. |
Ddl |
getDeleteDDL(Schema schema,
boolean cascade)
|
Ddl |
getDeleteDDL(SchemaObject[] objects,
boolean cascade)
Retrieves the DDL for deleting an array of objects. |
Ddl |
getDeleteDDL(SchemaObject object,
boolean cascade)
Retrieves the DDL for deleting an object. |
protected DDL<T> |
getDeleteDDLImpl(DDLOptions options,
DBObject... objects)
|
protected DiffEngine |
getLegacyDiffEngine(java.lang.String type)
Deprecated. |
DDL<T> |
getUndeleteDDL(DDLOptions options,
DBObject... objects)
Gets statements to undelete (e.g. |
DDL<T> |
getUpdateDDL(DDLOptions options,
ResultSet resultSet)
Gets ALTER statements for the given objects where possible, or DROP/CREATE, or CREATE AND REPLACE where appropriate/necessary. |
Ddl[] |
getUpdateDDL(ResultSet resultSet,
boolean replace,
boolean cascade)
Retrieves the DDL for updating the definition of an object. |
Ddl[] |
getUpdateDDL(SchemaObject[] oldObjects,
SchemaObject[] newObjects)
Retrieves DDL to update an array of SchemaObject objects. |
Ddl[] |
getUpdateDDL(SchemaObject oldObject,
SchemaObject newObject)
Retrieves the DDL for updating the definition of an object. |
protected DDL<T> |
getUpdateDDLImpl(DDLOptions options,
ResultSet rs)
Gets the update DDL for the given ResultSet. |
protected void |
processResultSet(DDLOptions options,
ResultSet rs,
DDL<T> ddl)
|
protected void |
registerAlterGenerator(java.lang.String type,
AlterDDLGenerator deletor)
|
protected void |
registerBundleAlterDDL(java.lang.String type,
java.lang.String resName,
T ddlType)
Registers alter DDL code from the ResourceBundle by the resource name of the code in that bundle. |
protected void |
registerBundleCreateDDL(java.lang.String type,
java.lang.String resName,
T ddlType)
Registers create DDL code from the ResourceBundle by the resource name of the code in that bundle. |
protected void |
registerBundleDropDDL(java.lang.String type,
java.lang.String resName,
T ddlType)
Registers drop DDL code from the ResourceBundle by the resource name of the code in that bundle. |
protected void |
registerBundleTokens()
Registers all the tokens in the underyling resource bundles. |
protected void |
registerBundleUndeleteDDL(java.lang.String type,
java.lang.String resName,
T ddlType)
Registers undelete DDL code from the ResourceBundle by the resource name of the code in that bundle. |
protected void |
registerCreateGenerator(java.lang.String type,
CreateDDLGenerator creator)
|
protected void |
registerDropGenerator(java.lang.String type,
DropDDLGenerator dropper)
|
protected void |
registerUndeleteGenerator(java.lang.String type,
UndeleteDDLGenerator undeletor)
|
void |
setOldGenerator(AbstractDDLGenerator oldGen)
Deprecated. - the old DDLGenerator API is
deprecated so this method will be removed when it is. |
boolean |
supportsAction(java.lang.String type,
PropertyAction action)
Asks whether a given action is supported for the specified object type in this provider. |
Methods inherited from class oracle.javatools.db.ddl.TokenDDLGenerator |
---|
createDDL, createUpdateDDL, registerAlterDDL, registerCreateDDL, registerDropDDL, registerTokenGenerator, registerUndeleteDDL |
Methods inherited from class oracle.javatools.db.property.AbstractPropertyManager |
---|
canChangeProperty, canChangeWithReplace, canCreate, canUpdateObject, canUpdateObject, getLogger, getProvider, getProviderClass, supportsProperty, supportsProperty |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface oracle.javatools.db.property.PropertyManager |
---|
canChangeProperty, canUpdateObject, canUpdateObject, supportsProperty |
Constructor Detail |
---|
public BundleDDLGenerator(DBObjectProvider pro, java.lang.String... resourceNames)
If the resourceNames parameter is non-null this will call
#addResourcesNames
and therefore initialise the generator. If
resourceNames is omitted, addResourceNames(java.lang.String...)
or
addBundles(java.util.ResourceBundle...)
must be called for the generator to function.
pro
- the provider for this generator to use for name externalisation
etcbundles
- either Strings (for properties files) or ResourceBundles
that contains the ddl token syntax.Method Detail |
---|
protected void addResourceNames(java.lang.String... resourceNames)
addBundles(java.util.ResourceBundle...)
should be called only once for a
given generator to avoid duplicate registration of resources.
resourceNames
- the names of properties files containing the resourcesprotected void addBundles(java.util.ResourceBundle... bundles)
addResourceNames(java.lang.String...)
should be called only once for a given generator to avoid duplicate
registration of resources.
bundles
- the ResourceBundles containing the ddl token strings.protected final java.lang.String findResource(java.lang.String key)
protected final void registerBundleTokens()
protected abstract T getDDLType(java.lang.String type)
protected final void registerBundleCreateDDL(java.lang.String type, java.lang.String resName, T ddlType)
TokenDDLGenerator.registerCreateDDL(String,String,oracle.javatools.db.ddl.DDLType)
protected final void registerBundleDropDDL(java.lang.String type, java.lang.String resName, T ddlType)
TokenDDLGenerator.registerDropDDL(String,String,oracle.javatools.db.ddl.DDLType)
protected final void registerBundleUndeleteDDL(java.lang.String type, java.lang.String resName, T ddlType)
TokenDDLGenerator.registerDropDDL(String,String,oracle.javatools.db.ddl.DDLType)
protected final void registerBundleAlterDDL(java.lang.String type, java.lang.String resName, T ddlType)
TokenDDLGenerator.registerAlterDDL(String,String,oracle.javatools.db.ddl.DDLType)
protected final void registerCreateGenerator(java.lang.String type, CreateDDLGenerator creator)
protected final void registerDropGenerator(java.lang.String type, DropDDLGenerator dropper)
protected final void registerAlterGenerator(java.lang.String type, AlterDDLGenerator deletor)
protected final void registerUndeleteGenerator(java.lang.String type, UndeleteDDLGenerator undeletor)
protected DDL<T> getCreateDDLImpl(DDLOptions options, DBObject... objects)
protected DDL<T> getDeleteDDLImpl(DDLOptions options, DBObject... objects)
public DDL<T> getUndeleteDDL(DDLOptions options, DBObject... objects)
DDLGenerator
protected DDL<T> getUpdateDDLImpl(DDLOptions options, ResultSet rs)
options
- the options for generationrs
- the ResultSet for the object to alter
protected boolean canCreate(java.lang.String type, java.lang.String prop)
AbstractPropertyManager
protected DDL<T> finish(DDLOptions options, DDL<T> ddl)
options
- the options for the current generationddl
- the ddl we've generated and are about to returnpublic boolean supportsAction(java.lang.String type, PropertyAction action)
PropertyManager
supportsAction
in interface PropertyManager
protected boolean canChangeWithAlter(DBObject orig, DBObject update, java.lang.String prop)
AbstractPropertyManager
canChangeWithAlter
in class AbstractPropertyManager
@Deprecated public final void setOldGenerator(AbstractDDLGenerator oldGen)
DDLGenerator
API is
deprecated so this method will be removed when it is.
public final DDL<T> getCreateDDL(DDLOptions options, DBObject... objects)
DDLGenerator
public final DDL<T> getDeleteDDL(DDLOptions options, DBObject... objects)
DDLGenerator
public final DDL<T> getUpdateDDL(DDLOptions options, ResultSet resultSet)
DDLGenerator
@Deprecated protected DiffEngine getLegacyDiffEngine(java.lang.String type)
protected final void processResultSet(DDLOptions options, ResultSet rs, DDL<T> ddl)
public final Ddl getCreateDDL(SchemaObject obj, boolean replace, boolean cascade)
DDLGenerator
If the replace option is specified, and the object exists in the provider, DDL is create to drop the object. (except views, where CREATE OR REPLACE is generated)
getCreateDDL
in interface DDLGenerator
obj
- the object for which DDL is requiredreplace
- whether an existing object should be replacedcascade
- whether any DROP associated with replace should be cascaded
public final Ddl getCreateDDL(SchemaObject[] objects, boolean replace, boolean cascade)
DDLGenerator
If the replace option is specified, DDL is generated to drop all the Foreign Keys in the tables in the specified objects. DDL is then generated to drop all of the specified objects (except views) which exist in the provider.
getCreateDDL
in interface DDLGenerator
replace
- whether an existing object should be replacedcascade
- whether any DROP associated with replace should be cascaded
public final Ddl getDeleteDDL(SchemaObject object, boolean cascade)
DDLGenerator
getDeleteDDL
in interface DDLGenerator
object
- the object to be deletedcascade
- a boolean value indicating whether a cascade delete
should be performed, if appropriate for the object type
public final Ddl getDeleteDDL(SchemaObject[] objects, boolean cascade)
DDLGenerator
getDeleteDDL
in interface DDLGenerator
cascade
- a boolean value indicating whether a cascade delete
should be performed, if appropriate for the object type
public final Ddl[] getUpdateDDL(SchemaObject oldObject, SchemaObject newObject)
DDLGenerator
getUpdateDDL
in interface DDLGenerator
oldObject
- the original version of the objectnewObject
- the updated data model
public final Ddl[] getUpdateDDL(SchemaObject[] oldObjects, SchemaObject[] newObjects)
DDLGenerator
SchemaObject
objects.
The generated DDL will modified the dbUpdatable
objects
to match the dbMaster
objects.
getUpdateDDL
in interface DDLGenerator
oldObjects
- the original versions of the objectsnewObjects
- the updated data model
public final Ddl[] getUpdateDDL(ResultSet resultSet, boolean replace, boolean cascade)
DDLGenerator
getUpdateDDL
in interface DDLGenerator
resultSet
- description of the differences between two objectsreplace
- whether to replace any existing objects being createdcascade
- whether to cascade the delete of any objects
public final Ddl getCreateDDL(Schema schema)
DDLGenerator
getCreateDDL
in interface DDLGenerator
schema
- the Schema for which the DDL is required
public final Ddl getDeleteDDL(Schema schema, boolean cascade)
getDeleteDDL
in interface DDLGenerator
|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.1.0) E13403-02 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |