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

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

Introduction

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

Prototype

public Object get(String name);

Source Link

Document

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

Usage

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

/**
 * Tests increasing the scale of a column.
 *//* w  w  w . j  a v a  2s  . c o m*/
public void testColumnIncreaseScale() {
    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='DECIMAL' size='10,4' 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='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='avalue' type='DECIMAL' size='10,5' required='true'/>\n" + "  </table>\n"
            + "</database>";

    createDatabase(model1Xml);

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

    alterDatabase(model2Xml);

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

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

    assertEquals(new Integer(1), bean, "pk");
    // Some DBs return the BigDecimal with the five digits scale, some don't
    assertTrue(bean.get("avalue").equals(new BigDecimal("12345.1234"))
            || bean.get("avalue").equals(new BigDecimal("12345.12340")));
}

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

/**
 * Tests increasing the scale of a primary key column.
 *//*  w ww.j  a va 2  s. c o  m*/
public void testPKColumnIncreaseScale() {
    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='NUMERIC' size='10,3' 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='NUMERIC' size='10,5' primaryKey='true' required='true'/>\n"
            + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

    insertRow("roundtrip", new Object[] { new BigDecimal("12345.123") });

    alterDatabase(model2Xml);

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

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

    // Some DBs return the BigDecimal with the three digits scale, some don't
    assertTrue(bean.get("pk").equals(new BigDecimal("12345.123"))
            || bean.get("pk").equals(new BigDecimal("12345.12300")));
}

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

/**
 * Tests increasing the scale of PK and FK columns.
 *//*from www . ja  v  a 2 s  . com*/
public void testPKAndFKColumnIncreaseScale() {
    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='DECIMAL' size='11,2' 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='DECIMAL' size='11,2' 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='DECIMAL' size='11,5' 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='DECIMAL' size='11,5' 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 BigDecimal("123456.12") });
    insertRow("roundtrip2", new Object[] { new Integer(1), new BigDecimal("123456.12") });

    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 DBs return the BigDecimal with the three digits scale, some don't
    assertTrue(bean1.get("pk").equals(new BigDecimal("123456.12"))
            || bean1.get("pk").equals(new BigDecimal("123456.12000")));
    assertEquals(new Integer(1), beans2.get(0), "pk");
    assertTrue(bean2.get("fk").equals(new BigDecimal("123456.12"))
            || bean2.get("fk").equals(new BigDecimal("123456.12000")));
}

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

/**
 * Tests increasing the scale of an indexed column.
 *///from   www.j  a  v  a  2 s .com
public void testIndexColumnIncreaseScale() {
    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='NUMERIC' size='11,2'/>\n"
            + "    <column name='avalue2' type='INTEGER'/>\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='NUMERIC' size='11,5'/>\n"
            + "    <column name='avalue2' type='INTEGER'/>\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 BigDecimal("123456.12"), new Integer(2) });

    alterDatabase(model2Xml);

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

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

    assertEquals(new Integer(1), bean, "pk");
    assertEquals(new Integer(2), bean, "avalue2");
    assertTrue(new BigDecimal("123456.12").equals(bean.get("avalue1"))
            || new BigDecimal("123456.12000").equals(bean.get("avalue1")));
}

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

/**
 * Tests increasing the scale of an indexed column.
 *///  w ww.  ja v a  2  s  .c  om
public void testUniqueIndexColumnIncreaseScale() {
    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='INTEGER'/>\n"
            + "    <column name='avalue2' type='DECIMAL' size='11,2'/>\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='INTEGER'/>\n"
            + "    <column name='avalue2' type='DECIMAL' size='11,5'/>\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 Integer(2), new BigDecimal("123456.12") });

    alterDatabase(model2Xml);

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

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

    assertEquals(new Integer(1), bean, "pk");
    assertEquals(new Integer(2), bean, "avalue1");
    assertTrue(new BigDecimal("123456.12").equals(bean.get("avalue2"))
            || new BigDecimal("123456.12000").equals(bean.get("avalue2")));
}

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

