Author: tchemit Date: 2012-03-07 12:35:46 +0100 (Wed, 07 Mar 2012) New Revision: 3164 Url: http://chorem.org/repositories/revision/pollen/3164 Log: Evolution #480: Change all field in model to primitive type Modified: branches/pollen-1.2.6-struts2/pollen-persistence/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_2_6.java branches/pollen-1.2.6-struts2/pollen-persistence/src/main/xmi/pollen.zargo Modified: branches/pollen-1.2.6-struts2/pollen-persistence/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_2_6.java =================================================================== --- branches/pollen-1.2.6-struts2/pollen-persistence/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_2_6.java 2012-03-06 10:39:17 UTC (rev 3163) +++ branches/pollen-1.2.6-struts2/pollen-persistence/src/main/java/org/chorem/pollen/entities/migration/PollenMigrationCallbackV1_2_6.java 2012-03-07 11:35:46 UTC (rev 3164) @@ -78,11 +78,11 @@ migrateVoteCountingTypes(tx, queries); // change all Boolean properties to boolean - migrateBoolean(tx, queries); + migrateToPrimitiveTypes(tx, queries); } - private void migrateBoolean(TopiaContextImplementor tx, - List<String> queries) throws TopiaException { + private void migrateToPrimitiveTypes(TopiaContextImplementor tx, + List<String> queries) throws TopiaException { migrateBoolean(queries, "useraccount", "administrator"); migrateBoolean(queries, "choice", "validate"); @@ -98,19 +98,38 @@ migrateBoolean(queries, "preventRule", "oneTime"); migrateBoolean(queries, "result", "byGroup"); migrateBoolean(queries, "vote", "anonymous"); + + migrateNumber(queries, "poll", "maxChoiceNb"); + migrateNumber(queries, "preventRule", "sensibility"); + + migrateNumber(queries, "PersonToList", "weight"); + migrateNumber(queries, "VotingList", "weight"); + migrateNumber(queries, "Vote", "weight"); } - public static final String UPDATE_BOOLEAN_VALUE = "UPDATE %1$s SET %2$s = false where %2$s IS NULL"; + public static final String UPDATE_PRIMITIVE_TO_DEFAULT_VALUE = "UPDATE %1$s SET %2$s = %3$s where %2$s IS NULL;"; - public static final String UPDATE_BOOLEAN_CONSTRAINST = "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL"; + public static final String ADD_PRIMITIVE_NOT_NULL_CONSTRAINST = "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL;"; + public static final String ADD_PRIMITIVE_DEFAULT_VALUE = "ALTER TABLE %s ALTER COLUMN %s SET DEFAULT %s;"; + private void migrateBoolean(List<String> queries, String tableName, String field) { - queries.add(String.format(UPDATE_BOOLEAN_VALUE, tableName, field)); - queries.add(String.format(UPDATE_BOOLEAN_CONSTRAINST, tableName, field)); + Object defaultValue = false; + queries.add(String.format(UPDATE_PRIMITIVE_TO_DEFAULT_VALUE, tableName, field, defaultValue)); + queries.add(String.format(ADD_PRIMITIVE_NOT_NULL_CONSTRAINST, tableName, field)); + queries.add(String.format(ADD_PRIMITIVE_DEFAULT_VALUE, tableName, field, defaultValue)); } + private void migrateNumber(List<String> queries, String tableName, String field) { + + Object defaultValue = 0; + queries.add(String.format(UPDATE_PRIMITIVE_TO_DEFAULT_VALUE, tableName, field, defaultValue)); + queries.add(String.format(ADD_PRIMITIVE_NOT_NULL_CONSTRAINST, tableName, field)); + queries.add(String.format(ADD_PRIMITIVE_DEFAULT_VALUE, tableName, field, defaultValue)); + } + private void migrateChoiceTypes(TopiaContextImplementor tx, List<String> queries) throws TopiaException { Modified: branches/pollen-1.2.6-struts2/pollen-persistence/src/main/xmi/pollen.zargo =================================================================== (Binary files differ)