Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.schema
Class SchemaGenerator

    java.lang.Object
      org.apache.openjpa.jdbc.schema.SchemaGenerator

    public class SchemaGenerator

extends Object

The SchemaGenerator creates `Schema`s matching the current database. All schemas are added to the current `SchemaGroup`. Note that tables whose name starts with "OPENJPA_" will be not be added to the database schema. This enables the creation of special tables that will never be dropped by the `SchemaTool`.

Author:
  Abe White

Nested Class Summary
`class` | `SchemaGenerator.Event` An event corresponding to the generation of a schema object.
`static interface` | `SchemaGenerator.Listener` A listener for a potentially lengthy schema generation process.

Constructor Summary
`SchemaGenerator(JDBCConfiguration conf)` Constructor.

Method Summary
`void` | `addListener(SchemaGenerator.Listener l)` Adds a listener for schema generation events.
`void` | `generateForeignKeys(String schemaName, String[] tableNames)` Generate foreign key information for the given schema.
`void` | `generateForeignKeys(String schemaName, String tableName, Connection conn, DatabaseMetaData meta)` Generates table foreign keys.
`void` | `generateIndexes(String schemaName, String[] tableNames)` Generate index information for the given schema.
`void` | `generateIndexes(String schemaName, String tableName, Connection conn, DatabaseMetaData meta)` Generates table indexes.
`void` | `generatePrimaryKeys(String schemaName, String[] tableNames)` Generate primary key information for the given schema.
`void` | `generatePrimaryKeys(String schemaName, String tableName, Connection conn, DatabaseMetaData meta)` Generates table primary keys.
`void` | `generateSchema(String name, String[] tableNames)` Add a fully-constructed `Schema` matching the given database schema to the current group.
`void` | `generateSchemas()` Generate all schemas set in the configuration.
`void` | `generateSchemas(String[] schemasAndTables)` Generate the schemas and/or tables named in the given strings.
`void` | `generateSequences(String schemaName, String sequenceName, Connection conn, DatabaseMetaData meta)` Adds all sequences matching the given name pattern to the schema.
`void` | `generateTables(String schemaName, String tableName, Connection conn, DatabaseMetaData meta)` Adds all tables matching the given name pattern to the schema.
`boolean` | `getForeignKeys()` Return whether foreign keys should be generated.
`boolean` | `getIndexes()` Return whether indexes should be generated.
`boolean` | `getOpenJPATables()` Whether to generate info on special tables used by OpenJPA components for bookkeeping.
`boolean` | `getPrimaryKeys()` Return whether primary keys should be generated.
`SchemaGroup` | `getSchemaGroup()` Return the current schema group.
`boolean` | `getSequences()` Return whether sequences should be generated.
`boolean` | `removeListener(SchemaGenerator.Listener l)` Removes a schema generation listener for schema events.
`void` | `setForeignKeys(boolean fks)` Set whether foreign keys should be generated.
`void` | `setIndexes(boolean indexes)` Set whether indexes should be generated.
`void` | `setOpenJPATables(boolean openjpaTables)` Whether to generate info on special tables used by OpenJPA components for bookkeeping.
`void` | `setPrimaryKeys(boolean pks)` Set whether primary keys should be generated.
`void` | `setSchemaGroup(SchemaGroup group)` Set the schema group to add generated schemas to.
`void` | `setSequences(boolean seqs)` Set whether sequences should be generated.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SchemaGenerator

    public SchemaGenerator(JDBCConfiguration conf)

  Constructor.

  Parameters:
    `conf` - configuration for connecting to the data store

Method Detail

### getIndexes

    public boolean getIndexes()

  Return whether indexes should be generated. Defaults to true.

### setIndexes

    public void setIndexes(boolean indexes)

  Set whether indexes should be generated. Defaults to true.

### getForeignKeys

    public boolean getForeignKeys()

  Return whether foreign keys should be generated. Defaults to true.

### setForeignKeys

    public void setForeignKeys(boolean fks)

  Set whether foreign keys should be generated. Defaults to true.

### getPrimaryKeys

    public boolean getPrimaryKeys()

  Return whether primary keys should be generated. Defaults to true.

### setPrimaryKeys

    public void setPrimaryKeys(boolean pks)

  Set whether primary keys should be generated. Defaults to true.

### getSequences

    public boolean getSequences()

  Return whether sequences should be generated. Defaults to true.

### setSequences

    public void setSequences(boolean seqs)

  Set whether sequences should be generated. Defaults to true.

### getOpenJPATables

    public boolean getOpenJPATables()

  Whether to generate info on special tables used by OpenJPA components for bookkeeping. Defaults to true.

