Update of /var/cvs/src/org/mmbase/datatypes
In directory james.mmbase.org:/tmp/cvs-serv27309
Modified Files:
ComparableDataType.java NumberDataType.java
Log Message:
Decimal cannot be compare with equals, but must be compare with compareTo, so
doing that
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes
Index: ComparableDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/ComparableDataType.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- ComparableDataType.java 8 Sep 2008 08:59:56 -0000 1.40
+++ ComparableDataType.java 22 Dec 2008 17:02:53 -0000 1.41
@@ -21,7 +21,7 @@
* therefore can have a minimum and a maximum value.
*
* @author Michiel Meeuwissen
- * @version $Id: ComparableDataType.java,v 1.40 2008/09/08 08:59:56 michiel
Exp $
+ * @version $Id: ComparableDataType.java,v 1.41 2008/12/22 17:02:53 michiel
Exp $
* @since MMBase-1.8
*/
public abstract class ComparableDataType<E extends java.io.Serializable &
Comparable<E>> extends BasicDataType<E> {
@@ -229,8 +229,9 @@
// invalid value, but not because of min-restriction
return true;
}
- if (inclusive && (comparable.equals(minimum))) return true;
- return comparable.compareTo(minimum) > 0;
+ int ct = comparable.compareTo(minimum);
+ if (inclusive && (ct == 0)) return true;
+ return ct > 0;
}
public boolean isInclusive() {
return inclusive;
@@ -257,8 +258,9 @@
// invalid value, but not because of max-restriction
return true;
}
- if (inclusive && (comparable.equals(maximum))) return true;
- boolean res = comparable.compareTo(maximum) < 0;
+ int ct = comparable.compareTo(maximum);
+ if (inclusive && (ct == 0)) return true;
+ boolean res = ct < 0;
return res;
}
Index: NumberDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/NumberDataType.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- NumberDataType.java 1 Dec 2008 23:28:56 -0000 1.33
+++ NumberDataType.java 22 Dec 2008 17:02:53 -0000 1.34
@@ -22,7 +22,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.33 2008/12/01 23:28:56 michiel Exp $
+ * @version $Id: NumberDataType.java,v 1.34 2008/12/22 17:02:53 michiel Exp $
* @since MMBase-1.8
*/
abstract public class NumberDataType<E extends Number & Comparable<E>> extends
ComparableDataType<E> {
@@ -57,10 +57,10 @@
throw new CastException("Not a number: " + s);
} else {
log.debug("Casting to double " + s);
- return Casting.toDouble(s);
+ return Casting.toDecimal(s);
}
}
- return number;
+ return Casting.toDecimal(number);
} else if (preCast instanceof Float) {
if (((Float) preCast).isInfinite()) {
return (Float) preCast;
@@ -71,7 +71,6 @@
}
}
-
return Casting.toDecimal(preCast); // this makes it e.g. possible to
report that 1e20 is too big for an integer.
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs