Example usage for org.apache.commons.beanutils DynaBean set

List of usage examples for org.apache.commons.beanutils DynaBean set

Introduction

In this page you can find the example usage for org.apache.commons.beanutils DynaBean set.

Prototype

public void set(String name, Object value);

Source Link

Document

Set the value of a simple property with the specified name.

Usage

From source file:org.apache.ddlutils.io.TestChangeColumn.java

/**
 * Tests the alteration of an indexed column datatype change from smallint to varchar.
 *///  ww  w .j a v a2  s  . c  om
public void testUniqueIndexColumnTypeSmallintToVarchar() {
    if (!getPlatformInfo().isIndicesSupported()) {
        return;
    }

    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n" + "  <table name='roundtrip'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='avalue1' type='SMALLINT'/>\n" + "    <column name='avalue2' type='DOUBLE'/>\n"
            + "    <unique name='testindex'>\n" + "      <unique-column name='avalue1'/>\n"
            + "      <unique-column name='avalue2'/>\n" + "    </unique>\n" + "  </table>\n" + "</database>";
    final String model2Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n" + "  <table name='roundtrip'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='avalue1' type='VARCHAR' size='20'/>\n"
            + "    <column name='avalue2' type='DOUBLE'/>\n" + "    <unique name='testindex'>\n"
            + "      <unique-column name='avalue1'/>\n" + "      <unique-column name='avalue2'/>\n"
            + "    </unique>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip", new Object[] { new Integer(1), new Short((short) 2), new Double(3.0) });

    alterDatabase(model2Xml);

    assertEquals(getAdjustedModel(), readModelFromDatabase("roundtriptest"));

    List beans = getRows("roundtrip");
    DynaBean bean = (DynaBean) beans.get(0);

    // Some databases (e.g. DB2) pad the string for some reason, so we manually trim it
    if (bean.get("avalue1") instanceof String) {
        bean.set("avalue1", ((String) bean.get("avalue1")).trim());
    }
    assertEquals(new Integer(1), beans.get(0), "pk");
    assertEquals((Object) "2", beans.get(0), "avalue1");
    assertEquals(new Double(3.0), beans.get(0), "avalue2");
}

From source file:org.apache.ddlutils.platform.ModelBasedResultSetIterator.java

/**
 * {@inheritDoc}/*ww  w. java 2s .  com*/
 */
public Object next() throws DatabaseOperationException {
    advanceIfNecessary();
    if (_isAtEnd) {
        throw new NoSuchElementException("No more elements in the resultset");
    } else {
        try {
            DynaBean bean = _dynaClass.newInstance();
            Table table = null;

            if (bean instanceof SqlDynaBean) {
                SqlDynaClass dynaClass = (SqlDynaClass) ((SqlDynaBean) bean).getDynaClass();

                table = dynaClass.getTable();
            }

            for (Iterator it = _columnsToProperties.entrySet().iterator(); it.hasNext();) {
                Map.Entry entry = (Map.Entry) it.next();
                String columnName = (String) entry.getKey();
                String propName = (String) entry.getValue();
                Table curTable = table;

                if (curTable == null) {
                    curTable = (Table) _preparedQueryHints
                            .get(_caseSensitive ? columnName : columnName.toLowerCase());
                }

                Object value = _platform.getObjectFromResultSet(_resultSet, columnName, curTable);

                bean.set(propName, value);
            }
            _needsAdvancing = true;
            return bean;
        } catch (Exception ex) {
            cleanUp();
            throw new DatabaseOperationException("Exception while reading the row from the resultset", ex);
        }
    }
}

From source file:org.apache.ddlutils.platform.TestPlatformImplBase.java

/**
 * Test the toColumnValues method./*  ww w . ja  va2  s  .  c o  m*/
 */
public void testToColumnValues() {
    final String schema = "<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='ddlutils'>\n" + "  <table name='TestTable'>\n"
            + "    <column name='id' autoIncrement='true' type='INTEGER' primaryKey='true'/>\n"
            + "    <column name='name' type='VARCHAR' size='15'/>\n" + "  </table>\n" + "</database>";

    Database database = parseDatabaseFromString(schema);
    PlatformImplBase platform = new TestPlatform();
    Table table = database.getTable(0);
    SqlDynaClass clz = SqlDynaClass.newInstance(table);
    DynaBean db = new SqlDynaBean(SqlDynaClass.newInstance(table));

    db.set("name", "name");

    Map map = platform.toColumnValues(clz.getSqlDynaProperties(), db);

    assertEquals("name", map.get("name"));
    assertTrue(map.containsKey("id"));
}

From source file:org.apache.ddlutils.TestAgainstLiveDatabaseBase.java

/**
 * Inserts a row into the designated table.
 * // w w  w . j  av  a  2s  .  c  o  m
 * @param tableName    The name of the table (case insensitive)
 * @param columnValues The values for the columns in order of definition
 * @return The dyna bean for the row
 */
