com.triactive.jdo
Interface SchemaManager

All Known Implementing Classes:
StoreManager

public interface SchemaManager

An interface to perform limited storage management on a database schema used by TJDO.

Author:
Mike Martin
See Also:
SchemaManagerFactory

Method Summary
 void addClasses(java.lang.Class[] classes)
          Adds to the schema any database objects (tables, views, constraints, indexes, etc.) necessary to enable persistence of the given PersistenceCapable class(es).
 void dropAllTables()
          Drops all tables in the schema.
 void dropTablesFor(java.lang.Class[] classes)
          Removes from the schema any existing database tables used in persisting the given PersistenceCapable class(es).
 java.lang.String getSchemaName()
          Returns the name of the database schema.
 void reset()
          Resets the schema manager back to its initial state.
 

Method Detail

getSchemaName

java.lang.String getSchemaName()
Returns the name of the database schema.

Returns:
The name of the database schema, or null if the DBMS does not support the concept of schemas.

addClasses

void addClasses(java.lang.Class[] classes)
Adds to the schema any database objects (tables, views, constraints, indexes, etc.) necessary to enable persistence of the given PersistenceCapable class(es). If any of the objects already exist, they are validated for structural correctness; that is, checked to ensure that they "match" the current class code and JDO metadata.

This method is primarily useful for applications that wish to perform all of their database initialization up front, rather than wait for the TJDO runtime to do it on-demand.

SQL identifiers for new database objects are chosen so as not to collide with any existing objects. Therefore it is always safe for TJDO and non-TJDO code to share the same database schema.

Parameters:
classes - The class(es) to be added.
Throws:
SchemaValidationException - If there is some mismatch between the current schema contents and those necessary to enable persistence of the given classes.

dropTablesFor

void dropTablesFor(java.lang.Class[] classes)
Removes from the schema any existing database tables used in persisting the given PersistenceCapable class(es).

This method will fail if the relevant tables are depended upon by others used for classes that are not being removed. In case of failure, it is unspecified whether or not any tables were actually removed.

After dropping tables this method performs an implicit reset().

Parameters:
classes - The class(es) whose tables are to be removed.

dropAllTables

void dropAllTables()
Drops all tables in the schema. This empties the schema of all database objects managed by TJDO. All objects not managed by TJDO are left untouched.

After dropping tables this method performs an implicit reset().


reset

void reset()
Resets the schema manager back to its initial state. This method discards all knowledge of persistent classes and the state of the schema. After reset(), all initialization procedures such as schema validation etc. will be repeated as necessary as though the JVM were starting anew.



Copyright ? 2001 TriActive, Inc. All Rights Reserved.