GeneratorDb2Generator, DerbyGenerator, HsqlGenerator, MssqlGenerator, MysqlGenerator, OracleGenerator, PointBaseGenerator, PostgresqlGenerator, SapdbGenerator, SybaseGeneratorpublic abstract class AbstractGenerator extends java.lang.Object implements Generator
public class Db2Generator extends AbstractGenerator {
public Db2Generator(final String globConf, final String dbConf)
throws GeneratorException {
super(globConf, dbConf);
setTypeMapper(new Db2TypeMapper(getConf()));
}
}
TypeMapper for DB2
public final class Db2TypeMapper extends AbstractTypeMapper {
public Db2TypeMapper(final Configuration conf) {
super(conf);
}
protected void initialize(final Configuration conf) {
// numeric types
this.add(new NotSupportedType("bit"));
LOG.warn("Db2 does not support 'TINY' type, use SMALLINT instead.");
this.add(new NoParamType("tinyint", "SMALLINT"));
this.add(new NoParamType("smallint", "SMALLINT"));
this.add(new NoParamType("integer", "INTEGER"));
this.add(new NoParamType("bigint", "BIGINT"));
}
}
Field for DB2
public class Db2Field extends Field {
public Db2Field() {
super();
}
public String toDDL() throws GeneratorException {
StringBuffer buff = new StringBuffer();
buff.append(getName()).append(" ");
buff.append(getType().toDDL(this));
if (isIdentity()) {
buff.append(" NOT NULL");
}
KeyGenerator keyGen = getKeyGenerator();
if (keyGen != null && isIdentity()) {
if (KeyGenerator.IDENTITY_KEY.equalsIgnoreCase(keyGen.getName())) {
buff.append(" GENERATED BY DEFAULT AS IDENTITY ").
append("START WITH 1 INCREMENT BY 1");
}
}
return buff.toString();
}
}
Field for DB2
public class Db2SchemaFactory extends SchemaFactory {
public Db2SchemaFactory() {
super();
}
public Field createField() {
return new Db2Field();
}
}
The GeneratorFactory class handles the specific database generator creation.
For example:
Generator generator = GeneratorFactory.
createDDLGenerator(“mysql”, “ddl.properties”, “mysql.properties”);
And to generate DDL, it should specify the printer and call generateDDL method.
generator.setPrinter(System.out);
Mapping mapping = new Mapping();
mapping.loadMapping("mapping.xml");
generator.generateDDL(mapping);
GLOBAL_CONFIG_NAME, GLOBAL_CONFIG_PATH| Modifier | Constructor | Description |
|---|---|---|
protected |
AbstractGenerator(DDLGenConfiguration configuration) |
Constructor for AbstractGenerator.
|
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
createForeignKeyDDL(Table table,
DDLWriter writer) |
Generate DDL for foreign key.
|
void |
createIndex(Table table,
DDLWriter writer) |
Generate DDL for indices of given table.
|
void |
createSchema() |
Extracting informations from mapping to schema, this is done by 3 steps.
|
void |
generateCreate(DDLWriter writer) |
Generate DDL for create statementof table.
|
void |
generateDDL(java.io.OutputStream output) |
Generate DDL for a mapping document.
|
void |
generateDrop(DDLWriter writer) |
Generate DDL for drop statement of table.
|
void |
generateForeignKey(DDLWriter writer) |
Generate DDL for foreign keys.
|
abstract void |
generateHeader(DDLWriter writer) |
Generate header comment.
|
void |
generateIndex(DDLWriter writer) |
Generate DDL for indices.
|
void |
generateKeyGenerator(DDLWriter writer) |
Generate DDL for key generators (sequence/trigger).
|
void |
generatePrimaryKey(DDLWriter writer) |
Generate DDL for primany keys.
|
DDLGenConfiguration |
getConfiguration() |
Get configuration of generator.
|
Mapping |
getMapping() |
Get mapping document.
|
MappingHelper |
getMappingHelper() |
Get mapping helper.
|
Schema |
getSchema() |
Get schema.
|
SchemaFactory |
getSchemaFactory() |
Get schema factory.
|
TypeMapper |
getTypeMapper() |
Get type mapper.
|
void |
setKeyGenRegistry(KeyGeneratorRegistry keyGenRegistry) |
Set key generator registry.
|
void |
setMapping(Mapping mapping) |
Set mapping document.
|
protected void |
setMappingHelper(MappingHelper mappingHelper) |
Set mapping helper.
|
protected void |
setSchemaFactory(SchemaFactory schemaFactory) |
Set schema factory.
|
void |
setTypeMapper(TypeMapper typeMapper) |
Set type mapper.
|
getEngineConfigName, getEngineConfigPath, getEngineName, initializeprotected AbstractGenerator(DDLGenConfiguration configuration)
configuration - Configuration to use by the generator.public final DDLGenConfiguration getConfiguration()
public final void setKeyGenRegistry(KeyGeneratorRegistry keyGenRegistry)
setKeyGenRegistry in interface GeneratorkeyGenRegistry - Key generator registry.protected final void setMappingHelper(MappingHelper mappingHelper)
mappingHelper - Mapping helper.public final MappingHelper getMappingHelper()
public final void setTypeMapper(TypeMapper typeMapper)
typeMapper - Type mapper.public final TypeMapper getTypeMapper()
protected final void setSchemaFactory(SchemaFactory schemaFactory)
schemaFactory - Schema factory.public final SchemaFactory getSchemaFactory()
public final void setMapping(Mapping mapping)
setMapping in interface Generatormapping - Mapping document.public final Mapping getMapping()
public final Schema getSchema()
public final void generateDDL(java.io.OutputStream output)
throws GeneratorException
generateDDL in interface Generatoroutput - Output stream for output.GeneratorException - If failed to generate DDL.public final void generateDrop(DDLWriter writer) throws GeneratorException
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void generateCreate(DDLWriter writer) throws GeneratorException
CREATE TABLE prod ( id INTEGER NOT NULL, name CHAR(16) ); CREATE TABLE prod_detail ( id INTEGER NOT NULL, prod_id CHAR(16) );
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void generatePrimaryKey(DDLWriter writer) throws GeneratorException
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void generateForeignKey(DDLWriter writer) throws GeneratorException
ALTER TABLE `prod_group` ADD CONSTRAINT `FK_prod_group_1` FOREIGN KEY `FK_prod_group_1` (`id`, `name`) REFERENCES `category` (`id`, `name`) ON DELETE SET NULL ON UPDATE CASCADE;
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void generateIndex(DDLWriter writer) throws GeneratorException
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void generateKeyGenerator(DDLWriter writer) throws GeneratorException
writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.protected final void createForeignKeyDDL(Table table, DDLWriter writer) throws GeneratorException
table - Table to generate DDL of foreign key for.writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public final void createIndex(Table table, DDLWriter writer) throws GeneratorException
table - Table to generate DDL of indices for.writer - DDLWriter to write schema objects to.GeneratorException - If failed to generate DDL.public abstract void generateHeader(DDLWriter writer)
writer - DDLWriter to write schema objects to.public final void createSchema()
throws GeneratorException
GeneratorException - If failed to create schema objects.Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com