Update of /var/cvs/src/org/mmbase/datatypes
In directory james.mmbase.org:/tmp/cvs-serv16404

Modified Files:
        DataType.java BasicDataType.java ComparableDataType.java 
Log Message:
  MMB-1642


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes
See also: http://www.mmbase.org/jira/browse/MMB-1642


Index: DataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/DataType.java,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -b -r1.65 -r1.66
--- DataType.java       16 Feb 2008 22:13:53 -0000      1.65
+++ DataType.java       24 Apr 2008 11:49:55 -0000      1.66
@@ -32,7 +32,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: DataType.java,v 1.65 2008/02/16 22:13:53 nklasens Exp $
+ * @version $Id: DataType.java,v 1.66 2008/04/24 11:49:55 michiel Exp $
  * @param <C> Class this DataType 
  */
 
@@ -154,6 +154,12 @@
     public C getDefaultValue();
 
     /**
+     * Returns the (locale dependent) default value of this data type,
+     * @since MMBase-1.8.6
+     */
+    public C getDefaultValue(Locale locale, Cloud cloud, Field field);
+
+    /**
      * Set the default value for this DataType 
      * @param def default value 
      */


Index: BasicDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/BasicDataType.java,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -b -r1.84 -r1.85
--- BasicDataType.java  25 Mar 2008 21:00:25 -0000      1.84
+++ BasicDataType.java  24 Apr 2008 11:49:55 -0000      1.85
@@ -38,7 +38,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: BasicDataType.java,v 1.84 2008/03/25 21:00:25 nklasens Exp $
+ * @version $Id: BasicDataType.java,v 1.85 2008/04/24 11:49:55 michiel Exp $
  */
 
 public class BasicDataType<C> extends AbstractDescriptor implements 
DataType<C>, Cloneable, Comparable<DataType<C>>, Descriptor {
@@ -317,6 +317,19 @@
     }
 
     /**
+     * @since MMBase-1.8.6
+     */
+    protected Cloud getCloud(Cloud cloud) {
+        if (cloud == null) {
+            log.info("No cloud found");
+            CloudContext context = ContextProvider.getDefaultCloudContext();
+            if (! context.isUp()) return null;
+            cloud  = context.getCloud("mmbase", "class", null);
+        }
+        return cloud;
+    }
+
+    /**
      * Before validating the value, the value will be 'cast', on default this 
will be to the
      * 'correct' type, but it can be a more generic type sometimes. E.g. for 
numbers this wil simply
      * cast to Number.
@@ -328,10 +341,26 @@
     /**
      * [EMAIL PROTECTED]
      */
-    public C getDefaultValue() {
+    public final C getDefaultValue() {
+        return getDefaultValue(null, null, null);
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     */
+    public C getDefaultValue(Locale locale, Cloud cloud, Field field) {
         if (defaultValue == null) return null;
-        return cast(defaultValue, null, null);
+        C res =  cast(defaultValue, null, null);
+        if (res != null) return res;
+
+        try {
+            return cast(defaultValue, getCloud(cloud), null, null);
+        } catch (CastException ce) {
+            log.error(ce);
+            return Casting.toType(classType, cloud, preCast(defaultValue, 
cloud, null, field));
     }
+    }
+
 
     /**
      * [EMAIL PROTECTED]


Index: ComparableDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/ComparableDataType.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- ComparableDataType.java     16 Sep 2007 17:55:28 -0000      1.34
+++ ComparableDataType.java     24 Apr 2008 11:49:55 -0000      1.35
@@ -21,7 +21,7 @@
  * therefore can have a minimum and a maximum value.
  *
  * @author Michiel Meeuwissen
- * @version $Id: ComparableDataType.java,v 1.34 2007/09/16 17:55:28 michiel 
Exp $
+ * @version $Id: ComparableDataType.java,v 1.35 2008/04/24 11:49:55 michiel 
Exp $
  * @since MMBase-1.8
  */
 public abstract class ComparableDataType<E extends 
java.io.Serializable&Comparable<E>> extends BasicDataType<E> {
@@ -103,7 +103,7 @@
      *
      * If the default value of comparable datatype is somewhy out the range, 
it will be truncated into it.
      */
-    public final E getDefaultValue() {
+    public final E getDefaultValue(Locale locale, Cloud cloud, Field field) {
         E def = super.getDefaultValue();
         if (! minRestriction.valid(def, null, null)) {
             def = minRestriction.getValue();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to