Author: tomdz
Date: Wed Nov  9 11:41:33 2005
New Revision: 332124

URL: http://svn.apache.org/viewcvs?rev=332124&view=rev
Log:
Added read-support for the Torque/Turbine extensions BOOLEANINT/BOOLEANCHAR

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java
URL: 
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java?rev=332124&r1=332123&r2=332124&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/Column.java Wed Nov  9 
11:41:33 2005
@@ -233,8 +233,10 @@
         else
         {
             _typeCode = typeCode.intValue();
+            // we get the corresponding string value from the TypeMap in order
+            // to detect extension types which we don't want in the model
+            _type = TypeMap.getJdbcTypeName(_typeCode);
         }
-        _type = type;
     }
 
     /**

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java
URL: 
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java?rev=332124&r1=332123&r2=332124&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/model/TypeMap.java Wed Nov  
9 11:41:33 2005
@@ -144,6 +144,10 @@
             registerJdbcType(Jdbc3Utils.determineBooleanTypeCode(),  BOOLEAN,  
true,  false, false, false);
             registerJdbcType(Jdbc3Utils.determineDatalinkTypeCode(), DATALINK, 
false, false, false, true);
         }
+
+        // Torque/Turbine extensions which we only support when reading from 
an XML schema
+        _typeNameToTypeCode.put("BOOLEANINT",  new Integer(Types.TINYINT));
+        _typeNameToTypeCode.put("BOOLEANCHAR", new Integer(Types.CHAR));
     }
 
     /**

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java
URL: 
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java?rev=332124&r1=332123&r2=332124&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java 
(original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java Wed 
Nov  9 11:41:33 2005
@@ -1261,6 +1261,78 @@
         System.out.println("Table : " + Arrays.asList(database.getTables()));

         assertEquals(0, database.getTableCount());

     }

+

+    /**

+     * Tests the Torque/Turbine extensions BOOLEANINT & BOOLEANCHAR.

+     */

+    public void testTurbineExtension() throws Exception

+    {

+        Database model = readModel(

+            "<database name='test'>\n" +

+            "  <table name='SomeTable'>\n" +

+            "    <column name='intField'\n" +

+            "            type='BOOLEANINT'/>\n" +

+            "    <column name='charField'\n" +

+            "            type='BOOLEANCHAR'/>\n" +

+            "  </table>\n" +

+            "</database>");

+

+        assertEquals("test",

+                     model.getName());

+        assertEquals(1,

+                     model.getTableCount());

+        

+        Table table = model.getTable(0);

+

+        assertEquals("SomeTable",

+                     table.getName());

+        assertNull(table.getDescription());

+        assertEquals(0, table.getAutoIncrementColumns().length);

+        assertEquals(2,

+                     table.getColumnCount());

+        assertEquals(0,

+                     table.getForeignKeyCount());

+        assertEquals(0,

+                     table.getIndexCount());

+

+        Column column = table.getColumn(0);

+

+        assertEquals("intField",

+                     column.getName());

+        assertEquals("TINYINT",

+                     column.getType());

+        assertEquals(Types.TINYINT,

+                     column.getTypeCode());

+        assertFalse(column.isPrimaryKey());

+        assertFalse(column.isRequired());

+        assertFalse(column.isAutoIncrement());

+        assertNull(column.getDefaultValue());

+        assertNull(column.getDescription());

+

+        column = table.getColumn(1);

+

+        assertEquals("charField",

+                     column.getName());

+        assertEquals("CHAR",

+                     column.getType());

+        assertEquals(Types.CHAR,

+                     column.getTypeCode());

+        assertFalse(column.isPrimaryKey());

+        assertFalse(column.isRequired());

+        assertFalse(column.isAutoIncrement());

+        assertNull(column.getDefaultValue());

+        assertNull(column.getDescription());

+

+        assertEquals(

+            "  <database name=\"test\">\n" +

+            "    <table name=\"SomeTable\">\n" +

+            "      <column name=\"intField\" primaryKey=\"false\" 
required=\"false\" type=\"TINYINT\" autoIncrement=\"false\"/>\n" +

+            "      <column name=\"charField\" primaryKey=\"false\" 
required=\"false\" type=\"CHAR\" autoIncrement=\"false\"/>\n" +

+            "    </table>\n" +

+            "  </database>\n",

+            writeModel(model));

+    }

+

     // TODO: Tests that include:

     // * foreign key references undefined table

     // * foreign key references undefined local column



Reply via email to