KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > beanutils > converters > IntegerConverter


1 /*
2  * Copyright 2001-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17
18 package org.apache.commons.beanutils.converters;
19
20
21 import org.apache.commons.beanutils.ConversionException;
22 import org.apache.commons.beanutils.Converter;
23
24
25 /**
26  * <p>Standard {@link Converter} implementation that converts an incoming
27  * String into a <code>java.lang.Integer</code> object, optionally using a
28  * default value or throwing a {@link ConversionException} if a conversion
29  * error occurs.</p>
30  *
31  * @author Craig R. McClanahan
32  * @version $Revision: 1.8 $ $Date: 2004/02/28 13:18:34 $
33  * @since 1.3
34  */

35
36 public final class IntegerConverter implements Converter {
37
38
39     // ----------------------------------------------------------- Constructors
40

41
42     /**
43      * Create a {@link Converter} that will throw a {@link ConversionException}
44      * if a conversion error occurs.
45      */

46     public IntegerConverter() {
47
48         this.defaultValue = null;
49         this.useDefault = false;
50
51     }
52
53
54     /**
55      * Create a {@link Converter} that will return the specified default value
56      * if a conversion error occurs.
57      *
58      * @param defaultValue The default value to be returned
59      */

60     public IntegerConverter(Object JavaDoc defaultValue) {
61
62         this.defaultValue = defaultValue;
63         this.useDefault = true;
64
65     }
66
67
68     // ----------------------------------------------------- Instance Variables
69

70
71     /**
72      * The default value specified to our Constructor, if any.
73      */

74     private Object JavaDoc defaultValue = null;
75
76
77     /**
78      * Should we return the default value on conversion errors?
79      */

80     private boolean useDefault = true;
81
82
83     // --------------------------------------------------------- Public Methods
84

85
86     /**
87      * Convert the specified input object into an output object of the
88      * specified type.
89      *
90      * @param type Data type to which this value should be converted
91      * @param value The input value to be converted
92      *
93      * @exception ConversionException if conversion cannot be performed
94      * successfully
95      */

96     public Object JavaDoc convert(Class JavaDoc type, Object JavaDoc value) {
97
98         if (value == null) {
99             if (useDefault) {
100                 return (defaultValue);
101             } else {
102                 throw new ConversionException("No value specified");
103             }
104         }
105
106         if (value instanceof Integer JavaDoc) {
107             return (value);
108         } else if(value instanceof Number JavaDoc) {
109             return new Integer JavaDoc(((Number JavaDoc)value).intValue());
110         }
111
112         try {
113             return (new Integer JavaDoc(value.toString()));
114         } catch (Exception JavaDoc e) {
115             if (useDefault) {
116                 return (defaultValue);
117             } else {
118                 throw new ConversionException(e);
119             }
120         }
121
122     }
123
124
125 }
126
Popular Tags