You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/08/22 14:24:56 UTC

svn commit: r1376010 - in /incubator/isis/trunk/framework: applib/src/main/java/org/apache/isis/applib/value/ runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/ runtimes/...

Author: danhaywood
Date: Wed Aug 22 12:24:55 2012
New Revision: 1376010

URL: http://svn.apache.org/viewvc?rev=1376010&view=rev
Log:
ISIS-246: applied patch

With thanks!

Added:
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeConverter.java
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeMapping.java
Modified:
    incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/value/DateTime.java
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/resources/plugin.xml

Modified: incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/value/DateTime.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/value/DateTime.java?rev=1376010&r1=1376009&r2=1376010&view=diff
==============================================================================
--- incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/value/DateTime.java (original)
+++ incubator/isis/trunk/framework/applib/src/main/java/org/apache/isis/applib/value/DateTime.java Wed Aug 22 12:24:55 2012
@@ -153,6 +153,14 @@ public class DateTime extends Magnitude<
         return new Date(dateTime.getMillis());
     }
 
+    /**
+     * 
+     * @return the milliseconds from 1970-01-01T00:00:00Z
+     */
+    public long getMillisSinceEpoch() {
+        return dateTime.getMillis();
+    }
+    
     public int getSeconds() {
         return dateTime.getSecondOfMinute();
     }

Added: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeConverter.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeConverter.java?rev=1376010&view=auto
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeConverter.java (added)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeConverter.java Wed Aug 22 12:24:55 2012
@@ -0,0 +1,32 @@
+package org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes;
+
+import org.apache.isis.applib.value.DateTime;
+import org.datanucleus.store.types.converters.TypeConverter;
+
+public class IsisDateTimeConverter implements TypeConverter<DateTime, Long>{
+
+    private static final long serialVersionUID = 1L;
+
+    public IsisDateTimeConverter() {
+        
+    }
+    
+    @Override
+    public Long toDatastoreType(DateTime memberValue) {
+        if(memberValue == null) {
+            return null;
+        }
+
+        DateTime d = (DateTime)memberValue;
+        return d.getMillisSinceEpoch();
+    }
+
+    @Override
+    public DateTime toMemberType(Long datastoreValue) {
+        if(datastoreValue == null) {
+            return null;
+        }
+        return new DateTime(datastoreValue);
+    }
+
+}

Added: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeMapping.java?rev=1376010&view=auto
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeMapping.java (added)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/java/org/apache/isis/runtimes/dflt/objectstores/jdo/datanucleus/applibtypes/IsisDateTimeMapping.java Wed Aug 22 12:24:55 2012
@@ -0,0 +1,30 @@
+package org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes;
+
+import org.datanucleus.store.mapped.mapping.ObjectAsLongMapping;
+
+import org.apache.isis.applib.value.DateTime;
+
+public class IsisDateTimeMapping extends ObjectAsLongMapping {
+
+    private final IsisDateTimeConverter dateConverter = new IsisDateTimeConverter();
+    
+    public IsisDateTimeMapping() {
+        
+    }
+    
+    @Override
+    public Class<?> getJavaType() {
+        return org.apache.isis.applib.value.DateTime.class;
+    }
+
+    @Override
+    protected Long objectToLong(Object object) {
+        return dateConverter.toDatastoreType((DateTime) object);
+    }
+
+    @Override
+    protected Object longToObject(Long datastoreValue) {
+        return dateConverter.toMemberType(datastoreValue);
+    }
+
+}

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/resources/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/resources/plugin.xml?rev=1376010&r1=1376009&r2=1376010&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/resources/plugin.xml (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jdo/jdo-datanucleus/src/main/resources/plugin.xml Wed Aug 22 12:24:55 2012
@@ -8,11 +8,20 @@
         	dfg="true" 
         	embedded="true"
             long-converter="org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes.IsisDateConverter"/>
+        <java-type 
+            name="org.apache.isis.applib.value.DateTime" 
+            persistent="true" 
+            dfg="true" 
+            embedded="true"
+            long-converter="org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes.IsisDateTimeConverter"/>
     </extension>
 
     <extension point="org.datanucleus.store_mapping">
         <mapping 
-        	java-type="org.apache.isis.applib.value.Date" 
-        	mapping-class="org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes.IsisDateMapping"/>
+            java-type="org.apache.isis.applib.value.Date" 
+            mapping-class="org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes.IsisDateMapping"/>
+        <mapping 
+            java-type="org.apache.isis.applib.value.DateTime" 
+            mapping-class="org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.applibtypes.IsisDateTimeMapping"/>
     </extension>
 </plugin>
\ No newline at end of file