protected DynaBean insertRow(String tableName, Object[] columnValues) {
    Table table = getModel().findTable(tableName);
    DynaBean bean = getModel().createDynaBeanFor(table);

    for (int idx = 0; (idx < table.getColumnCount()) && (idx < columnValues.length); idx++) {
        Column column = table.getColumn(idx);

        bean.set(column.getName(), columnValues[idx]);
    }
    getPlatform().insert(getModel(), bean);
    return bean;
}

From source file:org.apache.ddlutils.TestAgainstLiveDatabaseBase.java

/**
 * Updates the row in the designated table.
 * // w  w w.j a  va2  s  .  com
 * @param tableName    The name of the table (case insensitive)
 * @param oldBean      The bean representing the current row
 * @param columnValues The values for the columns in order of definition
 * @return The dyna bean for the new row
 */
protected DynaBean updateRow(String tableName, DynaBean oldBean, Object[] columnValues) {
    Table table = getModel().findTable(tableName);
    DynaBean bean = getModel().createDynaBeanFor(table);

    for (int idx = 0; (idx < table.getColumnCount()) && (idx < columnValues.length); idx++) {
        Column column = table.getColumn(idx);

        bean.set(column.getName(), columnValues[idx]);
    }
    getPlatform().update(getModel(), oldBean, bean);
    return bean;
}

From source file:org.apache.ddlutils.TestAgainstLiveDatabaseBase.java

/**
 * Deletes the specified row from the table.
 * //from w ww.  ja  v  a 2s  .c o m
 * @param tableName      The name of the table (case insensitive)
 * @param pkColumnValues The values for the pk columns in order of definition
 */
protected void deleteRow(String tableName, Object[] pkColumnValues) {
    Table table = getModel().findTable(tableName);
    DynaBean bean = getModel().createDynaBeanFor(table);
    Column[] pkColumns = table.getPrimaryKeyColumns();

    for (int idx = 0; (idx < pkColumns.length) && (idx < pkColumnValues.length); idx++) {
        bean.set(pkColumns[idx].getName(), pkColumnValues[idx]);
    }
    getPlatform().delete(getModel(), bean);
}

From source file:org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDynaBeanImpl.java

public void set(Object anObject, Object aValue) throws MetadataException {
    if (anObject == null)
        return;/*from w w w.j  ava 2s.  c o  m*/
    if (anObject instanceof DynaBean) {
        DynaBean dynaBean = (DynaBean) anObject;
        try {
            dynaBean.set(getName(), aValue);
        } catch (Throwable t) {
            String msg = dynaBean.getClass().getName();
            logSetProblem(anObject, aValue, msg);
            throw new PersistenceBrokerException(t);
        }
    } else {
        String msg = "the object is not a DynaBean";
        logSetProblem(anObject, aValue, msg);
        throw new PersistenceBrokerException(msg);
    }
}

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);//  w w w.jav  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 ww . j av  a2s.com*/
    assertEquals("testDynaBean", result);

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

From source file:org.apache.struts.config.FormBeanConfig.java

/**
 * <p>Create and return an <code>ActionForm</code> instance appropriate to
 * the information in this <code>FormBeanConfig</code>.</p>
 *
 * <p>Although this method is not formally deprecated yet, where possible,
 * the form which accepts an <code>ActionContext</code> as an argument is
 * preferred, to help sever direct dependencies on the Servlet API.  As
 * the ActionContext becomes more familiar in Struts, this method will
 * almost certainly be deprecated.</p>
 *
 * @param servlet The action servlet/*from   w w  w .  j  av  a2s. c  o m*/
 * @return ActionForm instance
 * @throws IllegalAccessException if the Class or the appropriate
 *                                constructor is not accessible
 * @throws InstantiationException if this Class represents an abstract
 *                                class, an array class, a primitive type,
 *                                or void; or if instantiation fails for
 *                                some other reason
 */
public ActionForm createActionForm(ActionServlet servlet)
        throws IllegalAccessException, InstantiationException {
    Object obj = null;

    // Create a new form bean instance
    if (getDynamic()) {
        obj = getDynaActionFormClass().newInstance();
    } else {
        obj = formBeanClass().newInstance();
    }

    ActionForm form = null;

    if (obj instanceof ActionForm) {
        form = (ActionForm) obj;
    } else {
        form = new BeanValidatorForm(obj);
    }

    form.setServlet(servlet);

    if (form instanceof DynaBean && ((DynaBean) form).getDynaClass() instanceof MutableDynaClass) {
        DynaBean dynaBean = (DynaBean) form;
        MutableDynaClass dynaClass = (MutableDynaClass) dynaBean.getDynaClass();

        // Add properties
        dynaClass.setRestricted(false);

        FormPropertyConfig[] props = findFormPropertyConfigs();

        for (int i = 0; i < props.length; i++) {
            dynaClass.add(props[i].getName(), props[i].getTypeClass());
            dynaBean.set(props[i].getName(), props[i].initial());
        }

        dynaClass.setRestricted(isRestricted());
    }

    if (form instanceof BeanValidatorForm) {
        ((BeanValidatorForm) form).initialize(this);
    }

    return form;
}