1 package org.sapia.soto.util; 2 3 import java.util.HashMap ; 4 import java.util.Map ; 5 6 7 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 _nameToType = new HashMap (); 25 private static Map _typeNameToType = new HashMap (); 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 _name; 46 private String _className; 47 48 Type(String name, String className) { 49 _name = name; 50 _className = className; 51 } 52 53 public String getName() { 54 return _name; 55 } 56 57 public String getClassName() { 58 return _className; 59 } 60 61 public boolean equals(Object o) { 62 try { 63 return ((Type) o).getClassName().equals(_className) && 64 ((Type) o).getName().equals(_name); 65 } catch (ClassCastException e) { 66 return false; 67 } 68 } 69 70 public static boolean hasTypeForTypeName(String typeName) { 71 return _typeNameToType.get(typeName) != null; 72 } 73 74 public static boolean hasTypeForName(String name) { 75 return _nameToType.get(name) != null; 76 } 77 78 public static Type getTypeForTypeName(String typeName) { 79 Type t = (Type) _typeNameToType.get(typeName); 80 81 if (t == null) { 82 throw new IllegalArgumentException ("Unkown type: " + typeName); 83 } 84 85 return t; 86 } 87 88 public static Type getTypeForName(String name) { 89 Type t = (Type) _nameToType.get(name); 90 91 if (t == null) { 92 throw new IllegalArgumentException ("Unkown type: " + name); 93 } 94 95 return t; 96 } 97 } 98 | Popular Tags |