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