/**
 * Tests making an indexed column required.
 *///from w  ww  .  j  av  a2s  .  co m
public void testUniqueIndexColumnMakeRequired() {
    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='INTEGER'/>\n"
            + "    <column name='avalue2' type='CHAR' size='16'/>\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='INTEGER'/>\n"
            + "    <column name='avalue2' type='CHAR' size='20' required='true'/>\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 Integer(2), "text" });

    alterDatabase(model2Xml);

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

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

    assertEquals(new Integer(1), bean, "pk");
    assertEquals(new Integer(2), bean, "avalue1");
    assertEquals((Object) "text", ((String) bean.get("avalue2")).trim());
}

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

/**
 * Tests making an indexed column no longer required.
 *//*from  w w  w .j av a 2  s.  co m*/
public void testUniqueIndexColumnUnmakeRequired() {
    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='INTEGER' required='true'/>\n"
            + "    <column name='avalue2' type='CHAR' size='16'/>\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='INTEGER'/>\n"
            + "    <column name='avalue2' type='CHAR' size='20'/>\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 Integer(2), "text" });

    alterDatabase(model2Xml);

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

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

    assertEquals(new Integer(1), bean, "pk");
    assertEquals(new Integer(2), bean, "avalue1");
    assertEquals((Object) "text", ((String) bean.get("avalue2")).trim());
}

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

/**
 * Tests removing the default value of a primary key column.
 *///from   ww  w  . ja  v a2  s .  co  m
public void testPKColumnRemoveDefault() {
    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='NUMERIC' size='12,2' primaryKey='true' required='true' default='2'/>\n"
            + "    <column name='avalue' type='INTEGER'/>\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='NUMERIC' size='12,2' primaryKey='true' required='true' default='2.20'/>\n"
            + "    <column name='avalue' type='INTEGER'/>\n" + "  </table>\n" + "</database>";

    createDatabase(model1Xml);

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

    alterDatabase(model2Xml);

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

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

    // Some DBs return the BigDecimal with the two digits scale, some don't
    assertTrue(bean.get("pk").equals(new BigDecimal("2")) || bean.get("pk").equals(new BigDecimal("2.00")));
    assertEquals(new Integer(1), bean, "avalue");
}

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

/**
 * Tests reading the data from XML.//from  w ww.ja va2s.c o  m
 */
