Author: fdesbois Date: 2010-01-31 23:22:03 +0000 (Sun, 31 Jan 2010) New Revision: 300 Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerMigrationCallBack.java Log: Implement migration to 0.4 Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-31 22:44:44 UTC (rev 299) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-31 23:22:03 UTC (rev 300) @@ -394,14 +394,8 @@ } public static String readSampleRowCode(CsvReader reader) throws IOException { - String code = read(reader, SAMPLING.PLAN_CODE); - // Replace single number after year by a double one : 2010_111 -> 2010_0111 - code = code.replaceFirst("_(\\d{3})$", "_0$1"); - // Replace single number after year by a double one : 2010_11 -> 2010_0011 - code = code.replaceFirst("_(\\d{2})$", "_00$1"); - // Replace single number after year by a double one : 2010_1 -> 2010_0001 - code = code.replaceFirst("_(\\d)$", "_000$1"); - return code; + String code = read(reader, SAMPLING.PLAN_CODE); + return SuiviObsmerContext.prepareSampleRowCode(code); } public static DateFormat getContactDateFormat() { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java 2010-01-31 22:44:44 UTC (rev 299) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java 2010-01-31 23:22:03 UTC (rev 300) @@ -158,6 +158,16 @@ return ""; } + public static String prepareSampleRowCode(String code) { + // Replace single number after year by a double one : 2010_111 -> 2010_0111 + code = code.replaceFirst("_(\\d{3})$", "_0$1"); + // Replace single number after year by a double one : 2010_11 -> 2010_0011 + code = code.replaceFirst("_(\\d{2})$", "_00$1"); + // Replace single number after year by a double one : 2010_1 -> 2010_0001 + code = code.replaceFirst("_(\\d)$", "_000$1"); + return code; + } + public static <E extends TopiaEntity> boolean prepareTopiaId(Class<E> entityClass, E entity) { String topiaId = entity.getTopiaId(); if (StringUtils.isEmpty(entity.getTopiaId())) { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerMigrationCallBack.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerMigrationCallBack.java 2010-01-31 22:44:44 UTC (rev 299) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerMigrationCallBack.java 2010-01-31 23:22:03 UTC (rev 300) @@ -1,5 +1,7 @@ package fr.ifremer.suiviobsmer; +import fr.ifremer.suiviobsmer.entity.SampleRow; +import fr.ifremer.suiviobsmer.entity.SampleRowDAO; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; @@ -21,9 +23,14 @@ boolean showProgression) throws TopiaException { if (log.isInfoEnabled()) { - log.info("Migrate to version .04"); + log.info("Migrate to version 0.4"); } - //TODO + + SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(tx); + for (SampleRow row : dao.findAll()) { + String newCode = SuiviObsmerContext.prepareSampleRowCode(row.getCode()); + row.setCode(newCode); + } } @@ -31,6 +38,7 @@ public boolean askUser(Version dbVersion, Version applicationVersion, List<Version> versions) { + // Always migrate the database return true; } } \ No newline at end of file