### setOpenJPATables

    public void setOpenJPATables(boolean openjpaTables)

  Whether to generate info on special tables used by OpenJPA components for bookkeeping. Defaults to true.

### getSchemaGroup

    public SchemaGroup getSchemaGroup()

  Return the current schema group.

### setSchemaGroup

    public void setSchemaGroup(SchemaGroup group)

  Set the schema group to add generated schemas to.

### generateSchemas

    public void generateSchemas()
                         throws SQLException

  Generate all schemas set in the configuration. This method also calls `generateIndexes(java.lang.String, java.lang.String[])`, `generatePrimaryKeys(java.lang.String, java.lang.String[])`, and `generateForeignKeys(java.lang.String, java.lang.String[])` automatically.

  Throws:
    `SQLException`

### generateSchemas

    public void generateSchemas(String[] schemasAndTables)
                         throws SQLException

  Generate the schemas and/or tables named in the given strings. This method calls `generateIndexes(java.lang.String, java.lang.String[])`, `generatePrimaryKeys(java.lang.String, java.lang.String[])`, and `generateForeignKeys(java.lang.String, java.lang.String[])` automatically.

  Throws:
    `SQLException`

### generateSchema

    public void generateSchema(String name,
                               String[] tableNames)
                        throws SQLException

  Add a fully-constructed `Schema` matching the given database schema to the current group. No foreign keys are generated because some keys might span schemas. You must call `generatePrimaryKeys(java.lang.String, java.lang.String[])`, `generateIndexes(java.lang.String, java.lang.String[])`, and `generateForeignKeys(java.lang.String, java.lang.String[])` separately.

  Parameters:
    `name` - the database name of the schema, or null for all schemas
    `tableNames` - a list of tables to generate in the schema, or null to generate all tables
  Throws:
    `SQLException`

### generatePrimaryKeys

    public void generatePrimaryKeys(String schemaName,
                                    String[] tableNames)
                             throws SQLException

  Generate primary key information for the given schema. This method must be called in addition to `generateSchema(java.lang.String, java.lang.String[])`. It should only be called after all schemas are generated. The schema name and tables array can be null to indicate that indexes should be generated for all schemas and/or tables.

  Throws:
    `SQLException`

### generateIndexes

    public void generateIndexes(String schemaName,
                                String[] tableNames)
                         throws SQLException

  Generate index information for the given schema. This method must be called in addition to `generateSchema(java.lang.String, java.lang.String[])`. It should only be called after all schemas are generated. The schema name and tables array can be null to indicate that indexes should be generated for all schemas and/or tables.

  Throws:
    `SQLException`

### generateForeignKeys

    public void generateForeignKeys(String schemaName,
                                    String[] tableNames)
                             throws SQLException

  Generate foreign key information for the given schema. This method must be called in addition to `generateSchema(java.lang.String, java.lang.String[])`. It should only be called after all schemas are generated. The schema name and tables array can be null to indicate that indexes should be generated for all schemas and/or tables.

  Throws:
    `SQLException`

### generateTables

    public void generateTables(String schemaName,
                               String tableName,
                               Connection conn,
                               DatabaseMetaData meta)
                        throws SQLException

  Adds all tables matching the given name pattern to the schema.

  Throws:
    `SQLException`

### generatePrimaryKeys

    public void generatePrimaryKeys(String schemaName,
                                    String tableName,
                                    Connection conn,
                                    DatabaseMetaData meta)
                             throws SQLException

  Generates table primary keys.

  Throws:
    `SQLException`

### generateIndexes

    public void generateIndexes(String schemaName,
                                String tableName,
                                Connection conn,
                                DatabaseMetaData meta)
                         throws SQLException

  Generates table indexes.

  Throws:
    `SQLException`

### generateForeignKeys

    public void generateForeignKeys(String schemaName,
                                    String tableName,
                                    Connection conn,
                                    DatabaseMetaData meta)
                             throws SQLException

  Generates table foreign keys.

  Throws:
    `SQLException`

### generateSequences

    public void generateSequences(String schemaName,
                                  String sequenceName,
                                  Connection conn,
                                  DatabaseMetaData meta)
                           throws SQLException

  Adds all sequences matching the given name pattern to the schema.

  Throws:
    `SQLException`

### addListener

    public void addListener(SchemaGenerator.Listener l)

  Adds a listener for schema generation events.

  Parameters:
    `l` - the listener to add

### removeListener

    public boolean removeListener(SchemaGenerator.Listener l)

  Removes a schema generation listener for schema events.

  Parameters:
    `l` - the listener to remove
  Returns:
    true if it was successfully removed

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006 Apache Software Foundation. All Rights Reserved.