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.DataToDatabaseSink.java

/**
 * Updates the values of the columns constituting the indicated foreign key with the values
 * of the given identity./* w  w  w .j  a  va2 s . c  o  m*/
 * 
 * @param bean     The bean whose columns shall be updated
 * @param fkName   The name of the foreign key
 * @param identity The target identity
 */
private void updateFKColumns(DynaBean bean, String fkName, Identity identity) {
    Table sourceTable = ((SqlDynaClass) bean.getDynaClass()).getTable();
    Table targetTable = identity.getTable();
    ForeignKey fk = null;

    for (int idx = 0; idx < sourceTable.getForeignKeyCount(); idx++) {
        ForeignKey curFk = sourceTable.getForeignKey(idx);

        if (curFk.getForeignTableName().equalsIgnoreCase(targetTable.getName())) {
            if (fkName.equals(getFKName(sourceTable, curFk))) {
                fk = curFk;
                break;
            }
        }
    }
    if (fk != null) {
        for (int idx = 0; idx < fk.getReferenceCount(); idx++) {
            Reference curRef = fk.getReference(idx);
            Column sourceColumn = curRef.getLocalColumn();
            Column targetColumn = curRef.getForeignColumn();

            bean.set(sourceColumn.getName(), identity.getColumnValue(targetColumn.getName()));
        }
    }
}

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

/**
 * Inserts a row into the designated table.
 * //  w w w  . j a v a2 s .  c  om
 * @param tableName    The name of the table (case insensitive)
 * @param columnValues The values for the columns in order of definition
 */
protected void 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);
}

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

/**
 * Tests the alteration of a column datatype.
 *///from  ww  w . j ava 2s.  c  o m
public void testChangeDatatype2() {
    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='avalue' type='SMALLINT' required='true'/>\n" + "  </table>\n" + "</database>";
    final String model2Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='avalue' type='VARCHAR' size='20' required='true'/>\n" + "  </table>\n"
            + "</database>";

    createDatabase(model1Xml);

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

    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("avalue") instanceof String) {
        bean.set("avalue", ((String) bean.get("avalue")).trim());
    }
    assertEquals((Object) "2", beans.get(0), "avalue");
}

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

/**
 * Tests the alteration of the datatypes of PK and FK columns.
 *//*from w  ww.  j a v a2s  . c  om*/
public void testChangePKAndFKDatatypes() {
    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='INTEGER' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\n" + "  </table>\n" + "</database>";
    final String model2Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='VARCHAR' size='128' primaryKey='true' required='true'/>\n"
            + "  </table>\n" + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='VARCHAR' size='128' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip1", new Object[] { new Integer(1) });
    insertRow("roundtrip2", new Object[] { new Integer(1), new Integer(1) });

    alterDatabase(model2Xml);

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

    List beans = getRows("roundtrip2");
    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("fk") instanceof String) {
        bean.set("fk", ((String) bean.get("fk")).trim());
    }
    assertEquals((Object) "1", bean, "fk");
}

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

/**
 * Tests the alteration of the datatypes of columns of a PK and FK that
 * will be dropped./*from w  w w.j  av  a2  s  .  c  om*/
 */
public void testChangeDroppedPKAndFKDatatypes() {
    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='INTEGER' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\n" + "  </table>\n" + "</database>";
    final String model2Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"
            + "<database name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='VARCHAR' primaryKey='false' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='VARCHAR' required='false'/>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip1", new Object[] { new Integer(1) });
    insertRow("roundtrip2", new Object[] { new Integer(1), new Integer(1) });

    alterDatabase(model2Xml);

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

    List beans = getRows("roundtrip2");
    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("fk") instanceof String) {
        bean.set("fk", ((String) bean.get("fk")).trim());
    }
    assertEquals((Object) "1", bean, "fk");
}

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

/**
 * Tests the alteration of a column datatype change from smallint to varchar.
 *///from w  w  w  . j  av a 2  s.co  m
public void testColumnTypeSmallintToVarchar() {
    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='avalue' type='SMALLINT'/>\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='avalue' type='VARCHAR' size='20'/>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

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

    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("avalue") instanceof String) {
        bean.set("avalue", ((String) bean.get("avalue")).trim());
    }
    assertEquals(new Integer(1), beans.get(0), "pk");
    assertEquals((Object) "2", beans.get(0), "avalue");
}

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

