KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > xml > util > BasicTypeSupport


1 /* ========================================================================
2  * JCommon : a free general purpose class library for the Java(tm) platform
3  * ========================================================================
4  *
5  * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
6  *
7  * Project Info: http://www.jfree.org/jcommon/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * ---------------------
28  * BasicTypeSupport.java
29  * ---------------------
30  * (C)opyright 2003-2005, by Thomas Morgner and Contributors.
31  *
32  * Original Author: Thomas Morgner;
33  * Contributor(s): David Gilbert (for Object Refinery Limited);
34  *
35  * $Id: BasicTypeSupport.java,v 1.4 2005/10/18 13:33:53 mungady Exp $
36  *
37  * Changes
38  * -------
39  * 12-Nov-2003 : Initial version (TM);
40  * 26-Nov-2003 : Updated header and Javadocs (DG);
41  *
42  */

43
44 package org.jfree.xml.util;
45
46 import org.jfree.xml.attributehandlers.BooleanAttributeHandler;
47 import org.jfree.xml.attributehandlers.ByteAttributeHandler;
48 import org.jfree.xml.attributehandlers.DoubleAttributeHandler;
49 import org.jfree.xml.attributehandlers.FloatAttributeHandler;
50 import org.jfree.xml.attributehandlers.IntegerAttributeHandler;
51 import org.jfree.xml.attributehandlers.LongAttributeHandler;
52 import org.jfree.xml.attributehandlers.ShortAttributeHandler;
53 import org.jfree.xml.attributehandlers.StringAttributeHandler;
54
55 /**
56  * A class that contains information about some basic types.
57  */

58 public class BasicTypeSupport {
59
60   private BasicTypeSupport ()
61   {
62   }
63
64     /**
65      * Returns the fully qualified class name for the attribute handler for a property of
66      * the specified class.
67      *
68      * @param c the property class.
69      *
70      * @return the attribute handler class name.
71      */

72     public static String JavaDoc getHandlerClass(final Class JavaDoc c) {
73         if (c.equals(Integer JavaDoc.class) || c.equals(Integer.TYPE)) {
74             return IntegerAttributeHandler.class.getName();
75         }
76         if (c.equals(Short JavaDoc.class) || c.equals(Short.TYPE)) {
77             return ShortAttributeHandler.class.getName();
78         }
79         if (c.equals(Long JavaDoc.class) || c.equals(Long.TYPE)) {
80             return LongAttributeHandler.class.getName();
81         }
82         if (c.equals(Boolean JavaDoc.class) || c.equals(Boolean.TYPE)) {
83             return BooleanAttributeHandler.class.getName();
84         }
85         if (c.equals(Float JavaDoc.class) || c.equals(Float.TYPE)) {
86             return FloatAttributeHandler.class.getName();
87         }
88         if (c.equals(Double JavaDoc.class) || c.equals(Double.TYPE)) {
89             return DoubleAttributeHandler.class.getName();
90         }
91         if (c.equals(Byte JavaDoc.class) || c.equals(Byte.TYPE)) {
92             return ByteAttributeHandler.class.getName();
93         }
94         // string can also be handled directly ...
95
if (c.equals(String JavaDoc.class)) {
96             return StringAttributeHandler.class.getName();
97         }
98         throw new IllegalArgumentException JavaDoc("BasicTypeSupport.getHandlerClass(Class): "
99             + "this is no attribute type.");
100     }
101
102     /**
103      * Returns <code>true</code> if the specified class is a "basic" type, and <code>false</code>
104      * otherwise. Basic types are written as attributes (rather than elements) in XML output.
105      *
106      * @param c the class.
107      *
108      * @return a boolean.
109      */

110     public static boolean isBasicDataType (final Class JavaDoc c) {
111         if (c.equals(Integer JavaDoc.class) || c.equals(Integer.TYPE)) {
112             return true;
113         }
114         if (c.equals(Short JavaDoc.class) || c.equals(Short.TYPE)) {
115             return true;
116         }
117         if (c.equals(Long JavaDoc.class) || c.equals(Long.TYPE)) {
118             return true;
119         }
120         if (c.equals(Boolean JavaDoc.class) || c.equals(Boolean.TYPE)) {
121             return true;
122         }
123         if (c.equals(Float JavaDoc.class) || c.equals(Float.TYPE)) {
124             return true;
125         }
126         if (c.equals(Double JavaDoc.class) || c.equals(Double.TYPE)) {
127             return true;
128         }
129         if (c.equals(Byte JavaDoc.class) || c.equals(Byte.TYPE)) {
130             return true;
131         }
132         // string can also be handled directly ...
133
if (c.equals(String JavaDoc.class)) {
134             return true;
135         }
136         return false;
137     }
138
139     /**
140      * Returns the class for a given primitive class type.
141      *
142      * @param className the primitive class name.
143      *
144      * @return a class.
145      */

146     public static Class JavaDoc getClassRepresentation(final String JavaDoc className) {
147         if (className.equals("::double")) {
148             return Double.TYPE;
149         }
150         if (className.equals("::boolean")) {
151             return Boolean.TYPE;
152         }
153         if (className.equals("::int")) {
154             return Integer.TYPE;
155         }
156         if (className.equals("::short")) {
157             return Short.TYPE;
158         }
159         if (className.equals("::long")) {
160             return Long.TYPE;
161         }
162         if (className.equals("::byte")) {
163             return Byte.TYPE;
164         }
165         throw new IllegalArgumentException JavaDoc("This is none of my primitives.");
166     }
167
168 }
169
Popular Tags