1 16 package org.outerj.daisy.repository; 17 18 25 public final class ValueType { 26 private final String name; 27 private final int code; 28 private final Class clazz; 29 30 private ValueType(String name, int code, Class clazz) { 31 this.name = name; 32 this.code = code; 33 this.clazz = clazz; 34 } 35 36 public String toString() { 37 return name; 38 } 39 40 public int getCode() { 41 return code; 42 } 43 44 public Class getTypeClass() { 45 return clazz; 46 } 47 48 public static ValueType fromString(String name) { 49 if (name.equals("string")) 50 return ValueType.STRING; 51 else if (name.equals("date")) 52 return ValueType.DATE; 53 else if (name.equals("datetime")) 54 return ValueType.DATETIME; 55 else if (name.equals("long")) 56 return ValueType.LONG; 57 else if (name.equals("double")) 58 return ValueType.DOUBLE; 59 else if (name.equals("decimal")) 60 return ValueType.DECIMAL; 61 else if (name.equals("boolean")) 62 return ValueType.BOOLEAN; 63 else if (name.equals("link")) 64 return ValueType.LINK; 65 else 66 throw new RuntimeException ("Unrecognized ValueType name: " + name); 67 } 68 69 public static ValueType getByCode(int code) { 70 switch (code) { 71 case 1: 72 return STRING; 73 case 2: 74 return DATE; 75 case 3: 76 return DATETIME; 77 case 4: 78 return LONG; 79 case 5: 80 return DOUBLE; 81 case 6: 82 return DECIMAL; 83 case 7: 84 return BOOLEAN; 85 case 8: 86 return LINK; 87 default: 88 throw new RuntimeException ("Non-existing ValueType code: " + code); 89 } 90 } 91 92 public static final ValueType STRING = new ValueType("string", 1, String .class); 93 public static final ValueType DATE = new ValueType("date", 2, java.util.Date .class); 94 public static final ValueType DATETIME = new ValueType("datetime", 3, java.util.Date .class); 95 public static final ValueType LONG = new ValueType("long", 4, Long .class); 96 public static final ValueType DOUBLE = new ValueType("double", 5, Double .class); 97 public static final ValueType DECIMAL = new ValueType("decimal", 6, java.math.BigDecimal .class); 98 public static final ValueType BOOLEAN = new ValueType("boolean", 7, java.lang.Boolean .class); 99 public static final ValueType LINK = new ValueType("link", 8, VariantKey.class); 100 } 101 | Popular Tags |