1 10 package org.mmbase.datatypes; 11 12 import java.util.*; 13 14 import org.mmbase.bridge.*; 15 import org.mmbase.util.Casting; 16 import org.mmbase.util.logging.*; 17 18 25 abstract public class NumberDataType extends ComparableDataType { 26 27 private static final Logger log = Logging.getLoggerInstance(NumberDataType.class); 28 29 private static final long serialVersionUID = 1L; 30 33 public NumberDataType(String name, Class classType) { 34 super(name, classType); 35 } 36 37 38 protected Object castToValidate(Object value, Node node, Field field) throws CastException { 39 if (value == null) return null; 40 Object preCast = preCast(value, node, field); if (preCast instanceof String ) { 42 if (! StringDataType.DOUBLE_PATTERN.matcher((String ) preCast).matches()) { 43 throw new CastException("Not a number: " + preCast); 44 } 45 } 46 return new Double (Casting.toDouble(preCast)); } 48 } 49 | Popular Tags |