Update of /var/cvs/src/org/mmbase/util
In directory james.mmbase.org:/tmp/cvs-serv29588
Modified Files:
Casting.java
Log Message:
fixes some failing testcases
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util
Index: Casting.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/Casting.java,v
retrieving revision 1.120
retrieving revision 1.121
diff -u -b -r1.120 -r1.121
--- Casting.java 1 Dec 2008 17:26:21 -0000 1.120
+++ Casting.java 1 Dec 2008 22:52:13 -0000 1.121
@@ -16,7 +16,7 @@
*
* @author Michiel Meeuwissen
* @since MMBase-1.6
- * @version $Id: Casting.java,v 1.120 2008/12/01 17:26:21 michiel Exp $
+ * @version $Id: Casting.java,v 1.121 2008/12/01 22:52:13 michiel Exp $
*/
import java.util.*;
@@ -938,7 +938,27 @@
if (i instanceof BigDecimal) {
return (BigDecimal) i;
} else if (i instanceof CharSequence) {
+ try {
return new BigDecimal("" + i).stripTrailingZeros();
+ } catch (NumberFormatException nfe) {
+ if(i instanceof String){
+ String s = ((String)i).toLowerCase();
+ if (s.equals("true") || s.equals("yes")) {
+ return BigDecimal.ONE;
+ } else if(s.equals("false") || s.equals("no")) {
+ return BigDecimal.ZERO;
+ }
+ }
+ return BigDecimal.ONE.negate();
+ }
+ } else if (i instanceof Long) {
+ return new BigDecimal((Long) i);
+ } else if (i instanceof Integer) {
+ return new BigDecimal((Integer) i);
+ } else if (i instanceof Double) {
+ return new BigDecimal((Double) i);
+ } else if (i instanceof Float) {
+ return new BigDecimal((Float) i);
} else {
return new BigDecimal(toDouble(i));
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs