~ubuntu-branches/ubuntu/precise/libjcommon-java/precise

« back to all changes in this revision

Viewing changes to source/org/jfree/xml/util/BasicTypeSupport.java

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2006-10-01 14:12:07 UTC
  • mfrom: (1.1.2 upstream) (4 edgy)
  • mto: This revision was merged to the branch mainline in revision 6.
  • Revision ID: james.westby@ubuntu.com-20061001141207-2aipqlhpmn45t3ng
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 getHandlerClass(final Class c) {
 
73
        if (c.equals(Integer.class) || c.equals(Integer.TYPE)) {
 
74
            return IntegerAttributeHandler.class.getName();
 
75
        }
 
76
        if (c.equals(Short.class) || c.equals(Short.TYPE)) {
 
77
            return ShortAttributeHandler.class.getName();
 
78
        }
 
79
        if (c.equals(Long.class) || c.equals(Long.TYPE)) {
 
80
            return LongAttributeHandler.class.getName();
 
81
        }
 
82
        if (c.equals(Boolean.class) || c.equals(Boolean.TYPE)) {
 
83
            return BooleanAttributeHandler.class.getName();
 
84
        }
 
85
        if (c.equals(Float.class) || c.equals(Float.TYPE)) {
 
86
            return FloatAttributeHandler.class.getName();
 
87
        }
 
88
        if (c.equals(Double.class) || c.equals(Double.TYPE)) {
 
89
            return DoubleAttributeHandler.class.getName();
 
90
        }
 
91
        if (c.equals(Byte.class) || c.equals(Byte.TYPE)) {
 
92
            return ByteAttributeHandler.class.getName();
 
93
        }
 
94
        // string can also be handled directly ...
 
95
        if (c.equals(String.class)) {
 
96
            return StringAttributeHandler.class.getName();
 
97
        }
 
98
        throw new IllegalArgumentException("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 c) {
 
111
        if (c.equals(Integer.class) || c.equals(Integer.TYPE)) {
 
112
            return true;
 
113
        }
 
114
        if (c.equals(Short.class) || c.equals(Short.TYPE)) {
 
115
            return true;
 
116
        }
 
117
        if (c.equals(Long.class) || c.equals(Long.TYPE)) {
 
118
            return true;
 
119
        }
 
120
        if (c.equals(Boolean.class) || c.equals(Boolean.TYPE)) {
 
121
            return true;
 
122
        }
 
123
        if (c.equals(Float.class) || c.equals(Float.TYPE)) {
 
124
            return true;
 
125
        }
 
126
        if (c.equals(Double.class) || c.equals(Double.TYPE)) {
 
127
            return true;
 
128
        }
 
129
        if (c.equals(Byte.class) || c.equals(Byte.TYPE)) {
 
130
            return true;
 
131
        }
 
132
        // string can also be handled directly ...
 
133
        if (c.equals(String.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 getClassRepresentation(final String 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("This is none of my primitives.");
 
166
    }
 
167
 
 
168
}