List of usage examples for org.apache.commons.beanutils DynaBean get
public Object get(String name);
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(); } }