List of usage examples for org.apache.commons.beanutils MutableDynaClass newInstance
public DynaBean newInstance() throws IllegalAccessException, InstantiationException;
From source file:io.coala.experimental.dynabean.DynaBeanTest.java
@Test public void testDynaBeans() throws Exception { // for usage, see // http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/beanutils/package-summary.html#package_description final DynaBean dynaBean = new LazyDynaBean(); // Create LazyDynaBean final MutableDynaClass dynaClass = (MutableDynaClass) dynaBean.getDynaClass(); // get DynaClass dynaClass.add("amount", java.lang.Integer.class); // add property dynaClass.add("myMap", java.util.TreeMap.class); // add mapped property final DynaBean employee = dynaClass.newInstance(); // TODO experiment with Jackson's AnnotationIntrospector to annotate // DynaBean#get(...) method with @JsonAnyGetter and #set(...) method // with @JsonAnySetter employee.set("address", new HashMap<String, String>()); employee.set("activeEmployee", Boolean.FALSE); employee.set("firstName", "Fred"); employee.set("lastName", "Flintstone"); LOG.trace("Employee: " + JsonUtil.toPrettyJSON(employee)); // set all <activeEmployee> attribute values to <true> final BeanPropertyValueChangeClosure closure = new BeanPropertyValueChangeClosure("activeEmployee", Boolean.TRUE);/*from w ww . j ava 2s. c om*/ final Collection<?> employees = Collections.singleton(employee); LOG.trace("Mutated employees: " + JsonUtil.toPrettyJSON(employees)); // update the Collection CollectionUtils.forAllDo(employees, closure); // filter for beans with <activeEmployee> set to <false> final BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate("lastName", "Flintstone"); // filter the Collection CollectionUtils.filter(employees, predicate); LOG.trace("Filtered employees: " + JsonUtil.toPrettyJSON(employees)); }