You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2006/03/04 16:22:08 UTC

svn commit: r383134 - in /db/ddlutils/trunk/src: java/org/apache/ddlutils/ java/org/apache/ddlutils/model/ java/org/apache/ddlutils/platform/ java/org/apache/ddlutils/platform/axion/ java/org/apache/ddlutils/task/ test/org/apache/ddlutils/ test/org/apa...

Author: tomdz
Date: Sat Mar  4 07:22:07 2006
New Revision: 383134

URL: http://svn.apache.org/viewcvs?rev=383134&view=rev
Log:
Introduced a platform property that defines whether SQL comments shall be generated
Fixed javadoc errors

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformInfo.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Reference.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaToDatabaseCommand.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java Sat Mar  4 07:22:07 2006
@@ -110,6 +110,8 @@
      */
     public void setPassword(String password);
 
+    // runtime properties
+
     /**
      * Determines whether delimited identifiers are used or normal SQL92 identifiers
      * (which may only contain alphanumerical characters and the underscore, must start
@@ -121,12 +123,28 @@
     public boolean isDelimitedIdentifierModeOn();
 
     /**
-     * Determines whether delimited identifiers are used or normal SQL92 identifiers.
+     * Specifies whether delimited identifiers are used or normal SQL92 identifiers.
      *
      * @param delimitedIdentifierModeOn <code>true</code> if delimited identifiers shall be used
      */
     public void setDelimitedIdentifierModeOn(boolean delimitedIdentifierModeOn);
 
+    /**
+     * Determines whether SQL comments are generated. 
+     * 
+     * @return <code>true</code> if SQL comments shall be generated
+     */
+    public boolean isSqlCommentsOn();
+
+    /**
+     * Specifies whether SQL comments shall be generated.
+     * 
+     * @param sqlCommentsOn <code>true</code> if SQL comments shall be generated
+     */
+    public void setSqlCommentsOn(boolean sqlCommentsOn);
+
+    // functionality
+    
     /**
      * Returns a (new) JDBC connection from the data source.
      * 

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformInfo.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformInfo.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformInfo.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformInfo.java Sat Mar  4 07:22:07 2006
@@ -81,7 +81,7 @@
     // other ddl properties
 
     /** Whether comments are supported. */
-    private boolean _commentsSupported = true;
+    private boolean _sqlCommentsSupported = true;
 
     /** Whether delimited identifiers are supported or not. */
     private boolean _delimitedIdentifiersSupported = true;
@@ -424,23 +424,23 @@
     // other ddl properties
 
     /**
-     * Determines whether the database supports comments.
+     * Determines whether the database supports SQL comments.
      *
      * @return <code>true</code> if comments are supported
      */
-    public boolean isCommentsSupported()
+    public boolean isSqlCommentsSupported()
     {
-        return _commentsSupported;
+        return _sqlCommentsSupported;
     }
 
     /**
-     * Specifies whether comments are supported by the database.
+     * Specifies whether SQL comments are supported by the database.
      * 
      * @param commentsSupported <code>true</code> if comments are supported
      */
