Mega Code Archive

 
Categories / Java / Apache Common
 

BeanUtils get Property from Dynamic Beans

import org.apache.commons.beanutils.DynaBean; import org.apache.commons.beanutils.DynaClass; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.LazyDynaBean; import org.apache.commons.beanutils.DynaProperty; import org.apache.commons.beanutils.BasicDynaClass; import java.util.Map; import java.util.List; import java.util.Date; import java.util.HashMap; import java.util.GregorianCalendar; public class DynaBeansExampleV1 {   public static void main(String args[]) throws Exception {     Object movie = createMovieBean();     System.err.println(BeanUtils.getProperty(movie, "title"));     System.err.println(BeanUtils.getProperty(movie, "director.name"));   }   private static Object createMovieBean() throws Exception {     // first create the properties     DynaProperty properties[] = new DynaProperty[] {       new DynaProperty("title", String.class),       new DynaProperty("dateOfRelease", Date.class),       new DynaProperty("keywords", String[].class),       new DynaProperty("genre", Map.class),       new DynaProperty("actors", List.class),       new DynaProperty("director", DynaBean.class)     };     // next using the properties define the class     DynaClass movieClass = new BasicDynaClass("movie", null, properties);     // now, with the class, create a new instance     DynaBean movieBean = movieClass.newInstance();     // set its properties     movieBean.set("title", "The Italian Job");     movieBean.set("dateOfRelease",       new GregorianCalendar(1969, 0, 1).getTime());     movieBean.set("keywords", new String[] {"Italy", "Bank Robbery"});     Map genre = new HashMap();     genre.put("THR", "Thriller");     movieBean.set("genre", genre);     movieBean.set("genre", "ACT", "Action");     DynaBean director = createPersonBean();     director.set("name", "Peter Collinson");     director.set("gender", new Integer(1));     movieBean.set("director", director);     return movieBean;   }   private static DynaBean createPersonBean() {     DynaBean person = new LazyDynaBean();     return person;   } }                     BeanUtilsDynaBeansExampleV1.zip( 879 k)