Update of /var/cvs/src/org/mmbase/datatypes
In directory james.mmbase.org:/tmp/cvs-serv11608
Modified Files:
NumberDataType.java
Log Message:
just moved some code a bit around to make Duration compile again
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes
Index: NumberDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/NumberDataType.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- NumberDataType.java 8 Aug 2008 18:30:52 -0000 1.25
+++ NumberDataType.java 8 Aug 2008 19:08:46 -0000 1.26
@@ -20,7 +20,7 @@
* A DataType representing some kind of numeric value, like a floating point
number or an integer number.
*
* @author Pierre van Rooden
- * @version $Id: NumberDataType.java,v 1.25 2008/08/08 18:30:52 andre Exp $
+ * @version $Id: NumberDataType.java,v 1.26 2008/08/08 19:08:46 michiel Exp $
* @since MMBase-1.8
*/
abstract public class NumberDataType<E extends Number&Comparable<E>> extends
ComparableDataType<E> {
@@ -33,15 +33,10 @@
super(name, classType);
}
- /**
- * @since MMBase-1.9
- */
- protected Object castToValidate(Object value, Node node, Field field)
throws CastException {
- if (value == null) return null;
- Object preCast = preCast(value, node, field); // resolves enumerations
- //return castString(preCast);
- Locale l = node.getCloud().getLocale();
+ protected Number castString(Object preCast, Cloud cloud) throws
CastException {
+ if (preCast instanceof String) {
+ Locale l = cloud.getLocale();
NumberFormat nf = NumberFormat.getNumberInstance(l);
try {
return nf.parse((String) preCast);
@@ -49,4 +44,17 @@
throw new CastException("Not a number: " + preCast);
}
}
+ return Casting.toDouble(preCast); // this makes it e.g. possible to
report that 1e20 is too big for an integer.
+ }
+
+
+
+ /**
+ * @since MMBase-1.9
+ */
+ protected Object castToValidate(Object value, Node node, Field field)
throws CastException {
+ if (value == null) return null;
+ Object preCast = preCast(value, node, field); // resolves enumerations
+ return castString(preCast, getCloud(node, field));
+ }
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs