1 package org.melati.admin;
2
3 import java.lang.IllegalArgumentException;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import org.melati.poem.PoemTypeFactory;
8
9
10
11
12
13
14
15 public enum PoemGvisType {
16 TROID(PoemTypeFactory.TROID.getCode()) {
17 @Override
18 public
19 String gvisJsonTypeName() {
20 return "number";
21 }
22
23 @Override
24 public
25 String jsonValue(Object value) {
26 if (value == null )
27 return "null";
28 else
29 return "\"" + value.toString() + "\"";
30 }
31 },
32 DELETED(PoemTypeFactory.DELETED.getCode()) {
33 @Override
34 public
35 String gvisJsonTypeName() {
36 return "boolean";
37 }
38 public String jsonValue(Object value) {
39 if (value == null )
40 return "null";
41 else
42 return value.toString();
43 }
44 },
45 TYPE(PoemTypeFactory.TYPE.getCode()) {
46 @Override
47 public
48 String gvisJsonTypeName() {
49 return "number";
50 }
51 },
52
53
54 BOOLEAN(PoemTypeFactory.BOOLEAN.getCode()) {
55 @Override
56 public
57 String gvisJsonTypeName() {
58 return "boolean";
59 }
60 },
61 INTEGER(PoemTypeFactory.INTEGER.getCode()) {
62 @Override
63 public
64 String gvisJsonTypeName() {
65 return "number";
66 }
67
68 @Override
69 public
70 String jsonValue(Object value) {
71 if (value == null )
72 return "null";
73 else
74 return value.toString();
75 }
76 },
77 DOUBLE(PoemTypeFactory.DOUBLE.getCode()) {
78 @Override
79 public
80 String gvisJsonTypeName() {
81 return "number";
82 }
83 @Override
84 public String jsonValue(Object value) {
85 if (value == null )
86 return "null";
87 else
88 return value.toString();
89 }
90 },
91 LONG(PoemTypeFactory.LONG.getCode()) {
92 @Override
93 public
94 String gvisJsonTypeName() {
95 return "number";
96 }
97 @Override
98 public String jsonValue(Object value) {
99 if (value == null )
100 return "null";
101 else
102 return value.toString();
103 }
104 },
105 BIGDECIMAL(PoemTypeFactory.BIGDECIMAL.getCode()) {
106 @Override
107 public
108 String gvisJsonTypeName() {
109 return "number";
110 }
111 @Override
112 public String jsonValue(Object value) {
113 if (value == null )
114 return "null";
115 else
116 return value.toString();
117 }
118 },
119 STRING(PoemTypeFactory.STRING.getCode()) {
120 @Override
121 public
122 String gvisJsonTypeName() {
123 return "string";
124 }
125 },
126 PASSWORD(PoemTypeFactory.PASSWORD.getCode()) {
127 @Override
128 public
129 String gvisJsonTypeName() {
130 return "string";
131 }
132 },
133 DATE(PoemTypeFactory.DATE.getCode()) {
134 @Override
135 public
136 String gvisJsonTypeName() {
137 return "date";
138 }
139 },
140 TIMESTAMP(PoemTypeFactory.TIMESTAMP.getCode()) {
141 @Override
142 public
143 String gvisJsonTypeName() {
144 return "datetime";
145 }
146 },
147 TIME(PoemTypeFactory.TIME.getCode()) {
148 @Override
149 public
150 String gvisJsonTypeName() {
151 return "timeofday";
152 }
153 },
154 BINARY(PoemTypeFactory.BINARY.getCode()) {
155 @Override
156 public
157 String gvisJsonTypeName() {
158 throw new IllegalArgumentException("Binary poem type cannot be exported to google viualisation API.");
159 }
160 },
161
162
163 DISPLAYLEVEL(PoemTypeFactory.DISPLAYLEVEL.getCode()) {
164 @Override
165 public
166 String gvisJsonTypeName() {
167 return "number";
168 }
169 },
170 SEARCHABILITY(PoemTypeFactory.SEARCHABILITY.getCode()) {
171 @Override
172 public
173 String gvisJsonTypeName() {
174 return "number";
175 }
176 },
177 INTEGRITYFIX(PoemTypeFactory.INTEGRITYFIX.getCode()) {
178 @Override
179 public
180 String gvisJsonTypeName() {
181 return "number";
182 }
183 };
184
185 final Integer poemType;
186 PoemGvisType(Integer poemType) {
187 this.poemType = poemType;
188 }
189
190 public Integer getPoemType(){
191 return poemType;
192 }
193 public PoemTypeFactory getPeomTypeFactory() {
194 return PoemTypeFactory.forCode(null, poemType);
195 }
196
197 public abstract String gvisJsonTypeName();
198
199 public String jsonValue(Object value) {
200 if (value == null )
201 return "null";
202 else
203 return "\"" + value.toString() + "\"";
204 }
205
206 public static PoemGvisType from(Integer poemType){
207 return typeCodeToPoemGvisType.get(poemType);
208 }
209 private static Map<Integer, PoemGvisType> typeCodeToPoemGvisType;
210 static {
211 typeCodeToPoemGvisType = new HashMap<Integer,PoemGvisType>();
212 for (PoemGvisType type : PoemGvisType.values()) {
213 typeCodeToPoemGvisType.put(type.poemType, type);
214 }
215 }
216
217 }