Java Doc for AbstractGenerator.java in  » Database-ORM » castor » org » castor » ddlgen » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Database ORM » castor » org.castor.ddlgen 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.castor.ddlgen.AbstractGenerator

All known Subclasses:   org.castor.ddlgen.engine.db2.Db2Generator,  org.castor.ddlgen.engine.sapdb.SapdbGenerator,  org.castor.ddlgen.engine.hsql.HsqlGenerator,  org.castor.ddlgen.engine.sybase.SybaseGenerator,  org.castor.ddlgen.engine.derby.DerbyGenerator,  org.castor.ddlgen.engine.oracle.OracleGenerator,  org.castor.ddlgen.engine.mssql.MssqlGenerator,  org.castor.ddlgen.engine.pointbase.PointBaseGenerator,  org.castor.ddlgen.engine.postgresql.PostgresqlGenerator,  org.castor.ddlgen.engine.mysql.MysqlGenerator,
AbstractGenerator
abstract public class AbstractGenerator implements Generator(Code)
AbstractGenerator is the base class for various DDL generator of specific DB and handles following tasks:
  • Extract information from Mapping to Schema
  • Loop through the schema and provide a skeleton for DDL creation

    AbstractGenerator will automatically extract necessary information for DDL creation. That information is handled by Schema.

    To create new generator for a DBMS, you should:

  • Overwrite this class to create new generator for a DBMS.
  • If the syntax of DBMS is different to standard DDL syntax, you should overwrite SchemaObject (Table, Field, KeyGenerator, Index, ForeignKey,...) classes. The class SchemaObjectFactory who handles the SchemaObject creation must be overwritten.
  • You must overwrite the TypeMapper if mapping between JDBC types and specific DBMS’s types is different among various DBMS.

    The example bellow shows how to create a generator for DB2:

  • Generator for DB2
     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);            
     

    author:
       Le Duc Bao
    author:
       Ralf Joachim
    version:
       $Revision: 5951 $ $Date: 2006-04-25 16:09:10 -0600 (Tue, 25 Apr 2006) $
    since:
       1.1



  • Constructor Summary
    protected  AbstractGenerator(DDLGenConfiguration configuration)
         Constructor for AbstractGenerator.

    Method Summary
    final protected  voidcreateForeignKeyDDL(Table table, DDLWriter writer)
         Generate DDL for foreign key.
    final public  voidcreateIndex(Table table, DDLWriter writer)
         Generate DDL for indices of given table.
    final public  voidcreateSchema()
         Extracting informations from mapping to schema, this is done by 3 steps.
    final public  voidgenerateCreate(DDLWriter writer)
         Generate DDL for create statementof table.
    final public  voidgenerateDDL(OutputStream output)
        
    final public  voidgenerateDrop(DDLWriter writer)
         Generate DDL for drop statement of table.
    final public  voidgenerateForeignKey(DDLWriter writer)
         Generate DDL for foreign keys.
    abstract public  voidgenerateHeader(DDLWriter writer)
         Generate header comment.
    final public  voidgenerateIndex(DDLWriter writer)
         Generate DDL for indices.
    final public  voidgenerateKeyGenerator(DDLWriter writer)
         Generate DDL for key generators (sequence/trigger).
    final public  voidgeneratePrimaryKey(DDLWriter writer)
         Generate DDL for primany keys.
    final public  DDLGenConfigurationgetConfiguration()
         Get configuration of generator.
    final public  MappinggetMapping()
         Get mapping document.
    final public  MappingHelpergetMappingHelper()
         Get mapping helper.
    final public  SchemagetSchema()
         Get schema.
    final public  SchemaFactorygetSchemaFactory()
         Get schema factory.
    final public  TypeMappergetTypeMapper()
         Get type mapper.
    final public  voidsetKeyGenRegistry(KeyGeneratorRegistry keyGenRegistry)
         Set key generator registry.
    final public  voidsetMapping(Mapping mapping)
         Set mapping document.
    final protected  voidsetMappingHelper(MappingHelper mappingHelper)
         Set mapping helper.
    final protected  voidsetSchemaFactory(SchemaFactory schemaFactory)
         Set schema factory.
    final public  voidsetTypeMapper(TypeMapper typeMapper)
         Set type mapper.


    Constructor Detail
    AbstractGenerator
    protected AbstractGenerator(DDLGenConfiguration configuration)(Code)
    Constructor for AbstractGenerator.
    Parameters:
      configuration - Configuration to use by the generator.




    Method Detail
    createForeignKeyDDL
    final protected void createForeignKeyDDL(Table table, DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for foreign key.
    Parameters:
      table - Table to generate DDL of foreign key for.
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    createIndex
    final public void createIndex(Table table, DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for indices of given table.
    Parameters:
      table - Table to generate DDL of indices for.
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    createSchema
    final public void createSchema() throws GeneratorException(Code)
    Extracting informations from mapping to schema, this is done by 3 steps.
    • Create key generators
    • Create tables
    • Create additional tables for many-many relations

    throws:
      GeneratorException - If failed to create schema objects.



    generateCreate
    final public void generateCreate(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for create statementof table.
     CREATE TABLE prod (
     id INTEGER NOT NULL,
     name CHAR(16)
     );
     CREATE TABLE prod_detail (
     id INTEGER NOT NULL,
     prod_id CHAR(16)
     );
     

    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    generateDDL
    final public void generateDDL(OutputStream output) throws GeneratorException(Code)



    generateDrop
    final public void generateDrop(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for drop statement of table.
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    generateForeignKey
    final public void generateForeignKey(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for foreign keys.
     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;
     

    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    generateHeader
    abstract public void generateHeader(DDLWriter writer)(Code)
    Generate header comment.
    Parameters:
      writer - DDLWriter to write schema objects to.



    generateIndex
    final public void generateIndex(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for indices.
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    generateKeyGenerator
    final public void generateKeyGenerator(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for key generators (sequence/trigger).
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    generatePrimaryKey
    final public void generatePrimaryKey(DDLWriter writer) throws GeneratorException(Code)
    Generate DDL for primany keys.
    Parameters:
      writer - DDLWriter to write schema objects to.
    throws:
      GeneratorException - If failed to generate DDL.



    getConfiguration
    final public DDLGenConfiguration getConfiguration()(Code)
    Get configuration of generator. Configuration of generator.



    getMapping
    final public Mapping getMapping()(Code)
    Get mapping document. Mapping document.



    getMappingHelper
    final public MappingHelper getMappingHelper()(Code)
    Get mapping helper. Mapping helper.



    getSchema
    final public Schema getSchema()(Code)
    Get schema. Schema



    getSchemaFactory
    final public SchemaFactory getSchemaFactory()(Code)
    Get schema factory. Schema factory.



    getTypeMapper
    final public TypeMapper getTypeMapper()(Code)
    Get type mapper. Type mapper.



    setKeyGenRegistry
    final public void setKeyGenRegistry(KeyGeneratorRegistry keyGenRegistry)(Code)
    Set key generator registry.
    Parameters:
      keyGenRegistry - Key generator registry.



    setMapping
    final public void setMapping(Mapping mapping)(Code)
    Set mapping document.
    Parameters:
      mapping - Mapping document.



    setMappingHelper
    final protected void setMappingHelper(MappingHelper mappingHelper)(Code)
    Set mapping helper.
    Parameters:
      mappingHelper - Mapping helper.



    setSchemaFactory
    final protected void setSchemaFactory(SchemaFactory schemaFactory)(Code)
    Set schema factory.
    Parameters:
      schemaFactory - Schema factory.



    setTypeMapper
    final public void setTypeMapper(TypeMapper typeMapper)(Code)
    Set type mapper.
    Parameters:
      typeMapper - Type mapper.



    Methods inherited from java.lang.Object
    native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
    public boolean equals(Object obj)(Code)(Java Doc)
    protected void finalize() throws Throwable(Code)(Java Doc)
    final native public Class getClass()(Code)(Java Doc)
    native public int hashCode()(Code)(Java Doc)
    final native public void notify()(Code)(Java Doc)
    final native public void notifyAll()(Code)(Java Doc)
    public String toString()(Code)(Java Doc)
    final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
    final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
    final public void wait() throws InterruptedException(Code)(Java Doc)

    www.java2java.com | Contact Us
    Copyright 2009 - 12 Demo Source and Support. All rights reserved.
    All other trademarks are property of their respective owners.