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


Reply via email to