public void testRead() throws Exception {
    Database model = readModel("<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='bookstore'>\n" + "  <table name='author'>\n"
            + "    <column name='author_id' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='name' type='VARCHAR' size='50' required='true'/>\n"
            + "    <column name='organisation' type='VARCHAR' size='50' required='false'/>\n" + "  </table>\n"
            + "  <table name='book'>\n"
            + "    <column name='book_id' type='INTEGER' required='true' primaryKey='true' autoIncrement='true'/>\n"
            + "    <column name='isbn' type='VARCHAR' size='15' required='true'/>\n"
            + "    <column name='author_id' type='INTEGER' required='true'/>\n"
            + "    <column name='title' type='VARCHAR' size='255' default='N/A' required='true'/>\n"
            + "    <column name='issue_date' type='DATE' required='false'/>\n"
            + "    <foreign-key foreignTable='author'>\n"
            + "      <reference local='author_id' foreign='author_id'/>\n" + "    </foreign-key>\n"
            + "    <index name='book_isbn'>\n" + "      <index-column name='isbn'/>\n" + "    </index>\n"
            + "  </table>\n" + "</database>");
    List beans = readBeans(model, "<data>\n" + "  <author author_id='1' name='Ernest Hemingway'/>\n"
            + "  <author author_id='2' name='William Shakespeare'/>\n" + "  <book book_id='1' author_id='1'>\n"
            + "    <isbn>0684830493</isbn>\n" + "    <title>Old Man And The Sea</title>\n"
            + "    <issue_date>1952</issue_date>\n" + "  </book>\n" + "  <book book_id='2' author_id='2'>\n"
            + "    <isbn>0198321465</isbn>\n" + "    <title>Macbeth</title>\n"
            + "    <issue_date>1606</issue_date>\n" + "  </book>\n" + "  <book book_id='3' author_id='2'>\n"
            + "    <isbn>0140707026</isbn>\n" + "    <title>A Midsummer Night's Dream</title>\n"
            + "    <issue_date>1595</issue_date>\n" + "  </book>\n" + "</data>");

    assertEquals(5, beans.size());

    DynaBean obj1 = (DynaBean) beans.get(0);
    DynaBean obj2 = (DynaBean) beans.get(1);
    DynaBean obj3 = (DynaBean) beans.get(2);
    DynaBean obj4 = (DynaBean) beans.get(3);
    DynaBean obj5 = (DynaBean) beans.get(4);

    assertEquals("author", obj1.getDynaClass().getName());
    assertEquals("1", obj1.get("author_id").toString());
    assertEquals("Ernest Hemingway", obj1.get("name").toString());
    assertEquals("author", obj2.getDynaClass().getName());
    assertEquals("2", obj2.get("author_id").toString());
    assertEquals("William Shakespeare", obj2.get("name").toString());
    assertEquals("book", obj3.getDynaClass().getName());
    assertEquals("1", obj3.get("book_id").toString());
    assertEquals("1", obj3.get("author_id").toString());
    assertEquals("0684830493", obj3.get("isbn").toString());
    assertEquals("Old Man And The Sea", obj3.get("title").toString());
    assertEquals("1952-01-01", obj3.get("issue_date").toString()); // parsed as a java.sql.Date
    assertEquals("book", obj4.getDynaClass().getName());
    assertEquals("2", obj4.get("book_id").toString());
    assertEquals("2", obj4.get("author_id").toString());
    assertEquals("0198321465", obj4.get("isbn").toString());
    assertEquals("Macbeth", obj4.get("title").toString());
    assertEquals("1606-01-01", obj4.get("issue_date").toString()); // parsed as a java.sql.Date
    assertEquals("book", obj5.getDynaClass().getName());
    assertEquals("3", obj5.get("book_id").toString());
    assertEquals("2", obj5.get("author_id").toString());
    assertEquals("0140707026", obj5.get("isbn").toString());
    assertEquals("A Midsummer Night's Dream", obj5.get("title").toString());
    assertEquals("1595-01-01", obj5.get("issue_date").toString()); // parsed as a java.sql.Date
}

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

/**
 * Tests reading the data from a file via the {#link {@link DataReader#read(String)} method.
 *//*w  w w.j  a va  2s .  c  om*/
public void testReadFromFile1() throws Exception {
    Database model = readModel("<?xml version='1.0' encoding='ISO-8859-1'?>\n" + "<database xmlns='"
            + DatabaseIO.DDLUTILS_NAMESPACE + "' name='test'>\n" + "  <table name='test'>\n"
            + "    <column name='id' type='INTEGER' primaryKey='true' required='true'/>\n"
            + "    <column name='value' type='VARCHAR' size='50' required='true'/>\n" + "  </table>\n"
            + "</database>");
    String testDataXml = "<data>\n" + "  <test id='1' value='foo'/>\n" + "</data>";

    File tmpFile = File.createTempFile("data", ".xml");

    try {
        Writer writer = new BufferedWriter(new FileWriter(tmpFile));

        writer.write(testDataXml);
        writer.close();

        ArrayList beans = new ArrayList();
        DataReader dataReader = new DataReader();

        dataReader.setModel(model);
        dataReader.setSink(new TestDataSink(beans));
        dataReader.read(tmpFile.getAbsolutePath());

        assertEquals(1, beans.size());

        DynaBean obj = (DynaBean) beans.get(0);

        assertEquals("test", obj.getDynaClass().getName());
        assertEquals("1", obj.get("id").toString());
        assertEquals("foo", obj.get("value").toString());
    } finally {
        tmpFile.delete();
    }
}