You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ke...@apache.org on 2011/04/22 21:42:29 UTC

svn commit: r1096005 - in /incubator/isis/trunk/runtimes/dflt/objectstores/sql: impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/ impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/ impl/src/main/java/org/apache/isi...

Author: kevin
Date: Fri Apr 22 19:42:29 2011
New Revision: 1096005

URL: http://svn.apache.org/viewvc?rev=1096005&view=rev
Log:
Created binary numeric type value mapper, to replace string conversions. 

Added:
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java   (with props)
Modified:
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/Results.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcConnector.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcResults.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/installer/JdbcFieldMappingFactoryInstaller.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommon.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SimpleClassTwo.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SqlDataClass.java
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/mysql.properties
    incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/postgresql.properties

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/Results.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/Results.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/Results.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/Results.java Fri Apr 22 19:42:29 2011
@@ -17,16 +17,12 @@
  *  under the License.
  */
 
-
 package org.apache.isis.runtimes.dflt.objectstores.sql;
 
 import java.sql.Time;
 import java.util.Calendar;
 import java.util.Date;
 
-
-
-
 public interface Results {
 
     void close();
@@ -39,6 +35,12 @@ public interface Results {
 
     String getString(String columnName);
 
+    Float getFloat(String columnName);
+
+    Object getShort(String columnName);
+
+    Object getBoolean(String columnName);
+
     boolean next();
 
     Date getJavaDateOnly(String dateColumn);
@@ -53,4 +55,6 @@ public interface Results {
 
     Object getObject(String column);
 
+    Object getAsType(String columnName, Class<?> clazz);
+
 }

Added: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java?rev=1096005&view=auto
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java (added)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java Fri Apr 22 19:42:29 2011
@@ -0,0 +1,119 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.runtimes.dflt.objectstores.sql.jdbc;
+
+import org.apache.isis.core.commons.exceptions.IsisApplicationException;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.runtimes.dflt.objectstores.sql.Results;
+import org.apache.isis.runtimes.dflt.objectstores.sql.mapping.FieldMapping;
+import org.apache.isis.runtimes.dflt.objectstores.sql.mapping.FieldMappingFactory;
+import org.apache.isis.runtimes.dflt.runtime.context.IsisContext;
+
+/**
+ * 
+ * 
+ * @version $Rev$ $Date$
+ */
+public class JdbcBinaryValueMapper extends AbstractJdbcFieldMapping {
+
+    public static class Factory implements FieldMappingFactory {
+        private final String type;
+
+        public Factory(final String type) {
+            this.type = type;
+        }
+
+        @Override
+        public FieldMapping createFieldMapping(final ObjectAssociation field) {
+            return new JdbcBinaryValueMapper(field, type);
+        }
+    }
+
+    private final String type;
+
+    public JdbcBinaryValueMapper(ObjectAssociation field, String type) {
+        super(field);
+        this.type = type;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.AbstractJdbcFieldMapping#columnType()
+     */
+    @Override
+    protected String columnType() {
+        return type;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.AbstractJdbcFieldMapping#preparedStatementObject(org.apache
+     * .isis.core.metamodel.adapter.ObjectAdapter)
+     */
+    @Override
+    protected Object preparedStatementObject(ObjectAdapter value) {
+        Object o = value.getObject();
+        return o;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.AbstractJdbcFieldMapping#setFromDBColumn(org.apache.isis.
+     * runtimes.dflt.objectstores.sql.Results, java.lang.String,
+     * org.apache.isis.core.metamodel.spec.feature.ObjectAssociation)
+     */
+    @Override
+    protected ObjectAdapter setFromDBColumn(Results results, String columnName, ObjectAssociation field) {
+        ObjectAdapter restoredValue;
+
+        Class<?> correspondingClass = field.getSpecification().getCorrespondingClass();
+        Object resultObject = results.getObject(columnName);
+
+        if (resultObject.getClass() != correspondingClass) {
+            if (checkIfIsClass(correspondingClass, Integer.class, int.class)) {
+                resultObject = results.getInt(columnName);
+            } else if (checkIfIsClass(correspondingClass, Double.class, double.class)) {
+                resultObject = results.getDouble(columnName);
+            } else if (checkIfIsClass(correspondingClass, Float.class, float.class)) {
+                resultObject = results.getFloat(columnName);
+            } else if (checkIfIsClass(correspondingClass, short.class, Short.class)) {
+                resultObject = results.getShort(columnName);
+            } else if (checkIfIsClass(correspondingClass, long.class, Long.class)) {
+                resultObject = results.getLong(columnName);
+            } else if (checkIfIsClass(correspondingClass, boolean.class, Boolean.class)) {
+                resultObject = results.getBoolean(columnName);
+            } else {
+                throw new IsisApplicationException("Unhandled type: " + correspondingClass.getCanonicalName());
+            }
+        }
+
+        restoredValue = IsisContext.getPersistenceSession().getAdapterManager().adapterFor(resultObject);
+
+        return restoredValue;
+
+    }
+
+    private boolean checkIfIsClass(Class expected, Class couldBe1, Class couldBe2) {
+        return (expected == couldBe1 || expected == couldBe2);
+    }
+}
\ No newline at end of file

Propchange: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcBinaryValueMapper.java
------------------------------------------------------------------------------
    svn:executable = *

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcConnector.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcConnector.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcConnector.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcConnector.java Fri Apr 22 19:42:29 2011
@@ -184,12 +184,12 @@ public class JdbcConnector extends Abstr
         TYPE_DATETIME = dataTypes.getString(baseName + "datetime", "DATETIME");
         TYPE_DATE = dataTypes.getString(baseName + "date", "DATE");
         TYPE_TIME = dataTypes.getString(baseName + "time", "TIME");
-        TYPE_DOUBLE = dataTypes.getString(baseName + "double", "FLOAT");
+        TYPE_DOUBLE = dataTypes.getString(baseName + "double", "DOUBLE");
         TYPE_FLOAT = dataTypes.getString(baseName + "float", "FLOAT");
         TYPE_SHORT = dataTypes.getString(baseName + "short", "INT");
-        TYPE_LONG = dataTypes.getString(baseName + "long", "INT");
+        TYPE_LONG = dataTypes.getString(baseName + "long", "BIGINT");
         TYPE_INT = dataTypes.getString(baseName + "int", "INT");
-        TYPE_BOOLEAN = dataTypes.getString(baseName + "boolean", "CHAR(1)");
+        TYPE_BOOLEAN = dataTypes.getString(baseName + "boolean", "BOOLEAN"); // CHAR(1)
         TYPE_PK = dataTypes.getString(baseName + "primarykey", "INTEGER");
         TYPE_STRING = dataTypes.getString(baseName + "string", "VARCHAR(65)");
         TYPE_PASSWORD = dataTypes.getString(baseName + "password", "VARCHAR(12)");

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcResults.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcResults.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcResults.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcResults.java Fri Apr 22 19:42:29 2011
@@ -23,6 +23,7 @@ import java.sql.CallableStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Calendar;
+import java.util.HashMap;
 
 import org.joda.time.DateTime;
 import org.joda.time.DateTimeZone;
@@ -176,4 +177,42 @@ public class JdbcResults implements Resu
             throw new SqlObjectStoreException(e);
         }
     }
+
+    @Override
+    public Object getAsType(String columnName, Class<?> clazz) {
+        try {
+            HashMap<String, Class<?>> map = new HashMap<String, Class<?>>();
+            map.put("FLOAT", float.class);
+            return set.getObject(columnName, map);
+        } catch (SQLException e) {
+            throw new SqlObjectStoreException(e);
+        }
+    }
+
+    @Override
+    public Float getFloat(String columnName) {
+        try {
+            return set.getFloat(columnName);
+        } catch (SQLException e) {
+            throw new SqlObjectStoreException(e);
+        }
+    }
+
+    @Override
+    public Short getShort(String columnName) {
+        try {
+            return set.getShort(columnName);
+        } catch (SQLException e) {
+            throw new SqlObjectStoreException(e);
+        }
+    }
+
+    @Override
+    public Boolean getBoolean(String columnName) {
+        try {
+            return set.getBoolean(columnName);
+        } catch (SQLException e) {
+            throw new SqlObjectStoreException(e);
+        }
+    }
 }

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/installer/JdbcFieldMappingFactoryInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/installer/JdbcFieldMappingFactoryInstaller.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/installer/JdbcFieldMappingFactoryInstaller.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/installer/JdbcFieldMappingFactoryInstaller.java Fri Apr 22 19:42:29 2011
@@ -29,6 +29,7 @@ import org.apache.isis.applib.value.Time
 import org.apache.isis.applib.value.TimeStamp;
 import org.apache.isis.runtimes.dflt.objectstores.sql.FieldMappingFactoryInstaller;
 import org.apache.isis.runtimes.dflt.objectstores.sql.FieldMappingLookup;
