KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mdarad > framework > util > struts > StrutsConverter


1 package org.mdarad.framework.util.struts;
2
3 import java.net.URI JavaDoc;
4 import java.util.Currency JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.Locale JavaDoc;
7 import java.util.SortedMap JavaDoc;
8 import java.util.TreeMap JavaDoc;
9
10 import org.apache.commons.beanutils.ConvertUtils;
11 import org.apache.commons.beanutils.Converter;
12 import org.apache.struts.upload.FormFile;
13 import org.dataisland.primitives.datatype.Blob;
14 import org.dataisland.primitives.format.CurrencyDataIslandFormat;
15 import org.dataisland.primitives.format.LocaleDataIslandFormat;
16 import org.dataisland.primitives.format.URIDataIslandFormat;
17
18 public class StrutsConverter implements Converter {
19
20     public Object JavaDoc convert(Class JavaDoc c, Object JavaDoc o) {
21         Object JavaDoc output = null;
22
23         if(o instanceof String JavaDoc) {
24             String JavaDoc string = (String JavaDoc) o;
25             if(c == Locale JavaDoc.class) {
26                 output = LocaleDataIslandFormat.deserialize(string);
27             } else if (c == Currency JavaDoc.class) {
28                 output = CurrencyDataIslandFormat.deserialize(string);
29             } else if (c == URI JavaDoc.class) {
30                 output = URIDataIslandFormat.deserialize(string);
31             } else if (c == Integer JavaDoc.class) {
32                 if(string != null && !"".equals(string)) {
33                     try {
34                         output = new Integer JavaDoc(string);
35                     } catch(NumberFormatException JavaDoc nfe) {
36                         // do nothing, leave null
37
}
38                 }
39             }
40         }
41
42         return output;
43     }
44
45     static public SortedMap JavaDoc convertStringMap(SortedMap JavaDoc map, SortedMap JavaDoc oldMap, Class JavaDoc c) {
46         SortedMap JavaDoc output = null;
47         if(map != null) {
48             output = new TreeMap JavaDoc(map.comparator());
49             Iterator JavaDoc keyIterator = map.keySet().iterator();
50             while(keyIterator.hasNext()) {
51                 Object JavaDoc key = keyIterator.next();
52                 Object JavaDoc value = map.get(key);
53                 if(value instanceof String JavaDoc) {
54                     value = ConvertUtils.convert((String JavaDoc) value, c);
55                 } else if(value instanceof FormFile) {
56                     value = PrimitiveToStrutsBeanFormTypeMappings.getBlobValue((Blob) oldMap.get(key), (FormFile) value);
57                 }
58                 output.put(key, value);
59             }
60         }
61         return output;
62     }
63 }
Popular Tags