KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > soto > util > Type


1 package org.sapia.soto.util;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6
7 /**
8  * @author Yanick Duchesne
9  *
10  * <dl>
11  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2003 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
12  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
13  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
14  * </dl>
15  */

16 public class Type {
17   public static Type BOOLEAN = new Type("boolean", boolean.class.getName());
18   public static Type BYTE = new Type("byte", byte.class.getName());
19   public static Type SHORT = new Type("short", short.class.getName());
20   public static Type INT = new Type("int", int.class.getName());
21   public static Type LONG = new Type("long", long.class.getName());
22   public static Type FLOAT = new Type("float", float.class.getName());
23   public static Type DOUBLE = new Type("double", double.class.getName());
24   private static Map JavaDoc _nameToType = new HashMap JavaDoc();
25   private static Map JavaDoc _typeNameToType = new HashMap JavaDoc();
26
27   static {
28     _nameToType.put("boolean", BOOLEAN);
29     _nameToType.put("byte", BYTE);
30     _nameToType.put("short", SHORT);
31     _nameToType.put("int", INT);
32     _nameToType.put("long", LONG);
33     _nameToType.put("float", FLOAT);
34     _nameToType.put("double", DOUBLE);
35
36     _typeNameToType.put(boolean.class.getName(), BOOLEAN);
37     _typeNameToType.put(byte.class.getName(), BYTE);
38     _typeNameToType.put(short.class.getName(), SHORT);
39     _typeNameToType.put(int.class.getName(), INT);
40     _typeNameToType.put(long.class.getName(), LONG);
41     _typeNameToType.put(float.class.getName(), FLOAT);
42     _typeNameToType.put(double.class.getName(), DOUBLE);
43   }
44
45   private String JavaDoc _name;
46   private String JavaDoc _className;
47
48   Type(String JavaDoc name, String JavaDoc className) {
49     _name = name;
50     _className = className;
51   }
52
53   public String JavaDoc getName() {
54     return _name;
55   }
56
57   public String JavaDoc getClassName() {
58     return _className;
59   }
60
61   public boolean equals(Object JavaDoc o) {
62     try {
63       return ((Type) o).getClassName().equals(_className) &&
64       ((Type) o).getName().equals(_name);
65     } catch (ClassCastException JavaDoc e) {
66       return false;
67     }
68   }
69
70   public static boolean hasTypeForTypeName(String JavaDoc typeName) {
71     return _typeNameToType.get(typeName) != null;
72   }
73
74   public static boolean hasTypeForName(String JavaDoc name) {
75     return _nameToType.get(name) != null;
76   }
77
78   public static Type getTypeForTypeName(String JavaDoc typeName) {
79     Type t = (Type) _typeNameToType.get(typeName);
80
81     if (t == null) {
82       throw new IllegalArgumentException JavaDoc("Unkown type: " + typeName);
83     }
84
85     return t;
86   }
87
88   public static Type getTypeForName(String JavaDoc name) {
89     Type t = (Type) _nameToType.get(name);
90
91     if (t == null) {
92       throw new IllegalArgumentException JavaDoc("Unkown type: " + name);
93     }
94
95     return t;
96   }
97 }
98
Popular Tags