+import org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.JdbcBinaryValueMapper;
 import org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.JdbcColorValueMapper;
 import org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.JdbcConnector;
 import org.apache.isis.runtimes.dflt.objectstores.sql.jdbc.JdbcDateMapper;
@@ -44,12 +45,12 @@ public class JdbcFieldMappingFactoryInst
 
     @Override
     public void load(FieldMappingLookup lookup) {
-        lookup.addFieldMappingFactory(boolean.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_BOOLEAN()));
-        lookup.addFieldMappingFactory(short.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_SHORT()));
-        lookup.addFieldMappingFactory(int.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_INT()));
-        lookup.addFieldMappingFactory(long.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_LONG()));
-        lookup.addFieldMappingFactory(float.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_FLOAT()));
-        lookup.addFieldMappingFactory(double.class, new JdbcGeneralValueMapper.Factory(JdbcConnector.TYPE_DOUBLE()));
+        lookup.addFieldMappingFactory(boolean.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_BOOLEAN()));
+        lookup.addFieldMappingFactory(short.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_SHORT()));
+        lookup.addFieldMappingFactory(int.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_INT()));
+        lookup.addFieldMappingFactory(long.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_LONG()));
+        lookup.addFieldMappingFactory(Float.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_FLOAT()));
+        lookup.addFieldMappingFactory(double.class, new JdbcBinaryValueMapper.Factory(JdbcConnector.TYPE_DOUBLE()));
         lookup.addFieldMappingFactory(char.class, new JdbcGeneralValueMapper.Factory("CHAR(2)"));
 
         lookup.addFieldMappingFactory(Money.class, new JdbcMoneyValueMapper.Factory("FLOAT", "VARCHAR(3)"));

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommon.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommon.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommon.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommon.java Fri Apr 22 19:42:29 2011
@@ -106,6 +106,13 @@ public abstract class SqlIntegrationTest
     private static final Percentage percentage = new Percentage(42);
     private static final Money money = new Money(99.99, "ZAR");
 