/**
 * Tests the alteration of a pk column datatype change from integer to varchar.
 *//*from  w w  w . j a v a2 s .  c om*/
public void testPKColumnTypeIntegerToVarchar() {
    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" + "  </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='VARCHAR' size='20' primaryKey='true' required='true'/>\n"
            + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip", new Object[] { new Integer(1) });

    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("pk") instanceof String) {
        bean.set("pk", ((String) bean.get("pk")).trim());
    }
    assertEquals((Object) "1", beans.get(0), "pk");
}

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

/**
 * Tests the change of the datatypes of PK and FK columns from integer to varchar.
 *///  w ww . jav  a2  s . co m
public void testPKAndFKColumnTypesIntegerToVarchar() {
    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='INTEGER' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\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='roundtrip1'>\n"
            + "    <column name='pk' type='VARCHAR' size='128' primaryKey='true' required='true'/>\n"
            + "  </table>\n" + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='VARCHAR' size='128' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip1", new Object[] { new Integer(1) });
    insertRow("roundtrip2", new Object[] { new Integer(1), new Integer(1) });

    alterDatabase(model2Xml);

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

    List beans1 = getRows("roundtrip1");
    List beans2 = getRows("roundtrip2");
    DynaBean bean1 = (DynaBean) beans1.get(0);
    DynaBean bean2 = (DynaBean) beans2.get(0);

    // Some databases (e.g. DB2) pad the string for some reason, so we manually trim it
    if (bean1.get("pk") instanceof String) {
        bean1.set("pk", ((String) bean1.get("pk")).trim());
    }
    if (bean2.get("fk") instanceof String) {
        bean2.set("fk", ((String) bean2.get("fk")).trim());
    }
    assertEquals((Object) "1", bean1, "pk");
    assertEquals(new Integer(1), bean2, "pk");
    assertEquals((Object) "1", bean2, "fk");
}

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

/**
 * Tests the alteration of the datatypes of columns of a PK and FK that
 * will be dropped.//from  w ww  .j av a  2s. c  om
 */
public void testPKAndFKColumnTypesAndDropFK() {
    final String model1Xml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='roundtriptest'>\n" + "  <table name='roundtrip1'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='INTEGER' required='false'/>\n"
            + "    <foreign-key foreignTable='roundtrip1'>\n" + "      <reference local='fk' foreign='pk'/>\n"
            + "    </foreign-key>\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='roundtrip1'>\n"
            + "    <column name='pk' type='VARCHAR' primaryKey='false' required='true'/>\n" + "  </table>\n"
            + "  <table name='roundtrip2'>\n"
            + "    <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='fk' type='VARCHAR' required='false'/>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip1", new Object[] { new Integer(1) });
    insertRow("roundtrip2", new Object[] { new Integer(1), new Integer(1) });

    alterDatabase(model2Xml);

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

    List beans1 = getRows("roundtrip1");
    List beans2 = getRows("roundtrip2");
    DynaBean bean1 = (DynaBean) beans1.get(0);
    DynaBean bean2 = (DynaBean) beans2.get(0);

    // Some databases (e.g. DB2) pad the string for some reason, so we manually trim it
    if (bean1.get("pk") instanceof String) {
        bean1.set("pk", ((String) bean1.get("pk")).trim());
    }
    if (bean2.get("fk") instanceof String) {
        bean2.set("fk", ((String) bean2.get("fk")).trim());
    }
    assertEquals((Object) "1", bean1, "pk");
    assertEquals(new Integer(1), bean2, "pk");
    assertEquals((Object) "1", bean2, "fk");
}

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

/**
 * Tests the alteration of an indexed column datatype change from smallint to varchar.
 *///from ww  w  . ja va  2  s.  c o m
public void testIndexColumnTypeSmallintToVarchar() {
    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"
            + "    <index name='testindex'>\n" + "      <index-column name='avalue1'/>\n"
            + "      <index-column name='avalue2'/>\n" + "    </index>\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" + "    <index name='testindex'>\n"
            + "      <index-column name='avalue1'/>\n" + "      <index-column name='avalue2'/>\n"
            + "    </index>\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");
}