Example usage for org.apache.commons.beanutils DynaClass newInstance

List of usage examples for org.apache.commons.beanutils DynaClass newInstance

Introduction

In this page you can find the example usage for org.apache.commons.beanutils DynaClass newInstance.

Prototype

public DynaBean newInstance() throws IllegalAccessException, InstantiationException;

Source Link

Document

Instantiate and return a new DynaBean instance, associated with this DynaClass.

Usage

From source file:DynaBeansExampleV1.java

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;
}

From source file:com.feilong.core.bean.BeanUtilTemp.java

/**
 *  dyna bean.//from w  ww .j a v a 2s  .  co  m
 * 
 * <h3>:</h3>
 * 
 * <blockquote>
 * 
 * <pre class="code">
 * 
 * Map{@code <String, Class<?>>} typeMap = new HashMap<>();
 * typeMap.put("address", java.util.Map.class);
 * typeMap.put("firstName", String.class);
 * typeMap.put("lastName", String.class);
 * 
 * Map{@code <String, Object>} valueMap = new HashMap<>();
 * valueMap.put("address", new HashMap());
 * valueMap.put("firstName", "Fred");
 * valueMap.put("lastName", "Flintstone");
 * 
 * DynaBean dynaBean = BeanUtil.newDynaBean(typeMap, valueMap);
 * LOGGER.debug(JsonUtil.format(dynaBean));
 * 
 * </pre>
 * 
 * <b>:</b>
 * 
 * <pre class="code">
 * {
 *         "lastName": "Flintstone",
 *         "address": {},
 *         "firstName": "Fred"
 *     }
 * </pre>
 * 
 * </blockquote>
 *
 * @param typeMap
 *            ??  map
 * @param valueMap
 *            ??   map
 * @return the dyna bean
 * @throws NullPointerException
 *              <code>typeMap </code>  <code>valueMap</code> null
 * @throws IllegalArgumentException
 *              <code>typeMap.size() != valueMap.size()</code>
 * @since 1.8.1 change name
 */
public static DynaBean newDynaBean(Map<String, Class<?>> typeMap, Map<String, Object> valueMap) {
    Validate.notNull(typeMap, "typeMap can't be null!");
    Validate.notNull(valueMap, "valueMap can't be null!");
    Validate.isTrue(typeMap.size() == valueMap.size(), "typeMap size:[%s] != valueMap size:[%s]",
            typeMap.size(), valueMap.size());

    //*********************************************************************************
    try {
        DynaClass dynaClass = new BasicDynaClass(null, null, toDynaPropertyArray(typeMap));

        DynaBean dynaBean = dynaClass.newInstance();
        for (Map.Entry<String, Object> entry : valueMap.entrySet()) {
            dynaBean.set(entry.getKey(), entry.getValue());
        }
        return dynaBean;
    } catch (IllegalAccessException | InstantiationException e) {
        LOGGER.error("", e);
        throw new BeanUtilException(e);
    }
}

From source file:com.xpfriend.fixture.cast.temp.Database.java

private DbResult executeQuery(DbCommand command) throws SQLException {
    command.printSQL();//from  w w w .  j  av  a2 s.  com
    ResultSet resultSet = command.executeQuery();
    DynaClass dynaClass = getDynaClass(resultSet);

    List<DynaBean> list = new ArrayList<DynaBean>();
    ColumnValueConverter converter = ColumnValueConverter.getInstance();
    DynaProperty[] properties = dynaClass.getDynaProperties();
    while (resultSet.next()) {
        DynaBean bean;
        try {
            bean = dynaClass.newInstance();
        } catch (Exception e) {
            throw new ConfigException(e);
        }
        for (int i = 0; i < properties.length; i++) {
            Object value = converter.getResult(resultSet, properties[i].getType(), i + 1);
            bean.set(properties[i].getName(), value);
        }
        list.add(bean);
    }
    return new DbResult(dynaClass, list);
}

From source file:org.apache.ojb.broker.metadata.PersistentFieldTest.java

public void testDynaBean() throws Exception {
    checkBoundaryConditions(PersistentFieldDynaBeanImpl.class, false);

    DynaClass dynaClass = createDynaClass();
    DynaBean bean = dynaClass.newInstance();
    bean.set("name", "testDynaBean");

    PersistentField pf = new PersistentFieldDynaBeanImpl(String.class, "name");
    String result = (String) pf.get(bean);
    assertNotNull(result);/*from w w w. j av  a  2 s . c  o  m*/
    assertEquals("testDynaBean", result);

    pf.set(bean, "XXXX");
    result = (String) pf.get(bean);
    assertNotNull(result);
    assertEquals("XXXX", result);
}

From source file:org.apache.ojb.broker.metadata.PersistentFieldTest.java

public void testAutoProxyWithDyna() throws Exception {
    DynaClass dynaClass = createDynaClass();
    DynaBean bean = dynaClass.newInstance();
    bean.set("name", "testDynaBean");

    PersistentField pf = new PersistentFieldAutoProxyImpl(String.class, "name");
    String result = (String) pf.get(bean);
    assertNotNull(result);//from  w  w w. jav a2  s .  co m
    assertEquals("testDynaBean", result);

    pf.set(bean, "XXXX");
    result = (String) pf.get(bean);
    assertNotNull(result);
    assertEquals("XXXX", result);
}

