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

/**
 * Tests reading the data from a file via the {#link {@link DataReader#read(File)} method.
 *//* ww  w.j  a  va2 s .  c o  m*/
public void testReadFromFile2() 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);

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

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

/**
 * Tests reading the data from a file via the {#link {@link DataReader#read(java.io.InputStream)} method.
 *///from  w ww.ja  v  a  2  s .  com
public void testReadFromFile3() 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(new FileInputStream(tmpFile));

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

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

/**
 * Tests sub elements for columns./*from  w w w  . ja  v a 2  s  .  c  o  m*/
 */
public void testSubElements() 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>");
    List beans = readBeans(model,
            "<data>\n" + "  <test id='1'>\n" + "    <value>foo</value>\n" + "  </test>\n"
                    + "  <test id='2' value='foo'>\n" + "    <value>bar</value>\n" + "  </test>\n"
                    + "  <test id='3' value='baz'>\n" + "  </test>\n" + "</data>");

    assertEquals(3, 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());

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

    assertEquals("test", obj.getDynaClass().getName());
    assertEquals("2", obj.get("id").toString());
    assertEquals("bar", obj.get("value").toString());

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

    assertEquals("test", obj.getDynaClass().getName());
    assertEquals("3", obj.get("id").toString());
    assertEquals("baz", obj.get("value").toString());
}

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

/**
 * Tests that the name of the root element does not matter.
 *//*from  w ww.j  ava 2  s.  co m*/
public void testRootElementNameDoesntMatter() 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>");
    List beans = readBeans(model,
            "<someRandomName>\n" + "  <test id='1' value='foo'/>\n" + "</someRandomName>");

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

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

/**
 * Tests that elements for undefined tables are ignored.
 *//*from  w w w .  j  av  a 2s  .c  om*/
public void testElementForUndefinedTable() 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>");
    List beans = readBeans(model, "<data>\n" + "  <test id='1' value='foo'/>\n"
            + "  <other id='2' value='bar'/>\n" + "  <test id='3' value='baz'/>\n" + "</data>");

    assertEquals(2, 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());

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

    assertEquals("test", obj.getDynaClass().getName());
    assertEquals("3", obj.get("id").toString());
    assertEquals("baz", obj.get("value").toString());
}

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

/**
 * Tests that attributes for which no column is defined, are ignored.
 *//*from  www .j a  v a2  s  . co m*/
public void testAttributeForUndefinedColumn() 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>");
    List beans = readBeans(model, "<data>\n" + "  <test id='1' value1='foo'/>\n" + "</data>");

    assertEquals(1, beans.size());

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

    assertEquals("test", obj.getDynaClass().getName());
    assertEquals("1", obj.get("id").toString());
    assertNull(obj.get("value"));
}

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

/**
 * Tests that sub elements for which no column is defined, are ignored.
 *///from www. j  a  v  a 2s . c o  m
public void testSubElementForUndefinedColumn() 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>");
    List beans = readBeans(model,
            "<data>\n" + "  <test id='1'>\n" + "    <value2>foo</value2>\n" + "  </test>\n" + "</data>");

    assertEquals(1, beans.size());

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

    assertEquals("test", obj.getDynaClass().getName());
    assertEquals("1", obj.get("id").toString());
    assertNull(obj.get("value"));
}

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

/**
 * Tests parsing when case sensitivity is turned on.
 *///from  w  w w .  j  a  v  a2s  .  c  om
public void testCaseSensitivityTurnedOn() 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" + "  <Test Id='2' value='baz'/>\n"
            + "</data>";

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

    dataReader.setCaseSensitive(true);
    dataReader.setModel(model);
    dataReader.setSink(new TestDataSink(beans));
    dataReader.read(new StringReader(testDataXml));

    assertEquals(1, beans.size());

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

    assertEquals("Test", obj.getDynaClass().getName());
    assertEquals("2", obj.get("Id").toString());
    assertNull(obj.get("Value"));
}

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

/**
 * Tests parsing when case sensitivity is turned off.
 *//*  www  .j  a  v a 2 s  .  co m*/
public void testCaseSensitivityTurnedOff() 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" + "  <Test Id='2' value='bar'/>\n"
            + "  <Test id='3' Value='baz'/>\n" + "</data>";

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

    dataReader.setCaseSensitive(false);
    dataReader.setModel(model);
    dataReader.setSink(new TestDataSink(beans));
    dataReader.read(new StringReader(testDataXml));

    assertEquals(3, 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());

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

    assertEquals("Test", obj.getDynaClass().getName());
    assertEquals("2", obj.get("Id").toString());
    assertEquals("bar", obj.get("Value").toString());

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

    assertEquals("Test", obj.getDynaClass().getName());
    assertEquals("3", obj.get("Id").toString());
    assertEquals("baz", obj.get("Value").toString());
}

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

/**
 * Returns all properties where the column is not non-autoincrement and for which the bean
 * either has a value or the column hasn't got a default value, for the given dyna class.
 * /*from ww w .ja va2s .  c  o m*/
 * @param model     The database model
 * @param dynaClass The dyna class
 * @param bean      The bean
 * @return The properties
 */
private SqlDynaProperty[] getPropertiesForInsertion(Database model, SqlDynaClass dynaClass,
        final DynaBean bean) {
    SqlDynaProperty[] properties = dynaClass.getSqlDynaProperties();

    Collection result = CollectionUtils.select(Arrays.asList(properties), new Predicate() {
        public boolean evaluate(Object input) {
            SqlDynaProperty prop = (SqlDynaProperty) input;

            if (bean.get(prop.getName()) != null) {
                // we ignore properties for which a value is present in the bean
                // only if they are identity and identity override is off or
                // the platform does not allow the override of the auto-increment
                // specification
                return !prop.getColumn().isAutoIncrement()
                        || (isIdentityOverrideOn() && getPlatformInfo().isIdentityOverrideAllowed());
            } else {
                // we also return properties without a value in the bean
                // if they ain't auto-increment and don't have a default value
                // in this case, a NULL is inserted
                return !prop.getColumn().isAutoIncrement() && (prop.getColumn().getDefaultValue() == null);
            }
        }
    });

    return (SqlDynaProperty[]) result.toArray(new SqlDynaProperty[result.size()]);
}