-    public void setCommentsSupported(boolean commentsSupported)
+    public void setSqlCommentsSupported(boolean commentsSupported)
     {
-        _commentsSupported = commentsSupported;
+        _sqlCommentsSupported = commentsSupported;
     }
 
     /**

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/ForeignKey.java Sat Mar  4 07:22:07 2006
@@ -259,6 +259,7 @@
      * Compares this foreign key to the given one while ignoring the case of identifiers.
      * 
      * @param otherFk The other foreign key
+     * @return <code>true</code> if this foreign key is equal (ignoring case) to the given one
      */
     public boolean equalsIgnoreCase(ForeignKey otherFk)
     {

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Reference.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Reference.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Reference.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Reference.java Sat Mar  4 07:22:07 2006
@@ -211,6 +211,7 @@
      * Compares this reference to the given one while ignoring the case of identifiers.
      * 
      * @param otherRef The other reference
+     * @return <code>true</code> if this reference is equal (ignoring case) to the given one
      */
     public boolean equalsIgnoreCase(Reference otherRef)
     {

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java Sat Mar  4 07:22:07 2006
@@ -44,6 +44,7 @@
 import org.apache.commons.collections.Predicate;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.ddlutils.DdlUtilsException;
 import org.apache.ddlutils.DynaSqlException;
 import org.apache.ddlutils.Platform;
 import org.apache.ddlutils.PlatformInfo;
@@ -74,6 +75,8 @@
     private SqlBuilder _builder;
     /** The model reader for this platform. */
     private JdbcModelReader _modelReader;
+    /** Whether SQL comments are generated or not. */
+    private boolean _sqlCommentsOn = true;
     /** Whether delimited identifiers are used or not. */
     private boolean _delimitedIdentifierModeOn = false;
 
@@ -128,6 +131,26 @@
     /**
      * {@inheritDoc}
      */
+    public boolean isSqlCommentsOn()
+    {
+        return _sqlCommentsOn;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public void setSqlCommentsOn(boolean sqlCommentsOn)
+    {
+        if (!getPlatformInfo().isSqlCommentsSupported() && sqlCommentsOn)
+        {
+            throw new DdlUtilsException("Platform " + getName() + " does not support SQL comments");
+        }
+        _sqlCommentsOn = sqlCommentsOn;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
     public boolean isDelimitedIdentifierModeOn()
     {
         return _delimitedIdentifierModeOn;
@@ -138,6 +161,10 @@
      */
     public void setDelimitedIdentifierModeOn(boolean delimitedIdentifierModeOn)
     {
+        if (!getPlatformInfo().isDelimitedIdentifiersSupported() && delimitedIdentifierModeOn)
+        {
+            throw new DdlUtilsException("Platform " + getName() + " does not support delimited identifier");
+        }
         _delimitedIdentifierModeOn = delimitedIdentifierModeOn;
     }
 

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/SqlBuilder.java Sat Mar  4 07:22:07 2006
@@ -1897,7 +1897,7 @@
      */
     protected void printComment(String text) throws IOException
     {
-        if (getPlatformInfo().isCommentsSupported())
+        if (getPlatform().isSqlCommentsOn())
         {
             print(getPlatformInfo().getCommentPrefix());
             // Some databases insist on a space after the prefix

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/axion/AxionPlatform.java Sat Mar  4 07:22:07 2006
@@ -44,7 +44,7 @@
         PlatformInfo info = getPlatformInfo();
 
         info.setDelimitedIdentifiersSupported(false);
-        info.setCommentsSupported(false);
+        info.setSqlCommentsSupported(false);
         info.setNullAsDefaultValueRequired(false);
         info.setPrimaryKeyEmbedded(true);
         info.setForeignKeysEmbedded(false);

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java Sat Mar  4 07:22:07 2006
@@ -116,6 +116,11 @@
         {
             FileWriter writer = new FileWriter(_outputFile);
 
+            if (platform.getPlatformInfo().isSqlCommentsSupported())
+            {
+                // we're generating SQL comments if possible
+                platform.setSqlCommentsOn(true);
+            }
             platform.getSqlBuilder().setWriter(writer);
             if (isAlterDatabase() && (getDataSource() != null))
             {

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaToDatabaseCommand.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaToDatabaseCommand.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaToDatabaseCommand.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaToDatabaseCommand.java Sat Mar  4 07:22:07 2006
@@ -90,8 +90,8 @@
         boolean            isCaseSensitive = platform.isDelimitedIdentifierModeOn();
         CreationParameters params          = getFilteredParameters(model, platform.getName(), isCaseSensitive);
 
-        // we're disabling the comment generation as it is not interesting in this case anyway
-        platform.getPlatformInfo().setCommentsSupported(false);
+        // we're disabling the comment generation because we're writing directly to the database
+        platform.setSqlCommentsOn(false);
         try
         {
             if (isAlterDatabase())

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java Sat Mar  4 07:22:07 2006
@@ -236,7 +236,7 @@
         {
             _model = model;
 
-            getPlatform().getPlatformInfo().setCommentsSupported(false);
+            getPlatform().setSqlCommentsOn(false);
             getPlatform().createTables(_model, false, false);
         }
         catch (Exception ex)
@@ -256,7 +256,7 @@
         {
             _model = model;
 
-            getPlatform().getPlatformInfo().setCommentsSupported(false);
+            getPlatform().setSqlCommentsOn(false);
             getPlatform().alterTables(_model, true, true, false);
         }
         catch (Exception ex)

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/TestPlatformBase.java Sat Mar  4 07:22:07 2006
@@ -226,7 +226,7 @@
         Database testDb = parseDatabaseFromString(schema);
 
         // we're turning the comment creation off to make testing easier
-        getPlatformInfo().setCommentsSupported(false);
+        getPlatform().setSqlCommentsOn(false);
         getPlatform().getSqlBuilder().createTables(testDb);
         return getBuilderOutput();
     }

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySql50Platform.java Sat Mar  4 07:22:07 2006
@@ -89,7 +89,7 @@
         testDb.findTable("constraints").findColumn("COL_AUTO_INCR").setAutoIncrement(false);
         testDb.findTable("constraints").findColumn("COL_PK_AUTO_INCR").setAutoIncrement(false);
 
-        getPlatformInfo().setCommentsSupported(false);
+        getPlatform().setSqlCommentsOn(false);
         getPlatform().getSqlBuilder().createTables(testDb, true);
 
         assertEqualsIgnoringWhitespaces(
@@ -164,7 +164,7 @@
                             "ENGINE",
                             "INNODB");
 
-        getPlatformInfo().setCommentsSupported(false);
+        getPlatform().setSqlCommentsOn(false);
         getPlatform().getSqlBuilder().createTables(testDb, params, true);
 
         assertEqualsIgnoringWhitespaces(

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java?rev=383134&r1=383133&r2=383134&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/platform/TestMySqlPlatform.java Sat Mar  4 07:22:07 2006
@@ -100,7 +100,7 @@
         testDb.findTable("constraints").findColumn("COL_AUTO_INCR").setAutoIncrement(false);
         testDb.findTable("constraints").findColumn("COL_PK_AUTO_INCR").setAutoIncrement(false);
 
-        getPlatformInfo().setCommentsSupported(false);
+        getPlatform().setSqlCommentsOn(false);
         getPlatform().getSqlBuilder().createTables(testDb, true);
 
         assertEqualsIgnoringWhitespaces(
@@ -177,7 +177,7 @@
                             "ENGINE",
                             "INNODB");
 
-        getPlatformInfo().setCommentsSupported(false);
+        getPlatform().setSqlCommentsOn(false);
         getPlatform().getSqlBuilder().createTables(testDb, params, true);
 
         assertEqualsIgnoringWhitespaces(