KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > framework > BeanUtilsProvider


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.framework;
5
6 import java.io.IOException JavaDoc;
7 import java.io.InputStream JavaDoc;
8 import java.util.Enumeration JavaDoc;
9 import java.util.Properties JavaDoc;
10
11 import org.apache.commons.beanutils.BeanUtilsBean;
12 import org.apache.commons.beanutils.ConvertUtilsBean;
13 import org.apache.commons.beanutils.Converter;
14 import org.apache.commons.beanutils.PropertyUtilsBean;
15 import org.oddjob.arooa.ArooaException;
16
17 public class BeanUtilsProvider {
18
19     public static BeanUtilsBean beanFor(String JavaDoc classDefFileName) {
20         Properties JavaDoc props = new Properties JavaDoc();
21         try {
22             InputStream JavaDoc in = BeanUtilsProvider.class.getResourceAsStream(classDefFileName);
23             if (in == null) {
24                     throw new ArooaException("No resource [" + classDefFileName + "]");
25             }
26             props.load(in);
27             in.close();
28             return beanFor(props);
29         } catch (IOException JavaDoc e) {
30             throw new RuntimeException JavaDoc(e);
31         }
32     }
33     
34     public static BeanUtilsBean beanFor(Properties JavaDoc properties) {
35         BeanUtilsBean beanUtilsBean = new BeanUtilsBean(
36                 new ConvertUtilsBean(), new PropertyUtilsBean());
37         try {
38             for (Enumeration JavaDoc e = properties.keys() ; e.hasMoreElements() ;) {
39                 String JavaDoc key = (String JavaDoc)e.nextElement();
40                 String JavaDoc val = (String JavaDoc)properties.get(key);
41                 Class JavaDoc converterClass = Class.forName(key);
42                 Converter converter = (Converter) converterClass.newInstance();
43                 Class JavaDoc converterFor = Class.forName(val);
44                 beanUtilsBean.getConvertUtils().register(converter, converterFor);
45             }
46             return beanUtilsBean;
47         } catch (ClassNotFoundException JavaDoc e) {
48             throw new RuntimeException JavaDoc(e);
49         } catch (IllegalAccessException JavaDoc e) {
50             throw new RuntimeException JavaDoc(e);
51         } catch (InstantiationException JavaDoc e) {
52             throw new RuntimeException JavaDoc(e);
53         }
54     }
55 }
56
Popular Tags