Author: ivaynberg
Date: Wed Jan 9 20:23:24 2008
New Revision: 610666
URL: http://svn.apache.org/viewvc?rev=610666&view=rev
Log:
WICKET-1254 out of the box big decimal converter
Added:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
(with props)
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java?rev=610666&r1=610665&r2=610666&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/ConverterLocator.java
Wed Jan 9 20:23:24 2008
@@ -17,12 +17,14 @@
package org.apache.wicket.util.convert;
import java.lang.ref.WeakReference;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.util.convert.converters.BigDecimalConverter;
import org.apache.wicket.util.convert.converters.BooleanConverter;
import org.apache.wicket.util.convert.converters.ByteConverter;
import org.apache.wicket.util.convert.converters.CharacterConverter;
@@ -142,6 +144,7 @@
set(java.sql.Date.class, new SqlDateConverter());
set(java.sql.Time.class, new SqlTimeConverter());
set(java.sql.Timestamp.class, new SqlTimestampConverter());
+ set(BigDecimal.class, new BigDecimalConverter());
}
/**
Added:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java?rev=610666&view=auto
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
(added)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
Wed Jan 9 20:23:24 2008
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.util.convert.converters;
+
+import java.math.BigDecimal;
+import java.text.NumberFormat;
+import java.util.Locale;
+
+/**
+ * BigDecimal converter
+ *
+ * see IConverter
+ *
+ */
+public class BigDecimalConverter extends AbstractDecimalConverter
+{
+ private static final long serialVersionUID = 1L;
+
+ protected Class getTargetType()
+ {
+ return BigDecimal.class;
+ }
+
+ public Object convertToObject(String value, Locale locale)
+ {
+ if (value == null || value.trim().equals(""))
+ return null;
+
+ NumberFormat format = getNumberFormat(locale);
+ try
+ {
+ Number number = format.parse(value);
+ if (number instanceof BigDecimal)
+ {
+ return number;
+ }
+ else if (number instanceof Double)
+ {
+ return new BigDecimal(number.doubleValue());
+ }
+ else if (number instanceof Long)
+ {
+ return new BigDecimal(number.longValue());
+ }
+ else if (number instanceof Float)
+ {
+ return new BigDecimal(number.floatValue());
+ }
+ else if (number instanceof Integer)
+ {
+ return new BigDecimal(number.intValue());
+ }
+ else
+ {
+ return new BigDecimal(value);
+ }
+ }
+ catch (Exception e)
+ {
+ throw newConversionException("Cannot parse '" + value +
"' using format " + format,
+ value, locale).setFormat(format);
+ }
+ }
+}
Propchange:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/convert/converters/BigDecimalConverter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain