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