+    // Standard values
+    private static final int intValue = Integer.MIN_VALUE;
+    private static final short shortValue = Short.MAX_VALUE;
+    private static final long longValue = Long.MAX_VALUE;
+    private static final double doubleValue = Double.MAX_VALUE;
+    private static final float floatValue = Float.MIN_VALUE;
+
     // Collection mapper tests
     private static final List<String> stringList1 = Arrays.asList("Baking", "Bakery", "Canned", "Dairy");
     private static final List<String> stringList2 = Arrays.asList("Fridge", "Deli", "Fresh Produce", "Frozen",
@@ -226,7 +233,7 @@ public abstract class SqlIntegrationTest
         sqlDataClass.setString("Test String");
         sqlDataClass.setDate(applibDate);
         sqlDataClass.setSqlDate(sqlDate);
-        sqlDataClass.setMoney(money); // TODO: Money is broken
+        sqlDataClass.setMoney(money);
         sqlDataClass.setDateTime(dateTime);
         sqlDataClass.setTimeStamp(timeStamp);
         sqlDataClass.setTime(time);
@@ -235,9 +242,18 @@ public abstract class SqlIntegrationTest
         sqlDataClass.setPassword(password);
         sqlDataClass.setPercentage(percentage);
 
+        // standard value types
+        sqlDataClass.setIntValue(intValue);
+        sqlDataClass.setShortValue(shortValue);
+        sqlDataClass.setLongValue(longValue);
+        sqlDataClass.setDoubleValue(doubleValue);
+        sqlDataClass.setFloatValue(floatValue);
+
         // Setup SimpleClassTwo
         simpleClassTwoA = factory.newSimpleClassTwo();
         simpleClassTwoA.setText("A");
+        simpleClassTwoA.setIntValue(999);
+        simpleClassTwoA.setBooleanValue(true);
         // simpleClassTwoB = factory.newSimpleClassTwo();
         // simpleClassTwoB.setString("A");
 
@@ -480,8 +496,7 @@ public abstract class SqlIntegrationTest
      */
     public void testPassword() {
         SqlDataClass sqlDataClass = SqlIntegrationTestSingleton.getPerson();
-        assertTrue("Password " + password.toString() + " is not equal to " + sqlDataClass.getPassword().toString(),
-            password.equals(sqlDataClass.getPassword()));
+        assertEquals(password, sqlDataClass.getPassword());
     }
 
     /**
@@ -489,8 +504,16 @@ public abstract class SqlIntegrationTest
      */
     public void testPercentage() {
         SqlDataClass sqlDataClass = SqlIntegrationTestSingleton.getPerson();
-        assertTrue("Percentage " + percentage.toString() + " is not equal to "
-            + sqlDataClass.getPercentage().toString(), percentage.equals(sqlDataClass.getPercentage()));
+        assertEquals(percentage, sqlDataClass.getPercentage());
+    }
+
+    public void testStandardValueTypes() {
+        SqlDataClass sqlDataClass = SqlIntegrationTestSingleton.getPerson();
+        assertEquals(shortValue, sqlDataClass.getShortValue());
+        assertEquals(intValue, sqlDataClass.getIntValue());
+        assertEquals(longValue, sqlDataClass.getLongValue());
+        assertEquals(doubleValue, sqlDataClass.getDoubleValue());
+        assertEquals(floatValue, sqlDataClass.getFloatValue());
     }
 
     /**
@@ -573,6 +596,8 @@ public abstract class SqlIntegrationTest
             SimpleClassTwo a = simpleClass.getSimpleClassTwoA();
             factory.resolve(a);
             assertEquals(simpleClassTwoA.getText(), a.getText());
+            assertEquals(simpleClassTwoA.getIntValue(), a.getIntValue());
+            assertEquals(simpleClassTwoA.getBooleanValue(), a.getBooleanValue());
         }
     }
 
@@ -592,6 +617,8 @@ public abstract class SqlIntegrationTest
 
         SimpleClassTwo simpleClass = classes.get(0);
         simpleClass.setText("XXX");
+        simpleClass.setBooleanValue(false);
+        simpleClassTwoA.setBooleanValue(false);
     }
 
     public void testUpdate2() {
@@ -601,6 +628,7 @@ public abstract class SqlIntegrationTest
 
         SimpleClassTwo simpleClass = classes.get(0);
         assertEquals("XXX", simpleClass.getText());
+        assertEquals(simpleClassTwoA.getBooleanValue(), simpleClass.getBooleanValue());
     }
 
     // Last "test" - Set the Singleton state to 0 to invoke a clean shutdown.

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SimpleClassTwo.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SimpleClassTwo.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SimpleClassTwo.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SimpleClassTwo.java Fri Apr 22 19:42:29 2011
@@ -46,15 +46,28 @@ public class SimpleClassTwo extends Abst
 
     // }}
 
-    // {{ Value
-    private int integer;
+    // {{ IntValue
+    private int intValue;
 
-    public int getValue() {
-        return integer;
+    public int getIntValue() {
+        return intValue;
     }
 
-    public void setValue(final int integer) {
-        this.integer = integer;
+    public void setIntValue(final int value) {
+        this.intValue = value;
+    }
+
+    // }}
+
+    // {{ BooleanValue
+    private boolean booleanValue;
+
+    public boolean getBooleanValue() {
+        return booleanValue;
+    }
+
+    public void setBooleanValue(final boolean value) {
+        this.booleanValue = value;
     }
     // }}
 

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SqlDataClass.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SqlDataClass.java?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SqlDataClass.java (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/dataclasses/SqlDataClass.java Fri Apr 22 19:42:29 2011
@@ -25,9 +25,9 @@ import java.util.List;
 import org.apache.isis.applib.AbstractDomainObject;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.value.Color;
+import org.apache.isis.applib.value.Date;
 import org.apache.isis.applib.value.DateTime;
 import org.apache.isis.applib.value.Image;
-import org.apache.isis.applib.value.Date;
 import org.apache.isis.applib.value.Money;
 import org.apache.isis.applib.value.Password;
 import org.apache.isis.applib.value.Percentage;
@@ -36,275 +36,341 @@ import org.apache.isis.applib.value.Time
 import org.apache.isis.runtimes.dflt.objectstores.sql.common.SqlIntegrationTestCommon;
 
 /**
- * The SqlDataClass is a test class used in the sql-persistor integration tests.
- * It's properties are stored and retrieved using the persistor, to confirm
- * accurate persistence behaviour.
+ * The SqlDataClass is a test class used in the sql-persistor integration tests. It's properties are stored and
+ * retrieved using the persistor, to confirm accurate persistence behaviour.
  * 
- * Each property here requires an equivalent test in
- * {@link SqlIntegrationTestCommon}
+ * Each property here requires an equivalent test in {@link SqlIntegrationTestCommon}
  * 
  * @author Kevin Meyer
  * 
  */
 
 public class SqlDataClass extends AbstractDomainObject {
-	public String title() {
-		return string;
-	}
-
-	// Isis Date Type
-	// {{ Date
-	private Date date;
-
-	public Date getDate() {
-		return date;
-	}
-
-	public void setDate(final Date date) {
-		this.date = date;
-	}
-
-	// }}
-
-	// {{ String type
-	private String string;
-
-	public String getString() {
-		return string;
-	}
-
-	public void setString(final String string) {
-		this.string = string;
-	}
-
-	// }}
-
-	// SQL Date Type
-	// {{ SqlDate
-	/**/
-	private java.sql.Date sqlDate;
-
-	@MemberOrder(sequence = "1")
-	public java.sql.Date getSqlDate() {
-		return sqlDate;
-	}
-
-	public void setSqlDate(final java.sql.Date sqlDate) {
-		this.sqlDate = sqlDate;
-	}
-	/**/
-
-	// }}
-
-	// {{ Money
-	private Money money;
-
-	@MemberOrder(sequence = "1")
-	public Money getMoney() {
-		return money;
-	}
-
-	public void setMoney(final Money money) {
-		this.money = money;
-	}
-
-	// }}
-
-	// {{ DateTime
-	private DateTime dateTime;
-
-	@MemberOrder(sequence = "1")
-	public DateTime getDateTime() {
-		return dateTime;
-	}
-
-	public void setDateTime(final DateTime dateTime) {
-		this.dateTime = dateTime;
-	}
-
-	// }}
-
-	// {{ TimeStamp
-	private TimeStamp timeStamp;
-
-	@MemberOrder(sequence = "1")
-	public TimeStamp getTimeStamp() {
-		return timeStamp;
-	}
-
-	public void setTimeStamp(final TimeStamp timeStamp) {
-		this.timeStamp = timeStamp;
-	}
-
-	// }}
-
-	// Color, Image, Password, Percentage, Time
-	// {{ Time
-	private Time time;
-
-	@MemberOrder(sequence = "1")
-	public Time getTime() {
-		return time;
-	}
-
-	public void setTime(final Time time) {
-		this.time = time;
-	}
-
-	// }}
-
-	// {{ Color
-	private Color color;
-
-	@MemberOrder(sequence = "1")
-	public Color getColor() {
-		return color;
-	}
-
-	public void setColor(final Color color) {
-		this.color = color;
-	}
-
-	// }}
-
-	// {{ Image
-	private Image image;
-
-	@MemberOrder(sequence = "1")
-	public Image getImage() {
-		return image;
-	}
-
-	public void setImage(final Image image) {
-		this.image = image;
-	}
-
-	// }}
-
-	// {{ Password
-	private Password password;
-
-	@MemberOrder(sequence = "1")
-	public Password getPassword() {
-		return password;
-	}
-
-	public void setPassword(final Password password) {
-		this.password = password;
-	}
-
-	// }}
-
-	// {{ Percentage
-	private Percentage percentage;
-
-	@MemberOrder(sequence = "1")
-	public Percentage getPercentage() {
-		return percentage;
-	}
-
-	public void setPercentage(final Percentage percentage) {
-		this.percentage = percentage;
-	}
-
-	// }}
-
-	// {{ SimpleClasses
-	public List<SimpleClass> simpleClasses1 = new ArrayList<SimpleClass>();
-
-	@MemberOrder(sequence = "1")
-	public List<SimpleClass> getSimpleClasses1() {
-		return simpleClasses1;
-	}
-
-	public void setSimpleClasses1(final List<SimpleClass> simpleClasses) {
-		this.simpleClasses1 = simpleClasses;
-	}
-
-	public void addToSimpleClasses1(final SimpleClass simpleClass) {
-		// check for no-op
-		if (simpleClass == null || getSimpleClasses1().contains(simpleClass)) {
-			return;
-		}
-		// associate new
-		getSimpleClasses1().add(simpleClass);
-		// additional business logic
-		onAddToSimpleClasses1(simpleClass);
-	}
-
-	public void removeFromSimpleClasses1(final SimpleClass simpleClass) {
-		// check for no-op
-		if (simpleClass == null || !getSimpleClasses1().contains(simpleClass)) {
-			return;
-		}
-		// dissociate existing
-		getSimpleClasses1().remove(simpleClass);
-		// additional business logic
-		onRemoveFromSimpleClasses1(simpleClass);
-	}
-
-	protected void onAddToSimpleClasses1(final SimpleClass simpleClass) {
-	}
-
-	protected void onRemoveFromSimpleClasses1(final SimpleClass simpleClass) {
-	}
-
-	// }}
-
-	// {{ SimpleClasses2
-	/**/
-	private List<SimpleClass> simpleClasses2 = new ArrayList<SimpleClass>();
-
-	@MemberOrder(sequence = "1")
-	public List<SimpleClass> getSimpleClasses2() {
-		return simpleClasses2;
-	}
-
-	public void setSimpleClasses2(final List<SimpleClass> simpleClasses) {
-		this.simpleClasses2 = simpleClasses;
-	}
-
-	public void addToSimpleClasses2(final SimpleClass simpleClass) {
-		// check for no-op
-		if (simpleClass == null || getSimpleClasses2().contains(simpleClass)) {
-			return;
-		}
-		// associate new
-		getSimpleClasses2().add(simpleClass);
-		// additional business logic
-		onAddToSimpleClasses2(simpleClass);
-	}
-
-	public void removeFromSimpleClasses2(final SimpleClass simpleClass) {
-		// check for no-op
-		if (simpleClass == null || !getSimpleClasses2().contains(simpleClass)) {
-			return;
-		}
-		// dissociate existing
-		getSimpleClasses2().remove(simpleClass);
-		// additional business logic
-		onRemoveFromSimpleClasses2(simpleClass);
-	}
-
-	protected void onAddToSimpleClasses2(final SimpleClass simpleClass) {
-	}
-
-	protected void onRemoveFromSimpleClasses2(final SimpleClass simpleClass) {
-	}
-
-	/**/
-	// }}
-
-	// {{ SimpleClassTwo
-	private SimpleClassTwo simplyClassTwo;
-
-	public SimpleClassTwo getSimpleClassTwo() {
-		return simplyClassTwo;
-	}
-
-	public void setSimpleClassTwo(final SimpleClassTwo simpleClassTwo) {
-		this.simplyClassTwo = simpleClassTwo;
-	}
-	// }}
+    public String title() {
+        return string;
+    }
+
+    // Isis Date Type
+    // {{ Date
+    private Date date;
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(final Date date) {
+        this.date = date;
+    }
+
+    // }}
+
+    // {{ String type
+    private String string;
+
+    public String getString() {
+        return string;
+    }
+
+    public void setString(final String string) {
+        this.string = string;
+    }
+
+    // }}
+
+    // SQL Date Type
+    // {{ SqlDate
+    /**/
+    private java.sql.Date sqlDate;
+
+    @MemberOrder(sequence = "1")
+    public java.sql.Date getSqlDate() {
+        return sqlDate;
+    }
+
+    public void setSqlDate(final java.sql.Date sqlDate) {
+        this.sqlDate = sqlDate;
+    }
+
+    /**/
+
+    // }}
+
+    // {{ Money
+    private Money money;
+
+    @MemberOrder(sequence = "1")
+    public Money getMoney() {
+        return money;
+    }
+
+    public void setMoney(final Money money) {
+        this.money = money;
+    }
+
+    // }}
+
+    // {{ DateTime
+    private DateTime dateTime;
+
+    @MemberOrder(sequence = "1")
+    public DateTime getDateTime() {
+        return dateTime;
+    }
+
+    public void setDateTime(final DateTime dateTime) {
+        this.dateTime = dateTime;
+    }
+
+    // }}
+
+    // {{ TimeStamp
+    private TimeStamp timeStamp;
+
+    @MemberOrder(sequence = "1")
+    public TimeStamp getTimeStamp() {
+        return timeStamp;
+    }
+
+    public void setTimeStamp(final TimeStamp timeStamp) {
+        this.timeStamp = timeStamp;
+    }
+
+    // }}
+
+    // Color, Image, Password, Percentage, Time
+    // {{ Time
+    private Time time;
+
+    @MemberOrder(sequence = "1")
+    public Time getTime() {
+        return time;
+    }
+
+    public void setTime(final Time time) {
+        this.time = time;
+    }
+
+    // }}
+
+    // {{ Color
+    private Color color;
+
+    @MemberOrder(sequence = "1")
+    public Color getColor() {
+        return color;
+    }
+
+    public void setColor(final Color color) {
+        this.color = color;
+    }
+
+    // }}
+
+    // {{ Image
+    private Image image;
+
+    @MemberOrder(sequence = "1")
+    public Image getImage() {
+        return image;
+    }
+
+    public void setImage(final Image image) {
+        this.image = image;
+    }
+
+    // }}
+
+    // {{ Password
+    private Password password;
+
+    @MemberOrder(sequence = "1")
+    public Password getPassword() {
+        return password;
+    }
+
+    public void setPassword(final Password password) {
+        this.password = password;
+    }
+
+    // }}
+
+    // {{ Percentage
+    private Percentage percentage;
+
+    @MemberOrder(sequence = "1")
+    public Percentage getPercentage() {
+        return percentage;
+    }
+
+    public void setPercentage(final Percentage percentage) {
+        this.percentage = percentage;
+    }
+
+    // }}
+
+    // Basic value types
+    // {{ IntValue
+    private int intValue;
+
+    public int getIntValue() {
+        return intValue;
+    }
+
+    public void setIntValue(final int value) {
+        this.intValue = value;
+    }
+
+    // }}
+
+    // {{ ShortValue
+    private short shortValue;
+
+    public short getShortValue() {
+        return shortValue;
+    }
+
+    public void setShortValue(final short value) {
+        this.shortValue = value;
+    }
+
+    // }}
+
+    // {{ LongValue
+    private long longValue;
+
+    public long getLongValue() {
+        return longValue;
+    }
+
+    public void setLongValue(final long value) {
+        this.longValue = value;
+    }
+
+    // }}
+
+    // {{ FloatValue
+    private Float floatValue;
+
+    public Float getFloatValue() {
+        return floatValue;
+    }
+
+    public void setFloatValue(final Float value) {
+        this.floatValue = value;
+    }
+
+    // }}
+
+    // {{ DoubleValue
+    private double doubleValue;
+
+    public double getDoubleValue() {
+        return doubleValue;
+    }
+
+    public void setDoubleValue(final double value) {
+        this.doubleValue = value;
+    }
+
+    // }}
+
+    // References to other entities
+    // {{ SimpleClasses
+    public List<SimpleClass> simpleClasses1 = new ArrayList<SimpleClass>();
+
+    @MemberOrder(sequence = "1")
+    public List<SimpleClass> getSimpleClasses1() {
+        return simpleClasses1;
+    }
+
+    public void setSimpleClasses1(final List<SimpleClass> simpleClasses) {
+        this.simpleClasses1 = simpleClasses;
+    }
+
+    public void addToSimpleClasses1(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || getSimpleClasses1().contains(simpleClass)) {
+            return;
+        }
+        // associate new
+        getSimpleClasses1().add(simpleClass);
+        // additional business logic
+        onAddToSimpleClasses1(simpleClass);
+    }
+
+    public void removeFromSimpleClasses1(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || !getSimpleClasses1().contains(simpleClass)) {
+            return;
+        }
+        // dissociate existing
+        getSimpleClasses1().remove(simpleClass);
+        // additional business logic
+        onRemoveFromSimpleClasses1(simpleClass);
+    }
+
+    protected void onAddToSimpleClasses1(final SimpleClass simpleClass) {
+    }
+
+    protected void onRemoveFromSimpleClasses1(final SimpleClass simpleClass) {
+    }
+
+    // }}
+
+    // {{ SimpleClasses2
+    /**/
+    private List<SimpleClass> simpleClasses2 = new ArrayList<SimpleClass>();
+
+    @MemberOrder(sequence = "1")
+    public List<SimpleClass> getSimpleClasses2() {
+        return simpleClasses2;
+    }
+
+    public void setSimpleClasses2(final List<SimpleClass> simpleClasses) {
+        this.simpleClasses2 = simpleClasses;
+    }
+
+    public void addToSimpleClasses2(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || getSimpleClasses2().contains(simpleClass)) {
+            return;
+        }
+        // associate new
+        getSimpleClasses2().add(simpleClass);
+        // additional business logic
+        onAddToSimpleClasses2(simpleClass);
+    }
+
+    public void removeFromSimpleClasses2(final SimpleClass simpleClass) {
+        // check for no-op
+        if (simpleClass == null || !getSimpleClasses2().contains(simpleClass)) {
+            return;
+        }
+        // dissociate existing
+        getSimpleClasses2().remove(simpleClass);
+        // additional business logic
+        onRemoveFromSimpleClasses2(simpleClass);
+    }
+
+    protected void onAddToSimpleClasses2(final SimpleClass simpleClass) {
+    }
+
+    protected void onRemoveFromSimpleClasses2(final SimpleClass simpleClass) {
+    }
+
+    /**/
+    // }}
+
+    // {{ SimpleClassTwo
+    private SimpleClassTwo simplyClassTwo;
+
+    public SimpleClassTwo getSimpleClassTwo() {
+        return simplyClassTwo;
+    }
+
+    public void setSimpleClassTwo(final SimpleClassTwo simpleClassTwo) {
+        this.simplyClassTwo = simpleClassTwo;
+    }
+    // }}
 }
 // Copyright (c) Kevin Meyer, www.kmz.co.za.

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/mysql.properties
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/mysql.properties?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/mysql.properties (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/mysql.properties Fri Apr 22 19:42:29 2011
@@ -7,3 +7,5 @@ isis.persistor.sql.jdbc.connection=jdbc:
 #true&serverTimezone=GMT
 isis.persistor.sql.jdbc.user=nof
 isis.persistor.sql.jdbc.password=
+
+#isis.persistor.sql.datatypes.double=DOUBLE PRECISION
\ No newline at end of file

Modified: incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/postgresql.properties
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/postgresql.properties?rev=1096005&r1=1096004&r2=1096005&view=diff
==============================================================================
--- incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/postgresql.properties (original)
+++ incubator/isis/trunk/runtimes/dflt/objectstores/sql/tests-served/src/test/config/postgresql.properties Fri Apr 22 19:42:29 2011
@@ -7,4 +7,5 @@ isis.persistor.sql.jdbc.user=nof
 isis.persistor.sql.jdbc.password=
 
 isis.persistor.sql.datatypes.timestamp=TIMESTAMP
-isis.persistor.sql.datatypes.datetime=TIMESTAMP
\ No newline at end of file
+isis.persistor.sql.datatypes.datetime=TIMESTAMP
+isis.persistor.sql.datatypes.double=FLOAT
\ No newline at end of file