From source file:org.apache.struts2.s1.DynaBeanPropertyAccessorTest.java

/**
 * Set up instance variables required by this test case.
 *///from www .  j ava 2  s  . c o  m
public void setUp() throws Exception {

    // Instantiate a new DynaBean instance
    DynaClass dynaClass = createDynaClass();
    bean = dynaClass.newInstance();

    // Initialize the DynaBean's property values (like TestBean)
    bean.set("booleanProperty", new Boolean(true));
    bean.set("booleanSecond", new Boolean(true));
    bean.set("doubleProperty", new Double(321.0));
    bean.set("floatProperty", new Float((float) 123.0));
    int intArray[] = { 0, 10, 20, 30, 40 };
    bean.set("intArray", intArray);
    int intIndexed[] = { 0, 10, 20, 30, 40 };
    bean.set("intIndexed", intIndexed);
    bean.set("intProperty", new Integer(123));
    List listIndexed = new ArrayList();
    listIndexed.add("String 0");
    listIndexed.add("String 1");
    listIndexed.add("String 2");
    listIndexed.add("String 3");
    listIndexed.add("String 4");
    bean.set("listIndexed", listIndexed);
    bean.set("longProperty", new Long((long) 321));
    HashMap mappedProperty = new HashMap();
    mappedProperty.put("First Key", "First Value");
    mappedProperty.put("Second Key", "Second Value");
    bean.set("mappedProperty", mappedProperty);
    HashMap mappedIntProperty = new HashMap();
    mappedIntProperty.put("One", new Integer(1));
    mappedIntProperty.put("Two", new Integer(2));
    bean.set("mappedIntProperty", mappedIntProperty);
    // Property "nullProperty" is not initialized, so it should return null
    bean.set("shortProperty", new Short((short) 987));
    String stringArray[] = { "String 0", "String 1", "String 2", "String 3", "String 4" };
    bean.set("stringArray", stringArray);
    String stringIndexed[] = { "String 0", "String 1", "String 2", "String 3", "String 4" };
    bean.set("stringIndexed", stringIndexed);
    bean.set("stringProperty", "This is a string");

}

From source file:org.examproject.task.core.ArgumentBeanFactory.java

@Override
public Object create() {
    LOG.debug("called.");
    try {/*from w  ww  .ja  v a2 s  .  co m*/
        // create a dynaproperty array.
        DynaProperty[] props = new DynaProperty[3];

        // create a dynaproperty object.
        props[0] = new DynaProperty("count", Integer.class);
        props[1] = new DynaProperty("job", Closure.class);
        props[2] = new DynaProperty("state", DynaBean.class);

        // create a dynaclass object.
        DynaClass clazz = new BasicDynaClass("argument", BasicDynaBean.class, props);

        // create a dynabean object.
        DynaBean bean = clazz.newInstance();

        // return the dynabean object.
        return bean;

    } catch (Exception e) {
        LOG.error(e.getMessage());
        throw new RuntimeException(e);
    }
}

From source file:org.examproject.task.core.ParamBeanFactory.java

@Override
public Object create() {
    LOG.debug("called.");
    try {//from   w w  w  .ja va  2  s  .  co m
        // create a dynaproperty array.
        DynaProperty[] props = new DynaProperty[1];

        // create a dynaproperty object.
        props[0] = new DynaProperty("values", Map.class);

        // create a dynaclass object.
        DynaClass clazz = new BasicDynaClass("param", BasicDynaBean.class, props);

        // create a dynabean object.
        DynaBean bean = clazz.newInstance();

        // create the values map.
        bean.set("values", new ConcurrentHashMap<String, Object>());

        // return the dynabean object.
        return bean;

    } catch (Exception e) {
        LOG.error(e.getMessage());
        throw new RuntimeException(e);
    }
}

From source file:org.examproject.task.core.ResultBeanFactory.java

@Override
public Object create() {
    LOG.debug("called.");
    try {/*from  ww w . ja  v  a  2  s  .co m*/
        // create a dynaproperty array.
        DynaProperty[] props = new DynaProperty[1];

        // create a dynaproperty object.
        props[0] = new DynaProperty("values", Map.class);

        // create a dynaclass object.
        DynaClass clazz = new BasicDynaClass("result", BasicDynaBean.class, props);

        // create a dynabean object.
        DynaBean bean = clazz.newInstance();

        // create the values map.
        bean.set("values", new ConcurrentHashMap<String, Object>());

        // return the dynabean object.
        return bean;

    } catch (Exception e) {
        LOG.error(e.getMessage());
        throw new RuntimeException(e);
    }
}

From source file:org.examproject.task.core.StateBeanFactory.java

@Override
public Object create() {
    LOG.debug("called.");
    try {//from  ww  w  .ja v  a2  s .  co  m
        // create a dynaproperty array.
        DynaProperty[] props = new DynaProperty[2];

        // create a dynaproperty object.
        props[0] = new DynaProperty("param", DynaBean.class);
        props[1] = new DynaProperty("result", DynaBean.class);

        // create a dynaclass object.
        DynaClass clazz = new BasicDynaClass("state", BasicDynaBean.class, props);

        // create a dynabean object.
        DynaBean bean = clazz.newInstance();

        // return the dynabean object.
        return bean;

    } catch (Exception e) {
        LOG.error(e.getMessage());
        throw new RuntimeException(e);
    }
}