org.ephman.abra.tools
Class GenericSchemaGenerator

java.lang.Object
  extended byorg.ephman.abra.tools.GenericSchemaGenerator
Direct Known Subclasses:
SchemaGenerator

public abstract class GenericSchemaGenerator
extends java.lang.Object

given a base output directory generate a schema file generic !! copy a db specific generator from sub directory

Version:
0.0.2
Author:
Paul M. Bethe

Field Summary
protected  java.io.StringWriter cleanup
           
protected  java.lang.String cleanupConstraints
           
protected  java.io.FileWriter cleanupFile
           
protected  java.util.HashSet constraintList
           
protected  java.lang.String constraints
           
protected  java.lang.String END_DATE
           
protected  java.lang.String END_DATE_TYPE
           
protected  char fileSeperator
           
protected  java.lang.String outdir
           
protected  java.io.FileWriter schemaFile
           
protected  java.lang.String VERSION_NUMBER
           
 
Constructor Summary
GenericSchemaGenerator(java.lang.String outFileName)
           
 
Method Summary
protected  void addConstraint(JClass currentClass, java.lang.String consName, JConstraint jcons, java.lang.String sOut)
           
protected  void addIndex(JClass currentClass, java.lang.String sOut, JIndex index)
           
protected  void cleanUpConstraint(JClass currentClass, java.lang.String consName)
           
protected  void cleanUpIndex(JClass currentClass, JIndex index)
           
 void close()
          generic close if you want to write constraints -- override (see Oracle version)
protected  java.lang.String convertFields(java.lang.String fields, JClass currentClass)
           
 void generate(JClass currentClass)
           
protected  java.lang.String getDbSpecificOptions(JClass currentClass, JField jf, java.lang.String primaryKey)
          Return any required DB specific field options.
protected  java.lang.String getDropSeqStmt(JClass currentClass)
           
protected  java.lang.String getSqlOutType(JClass currentClass, JField jf)
           
 void inlineField(JClass currentClass, JCompositeField jcf, java.util.HashSet fieldNames)
           
protected  java.lang.String jToSql(java.lang.String javaName, JClass currentClass)
           
protected  java.lang.String makeConstraintName(java.lang.String consName)
           
(package private)  boolean needsSequence()
           
protected  void writeCheckConstraint(JClass currentClass, java.lang.String cons_name, JField jf)
           
protected  void writeFieldSchema(JClass currentClass, JField jf, java.lang.String primaryKey, boolean is_first)
           
protected  void writeForeignKey(JClass currentClass, java.lang.String cons_name, JField jf, JClass foreignClass)
           
protected  void writePrimaryKey(JClass currentClass, java.lang.String sqlName)
          generic primary in table creation..
protected  void writeUniqueConstraint(JClass currentClass, JField jf)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

END_DATE

protected java.lang.String END_DATE

END_DATE_TYPE

protected java.lang.String END_DATE_TYPE

VERSION_NUMBER

protected java.lang.String VERSION_NUMBER

outdir

protected java.lang.String outdir

fileSeperator

protected char fileSeperator

schemaFile

protected java.io.FileWriter schemaFile

cleanupFile

protected java.io.FileWriter cleanupFile

constraintList

protected java.util.HashSet constraintList

cleanup

protected java.io.StringWriter cleanup

constraints

protected java.lang.String constraints

cleanupConstraints

protected java.lang.String cleanupConstraints
Constructor Detail

GenericSchemaGenerator

public GenericSchemaGenerator(java.lang.String outFileName)
                       throws java.io.IOException,
                              SchemaException
Method Detail

close

public void close()
           throws java.io.IOException,
                  SchemaException
generic close if you want to write constraints -- override (see Oracle version)

Throws:
java.io.IOException
SchemaException

generate

public void generate(JClass currentClass)
              throws java.io.IOException,
                     SchemaException
Throws:
java.io.IOException
SchemaException

addIndex

protected void addIndex(JClass currentClass,
                        java.lang.String sOut,
                        JIndex index)

cleanUpIndex

protected void cleanUpIndex(JClass currentClass,
                            JIndex index)

addConstraint

protected void addConstraint(JClass currentClass,
                             java.lang.String consName,
                             JConstraint jcons,
                             java.lang.String sOut)

cleanUpConstraint

protected void cleanUpConstraint(JClass currentClass,
                                 java.lang.String consName)

needsSequence

boolean needsSequence()

getDropSeqStmt

protected java.lang.String getDropSeqStmt(JClass currentClass)

convertFields

protected java.lang.String convertFields(java.lang.String fields,
                                         JClass currentClass)
                                  throws SchemaException,
                                         java.io.IOException
Throws:
SchemaException
java.io.IOException

jToSql

protected java.lang.String jToSql(java.lang.String javaName,
                                  JClass currentClass)
                           throws java.io.IOException,
                                  SchemaException
Throws:
java.io.IOException
SchemaException

writeUniqueConstraint

protected void writeUniqueConstraint(JClass currentClass,
                                     JField jf)
                              throws java.io.IOException,
                                     SchemaException
Throws:
java.io.IOException
SchemaException

makeConstraintName

protected java.lang.String makeConstraintName(java.lang.String consName)
                                       throws SchemaException
Throws:
SchemaException

writePrimaryKey

protected void writePrimaryKey(JClass currentClass,
                               java.lang.String sqlName)
                        throws java.io.IOException
generic primary in table creation..

Throws:
java.io.IOException

inlineField

public void inlineField(JClass currentClass,
                        JCompositeField jcf,
                        java.util.HashSet fieldNames)
                 throws java.io.IOException,
                        SchemaException
Throws:
java.io.IOException
SchemaException

getSqlOutType

protected java.lang.String getSqlOutType(JClass currentClass,
                                         JField jf)
                                  throws SchemaException
Throws:
SchemaException

writeFieldSchema

protected void writeFieldSchema(JClass currentClass,
                                JField jf,
                                java.lang.String primaryKey,
                                boolean is_first)
                         throws java.io.IOException,
                                SchemaException
Throws:
java.io.IOException
SchemaException

getDbSpecificOptions

protected java.lang.String getDbSpecificOptions(JClass currentClass,
                                                JField jf,
                                                java.lang.String primaryKey)
                                         throws SchemaException
Return any required DB specific field options. Override as needed.

Throws:
SchemaException

writeCheckConstraint

protected void writeCheckConstraint(JClass currentClass,
                                    java.lang.String cons_name,
                                    JField jf)
                             throws java.io.IOException
Throws:
java.io.IOException

writeForeignKey

protected void writeForeignKey(JClass currentClass,
                               java.lang.String cons_name,
                               JField jf,
                               JClass foreignClass)
                        throws java.io.IOException
Throws:
java.io.IOException