Author: bleny Date: 2014-07-29 16:59:20 +0200 (Tue, 29 Jul 2014) New Revision: 2180 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2180 Log: refs #4481 migrate all ordinals to names Modified: trunk/pom.xml trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactStateMotifImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java trunk/wao-persistence/src/main/resources/db/migration/V4_1__clean_database.sql trunk/wao-persistence/src/main/xmi/wao-model.zargo trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsVenteSamplingPlan.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlan.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/pom.xml 2014-07-29 14:59:20 UTC (rev 2180) @@ -105,9 +105,9 @@ <jqueryPluginVersion>3.7.1</jqueryPluginVersion> <bootstrapPluginVersion>1.7.0</bootstrapPluginVersion> <slf4jVersion>1.7.7</slf4jVersion> - <hibernateVersion>4.3.5.Final</hibernateVersion> + <hibernateVersion>4.3.6.Final</hibernateVersion> <mockitoVersion>1.9.5</mockitoVersion> - <postgresqlDriverVersion>9.3-1101-jdbc41</postgresqlDriverVersion> + <postgresqlDriverVersion>9.3-1102-jdbc41</postgresqlDriverVersion> <commonsEmailVersion>1.3.2</commonsEmailVersion> <mustacheVersion>0.8.15</mustacheVersion> <commonsCodecVersion>1.9</commonsCodecVersion> @@ -120,9 +120,9 @@ <nuitonConfigVersion>3.0-alpha-2</nuitonConfigVersion> <nuitonCsvVersion>3.0-rc-2</nuitonCsvVersion> <nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion> - <nuitonUtilsVersion>3.0-rc-3</nuitonUtilsVersion> - <eugeneVersion>2.11</eugeneVersion> - <topiaVersion>3.0-beta-7</topiaVersion> + <nuitonUtilsVersion>3.0-rc-4</nuitonUtilsVersion> + <eugeneVersion>2.12</eugeneVersion> + <topiaVersion>3.0-beta-8</topiaVersion> <!--Site configuration --> <locales>fr</locales> Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -138,6 +138,7 @@ return Pattern.compile("^(\\d{4})_" + obsProgram.getShortCode() + "(\\d{4})$"); } + @Deprecated public static <T extends Enum> Collection<Integer> toOrdinals(Collection<T> enums) { List<Integer> ordinals = new LinkedList<>(); for (Enum anEnum : enums) { Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -63,45 +63,10 @@ } @Override - public void setState(int state) { - setContactState(ContactState.valueOf(state)); - } - - @Override - public ContactState getContactState() { - return ContactState.valueOf(getState()); - } - - @Override - public void setContactState(ContactState contactState) { - super.setState(contactState.ordinal()); - } - - @Override - public DataReliability getDataReliability() { - return DataReliability.valueOf(getDataReliabilityOrdinal()); - } - - @Override - public void setDataReliability(DataReliability dataReliability) { - setDataReliabilityOrdinal(dataReliability.ordinal()); - } - - @Override public ObsProgram getObsProgram() { return getSampleRow().getObsProgram(); } - @Override - public SamplingStrategy getSamplingStrategy() { - return SamplingStrategy.valueOf(getSamplingStrategyOrdinal()); - } - - @Override - public void setSamplingStrategy(SamplingStrategy samplingStrategy) { - setSamplingStrategyOrdinal(samplingStrategy.ordinal()); - } - /** Value is still used but it's no longer written, it's now computed * from the size of observers. */ protected void updateNbObservers() { Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactStateMotifImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactStateMotifImpl.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactStateMotifImpl.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -33,25 +33,15 @@ } @Override - public void setContactStateOrdinal(int contactStateOrdinal) { - setContactState(ContactState.valueOf(contactStateOrdinal)); - } - - @Override public void setContactState(ContactState contactState) { ContactState substitute = ContactState.getSubstituteForMotif(contactState); - super.setContactStateOrdinal(substitute.ordinal()); + super.setContactState(substitute); } - @Override - public int getContactStateOrdinal() { - return getContactState().ordinal(); - } @Override public ContactState getContactState() { - ContactState contactState = ContactState.valueOf(super.getContactStateOrdinal()); - ContactState substitute = ContactState.getSubstituteForMotif(contactState); + ContactState substitute = ContactState.getSubstituteForMotif(super.getContactState()); return substitute; } Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -27,7 +27,6 @@ import com.google.common.collect.Multimaps; import com.google.common.collect.Sets; import fr.ifremer.wao.ContactsFilter; -import fr.ifremer.wao.WaoUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.Range; import org.apache.commons.lang3.StringUtils; @@ -133,18 +132,15 @@ } if (CollectionUtils.isNotEmpty(filter.getContactStates())) { - Collection<Integer> contactStateOrdinals = WaoUtils.toOrdinals(filter.getContactStates()); - query.addIn(Contact.PROPERTY_STATE, contactStateOrdinals); + query.addIn(Contact.PROPERTY_CONTACT_STATE, filter.getContactStates()); } if (CollectionUtils.isNotEmpty(filter.getDataReliabilities())) { - Collection<Integer> dataReliabilityOrdinals = WaoUtils.toOrdinals(filter.getDataReliabilities()); - query.addIn(Contact.PROPERTY_DATA_RELIABILITY_ORDINAL, dataReliabilityOrdinals); + query.addIn(Contact.PROPERTY_DATA_RELIABILITY, filter.getDataReliabilities()); } if (CollectionUtils.isNotEmpty(filter.getActualSamplingStrategies())) { - Collection<Integer> actualSamplingStrategyOrdinals = WaoUtils.toOrdinals(filter.getActualSamplingStrategies()); - query.addIn(Contact.PROPERTY_SAMPLING_STRATEGY_ORDINAL, actualSamplingStrategyOrdinals); + query.addIn(Contact.PROPERTY_SAMPLING_STRATEGY, filter.getActualSamplingStrategies()); } if (CollectionUtils.isNotEmpty(filter.getObservedDataControls())) { @@ -208,7 +204,7 @@ TopiaQueryBuilderAddCriteriaOrRunQueryStep<Contact> query = newQueryBuilder(); query.addTopiaIdEquals(Contact.PROPERTY_BOAT, boatId); query.addTopiaIdEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_COMPANY, companyId); - query.addEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_OBS_PROGRAM_ORDINAL, obsProgram.ordinal()); + query.addEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_OBS_PROGRAM, obsProgram); query.setOrderByArguments(Contact.PROPERTY_CREATION_DATE + " desc"); return query.findFirstOrNull(); } @@ -216,7 +212,7 @@ public SortedMap<Date, Integer> getActualObservationsByMonths(Date periodFromMonth, Date periodToMonth, ContactsFilter filter) { HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter); - query.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal()); + query.addEquals(Contact.PROPERTY_CONTACT_STATE, ContactState.OBSERVATION_DONE); List<Contact> contacts = findAll(query.getHql(), query.getHqlParameters()); SortedMap<Date, Integer> actualObservationsMyMonths = new TreeMap<>(); @@ -243,7 +239,7 @@ HqlAndParametersBuilder<Contact> hqlAndParametersBuilder = toContactHqlAndParametersBuilder(filter); - hqlAndParametersBuilder.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal()); + hqlAndParametersBuilder.addEquals(Contact.PROPERTY_CONTACT_STATE, ContactState.OBSERVATION_DONE); hqlAndParametersBuilder.addLowerOrEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_AVERAGE_TIDE_TIME, 2.); hqlAndParametersBuilder.setOrderByArguments("boat.name", "sampleRow.code", "observationBeginDate"); @@ -389,7 +385,7 @@ HqlAndParametersBuilder<Contact> hqlAndParametersBuilder = toContactHqlAndParametersBuilder(filter); - hqlAndParametersBuilder.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal()); + hqlAndParametersBuilder.addEquals(Contact.PROPERTY_CONTACT_STATE, ContactState.OBSERVATION_DONE); hqlAndParametersBuilder.addNotNull(Contact.PROPERTY_DATA_INPUT_DATE); String hql = "select c.sampleRow.company.topiaId, c.observationEndDate, c.dataInputDate " + hqlAndParametersBuilder.getHql(); @@ -425,8 +421,8 @@ HqlAndParametersBuilder<Contact> hqlAndParametersBuilder = toContactHqlAndParametersBuilder(filter); - hqlAndParametersBuilder.addEquals(Contact.PROPERTY_STATE, ContactState.OBSERVATION_DONE.ordinal()); - hqlAndParametersBuilder.addEquals(Contact.PROPERTY_DATA_RELIABILITY_ORDINAL, DataReliability.RELIABLE.ordinal()); + hqlAndParametersBuilder.addEquals(Contact.PROPERTY_CONTACT_STATE, ContactState.OBSERVATION_DONE); + hqlAndParametersBuilder.addEquals(Contact.PROPERTY_DATA_RELIABILITY, DataReliability.RELIABLE); Map<String, Long> dataReliabilitiesByCompany = countByCompany(hqlAndParametersBuilder); Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -193,26 +193,6 @@ } @Override - public ObsProgram getObsProgram() { - return ObsProgram.valueOf(getObsProgramOrdinal()); - } - - @Override - public void setObsProgram(ObsProgram obsProgram) { - setObsProgramOrdinal(obsProgram.ordinal()); - } - - @Override - public SamplingStrategy getSamplingStrategy() { - return SamplingStrategy.valueOf(getSamplingStrategyOrdinal()); - } - - @Override - public void setSamplingStrategy(SamplingStrategy samplingStrategy) { - setSamplingStrategyOrdinal(samplingStrategy.ordinal()); - } - - @Override public void setTerrestrialLocation(TerrestrialLocation terrestrialLocation) { clearTerrestrialLocations(); addTerrestrialLocations(terrestrialLocation); Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -75,7 +75,7 @@ query.setAlias("sr"); if (filter.getObsProgram() != null) { - query.addEquals(SampleRow.PROPERTY_OBS_PROGRAM_ORDINAL, filter.getObsProgram().ordinal()); + query.addEquals(SampleRow.PROPERTY_OBS_PROGRAM, filter.getObsProgram()); } if (CollectionUtils.isNotEmpty(filter.getSampleRowIds())) { @@ -105,7 +105,7 @@ } if (CollectionUtils.isNotEmpty(filter.getSamplingStrategies())) { - query.addIn(SampleRow.PROPERTY_SAMPLING_STRATEGY_ORDINAL, WaoUtils.toOrdinals(filter.getSamplingStrategies())); + query.addIn(SampleRow.PROPERTY_SAMPLING_STRATEGY, filter.getSamplingStrategies()); } if (CollectionUtils.isNotEmpty(filter.getTerrestrialDistrictIds())) { Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -28,20 +28,6 @@ public class TerrestrialLocationImpl extends TerrestrialLocationAbstract { @Override - public LocationType getLocationType() { - return LocationType.valueOf(getLocationTypeOrdinal()); - } - - @Override - public void setLocationType(LocationType locationType) { - if (locationType == null) { - setLocationTypeOrdinal(null); - } else { - setLocationTypeOrdinal(locationType.ordinal()); - } - } - - @Override public String getDistrictName() { //FIXME Do not use I18n without user locale String districtName = super.getDistrictName(); Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -21,10 +21,6 @@ * #L% */ -import fr.ifremer.wao.WaoUtils; -import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; - -import java.util.Collection; import java.util.Collections; import java.util.List; @@ -33,16 +29,8 @@ public List<String> findAllDistinctDistrictCodesUsedInLocations() { String hql = " select distinct tl.districtCode" + " " + newFromClause("tl") - + " where tl." + TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL + " is not null"; + + " where tl." + TerrestrialLocation.PROPERTY_LOCATION_TYPE + " is not null"; return findAll(hql, Collections.<String, Object>emptyMap()); } - public TopiaQueryBuilderAddCriteriaOrRunQueryStep<TerrestrialLocation> forLocationTypeEquals(LocationType locationType) { - return forLocationTypeOrdinalEquals(locationType.ordinal()); - } - - public TopiaQueryBuilderAddCriteriaOrRunQueryStep<TerrestrialLocation> forLocationTypeIn(Collection<LocationType> locationTypes) { - return forLocationTypeOrdinalIn(WaoUtils.toOrdinals(locationTypes)); - } - } Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/UserProfileImpl.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -25,30 +25,6 @@ public class UserProfileImpl extends UserProfileAbstract { @Override - public UserRole getUserRole() { - return UserRole.valueOf(getUserRoleOrdinal()); - } - - @Override - public void setUserRole(UserRole userRole) { - if (userRole == null) { - setUserRoleOrdinal(null); - } else { - setUserRoleOrdinal(userRole.ordinal()); - } - } - - @Override - public ObsProgram getObsProgram() { - return ObsProgram.valueOf(getObsProgramOrdinal()); - } - - @Override - public void setObsProgram(ObsProgram obsProgram) { - setObsProgramOrdinal(obsProgram.ordinal()); - } - - @Override public boolean isAdmin() { return getUserRole() == UserRole.ADMIN; } Modified: trunk/wao-persistence/src/main/resources/db/migration/V4_1__clean_database.sql =================================================================== --- trunk/wao-persistence/src/main/resources/db/migration/V4_1__clean_database.sql 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-persistence/src/main/resources/db/migration/V4_1__clean_database.sql 2014-07-29 14:59:20 UTC (rev 2180) @@ -59,3 +59,82 @@ DROP TABLE indicatorlevel; DROP TABLE indicator; +-- On remplace les champs *Ordinal par leur nom et utilise désormais le name + +ALTER TABLE SampleRow ALTER COLUMN obsProgramOrdinal TYPE character varying(255) USING CASE obsProgramOrdinal + WHEN 0 THEN 'OBSMER' + WHEN 1 THEN 'OBSVENTE' +END; +ALTER TABLE SampleRow RENAME COLUMN obsProgramOrdinal TO obsProgram; + +ALTER TABLE Contact ALTER COLUMN state TYPE character varying(255) USING CASE state + WHEN 0 THEN 'CONTACT_START' + WHEN 1 THEN 'OBSERVATION_EXPECTED' + WHEN 2 THEN 'OBSERVATION_DONE' + WHEN 3 THEN 'OBSERVATION_CANCELLED' + WHEN 4 THEN 'CONTACT_REFUSED' + WHEN 5 THEN 'CONTACT_DEFINITELY_REFUSED' +END; +ALTER TABLE Contact RENAME COLUMN state TO contactState; + +ALTER TABLE Contact ALTER COLUMN dataReliabilityOrdinal TYPE character varying(255) USING CASE dataReliabilityOrdinal + WHEN 0 THEN 'RELIABLE' + WHEN 1 THEN 'DOUBTFUL' + WHEN 2 THEN 'NOT_RELIABLE' + WHEN 3 THEN 'CORRECTION_ASKED' + WHEN 4 THEN 'UNKNOWN' + WHEN 5 THEN 'NOT_PROVIDED' +END; +ALTER TABLE Contact RENAME COLUMN dataReliabilityOrdinal TO dataReliability; + +ALTER TABLE Contact ALTER COLUMN samplingStrategyOrdinal TYPE character varying(255) USING CASE samplingStrategyOrdinal + WHEN 0 THEN 'SIMULTANEOUS_G1_SPECIES' + WHEN 1 THEN 'SIMULTANEOUS_G1_G2_SPECIES' + WHEN 2 THEN 'SIMULTANEOUS_ALL_SPECIES' + WHEN 3 THEN 'SPECIFIC_STOCK' +END; +ALTER TABLE Contact RENAME COLUMN samplingStrategyOrdinal TO samplingStrategy; +UPDATE Contact SET samplingStrategy = NULL where sampleRow in (select sr.topiaId from SampleRow sr where obsProgram = 'OBSMER'); + +ALTER TABLE SampleRow ALTER COLUMN samplingStrategyOrdinal TYPE character varying(255) USING CASE samplingStrategyOrdinal + WHEN 0 THEN 'SIMULTANEOUS_G1_SPECIES' + WHEN 1 THEN 'SIMULTANEOUS_G1_G2_SPECIES' + WHEN 2 THEN 'SIMULTANEOUS_ALL_SPECIES' + WHEN 3 THEN 'SPECIFIC_STOCK' +END; +ALTER TABLE SampleRow RENAME COLUMN samplingStrategyOrdinal TO samplingStrategy; +UPDATE SampleRow SET samplingStrategy = NULL where obsProgram = 'OBSMER'; + +ALTER TABLE TerrestrialLocation ALTER COLUMN locationTypeOrdinal TYPE character varying(255) USING CASE locationTypeOrdinal + WHEN 0 THEN 'PORT' + WHEN 1 THEN 'AUCTION' + WHEN 2 THEN 'DISTRICT' + WHEN 3 THEN 'REGION' +END; +ALTER TABLE SampleRow RENAME COLUMN locationTypeOrdinal TO locationType; + +ALTER TABLE UserProfile ALTER COLUMN obsProgramOrdinal TYPE character varying(255) USING CASE obsProgramOrdinal + WHEN 0 THEN 'OBSMER' + WHEN 1 THEN 'OBSVENTE' +END; +ALTER TABLE UserProfile RENAME COLUMN obsProgramOrdinal TO obsProgram; + +ALTER TABLE UserProfile ALTER COLUMN userRoleOrdinal TYPE character varying(255) USING CASE userRoleOrdinal + WHEN 0 THEN 'ADMIN' + WHEN 1 THEN 'OBSERVER' + WHEN 2 THEN 'COORDINATOR' + WHEN 3 THEN 'GUEST' + WHEN 4 THEN 'PROFESSIONAL' +END; +ALTER TABLE UserProfile RENAME COLUMN userRoleOrdinal TO userRole; + +ALTER TABLE ContactStateMotif ALTER COLUMN contactStateOrdinal TYPE character varying(255) USING CASE contactStateOrdinal + WHEN 0 THEN 'CONTACT_START' + WHEN 1 THEN 'OBSERVATION_EXPECTED' + WHEN 2 THEN 'OBSERVATION_DONE' + WHEN 3 THEN 'OBSERVATION_CANCELLED' + WHEN 4 THEN 'CONTACT_REFUSED' + WHEN 5 THEN 'CONTACT_DEFINITELY_REFUSED' +END; +ALTER TABLE ContactStateMotif RENAME COLUMN contactStateOrdinal TO contactState; + Modified: trunk/wao-persistence/src/main/xmi/wao-model.zargo =================================================================== (Binary files differ) Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -288,7 +288,7 @@ ObsProgram obsProgram = authenticatedWaoUser.getObsProgram(); List<SampleRow> sampleRows = - getSampleRowDao().forObsProgramOrdinalEquals(obsProgram.ordinal()).findAll(); + getSampleRowDao().forObsProgramEquals(obsProgram).findAll(); List<WaoUser> waoUsers = getWaoUserDao().findAll(); List<Boat> boats = getBoatDao().findAll(); List<ContactStateMotif> motives = getContactStateMotifDao().findAll(); @@ -1043,7 +1043,7 @@ // let's try to find a recent similar contact Map<String, Object> properties = new HashMap<>(); - properties.put(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_OBS_PROGRAM_ORDINAL, newContact.getObsProgram().ordinal()); + properties.put(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_OBS_PROGRAM, newContact.getObsProgram()); properties.put(Contact.PROPERTY_SAMPLE_ROW, sampleRow); properties.put(Contact.PROPERTY_MAIN_OBSERVER, observer); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsVenteSamplingPlan.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsVenteSamplingPlan.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsVenteSamplingPlan.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -21,6 +21,7 @@ * #L% */ +import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.TerrestrialLocation; import org.apache.commons.collections4.CollectionUtils; @@ -47,6 +48,8 @@ protected int averageObservationsCount; + protected String samplingStrategy; + public ObsVenteSamplingPlanSampleRowPart(Locale locale, Map<Date, SamplingPlanStatistics> nbTidesPerMonth, SampleRow sampleRow, long sampleRowContactCounts) { super(locale, nbTidesPerMonth, sampleRow, sampleRowContactCounts); terrestrialLocationInfos = sampleRow.getTerrestrialLocationInfos(); @@ -59,8 +62,13 @@ } } averageObservationsCount = sampleRow.getAverageObservationsCount(); + samplingStrategy = WaoUtils.l(locale, sampleRow.getSamplingStrategy()); } + public String getSamplingStrategy() { + return samplingStrategy; + } + public String getTerrestrialLocationInfos() { return terrestrialLocationInfos; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -117,8 +117,10 @@ if (company != null) { companies.add(FilterOption.forValueAndLabel(company.getTopiaId(), company.getName())); } - samplingStrategies.add(FilterOption.forEnum(locale, sampleRow.getSamplingStrategy())); if (sampleRow.getObsProgram().isObsVente()) { + samplingStrategies.add(FilterOption.forEnum(locale, sampleRow.getSamplingStrategy())); + } + if (sampleRow.getObsProgram().isObsVente()) { TerrestrialLocation terrestrialDistrict = sampleRow.getTerrestrialLocation(); terrestrialDistricts.add( FilterOption.forValueAndLabel( Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlan.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlan.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlan.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -333,8 +333,6 @@ protected String companyName; - protected String samplingStrategy; - protected String professionDescriptionWithoutDCF5; protected Map<String, String> dcf5CodesAndDescriptions; @@ -418,7 +416,6 @@ } professionDescriptionWithoutDCF5 = sampleRow.getProfessionDescriptionWithoutDCF5(); - samplingStrategy = WaoUtils.l(locale, sampleRow.getSamplingStrategy()); sampleRowId = sampleRow.getTopiaId(); // consider a recently created sample row as recently updated @@ -442,10 +439,6 @@ elligibleBoatsProvided = sampleRow.isElligibleBoatNotEmpty(); } - public String getSamplingStrategy() { - return samplingStrategy; - } - public String getSampleRowId() { return sampleRowId; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -59,7 +59,6 @@ import fr.ifremer.wao.entity.SampleRowLogImpl; import fr.ifremer.wao.entity.SampleRowLogTopiaDao; import fr.ifremer.wao.entity.SampleRowTopiaDao; -import fr.ifremer.wao.entity.SamplingStrategy; import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocationTopiaDao; import fr.ifremer.wao.services.AuthenticatedWaoUser; @@ -320,9 +319,6 @@ newSampleRow.setProfession(new ProfessionImpl()); newSampleRow.setFishingZone(new HashSet<FishingZone>()); newSampleRow.setSampleMonth(new HashSet<SampleMonth>()); - if (obsProgram.isObsMer()) { - newSampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES); - } String newSampleRowCode = getNewSampleRowCode(obsProgram); newSampleRow.setCode(newSampleRowCode); @@ -743,8 +739,10 @@ throw new MissingFishingZonesException(sampleRow); } - if (sampleRow.getSamplingStrategy().isSpecificStock() && StringUtils.isEmpty(sampleRow.getProfession().getSpecies())) { - throw new MissingProfessionSpeciesException(sampleRow); + if (sampleRow.getObsProgram().isObsVente()) { + if (sampleRow.getSamplingStrategy().isSpecificStock() && StringUtils.isEmpty(sampleRow.getProfession().getSpecies())) { + throw new MissingProfessionSpeciesException(sampleRow); + } } for (SampleMonth sampleMonth : sampleRow.getSampleMonth()) { Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-07-29 13:18:07 UTC (rev 2179) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-07-29 14:59:20 UTC (rev 2180) @@ -239,7 +239,7 @@ // look if already exists and update existing or add new TerrestrialLocation existingLocation = dao.forProperties( TerrestrialLocation.PROPERTY_CODE, location.getCode(), - TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, location.getLocationTypeOrdinal()).findUniqueOrNull(); + TerrestrialLocation.PROPERTY_LOCATION_TYPE, location.getLocationType()).findUniqueOrNull(); if (existingLocation == null) { dao.create(location); locationAdded += 1; @@ -260,7 +260,7 @@ // We must find all the distinct district ids and check that // we have an entity representing it. In database a disctrict can // be distinguished from a location by having it's - // locationTypeOrdinal null. + // locationType null. List<String> districtCodes = dao.findAllDistinctDistrictCodesUsedInLocations(); // a binder, needed for update @@ -279,7 +279,7 @@ TerrestrialLocation district = new TerrestrialLocationImpl(); districtBinder.copyExcluding(location, district, TerrestrialLocation.PROPERTY_NAME, TerrestrialLocation.PROPERTY_CODE, TerrestrialLocation.PROPERTY_PORT_CODE, - TerrestrialLocation.PROPERTY_PORT_NAME, TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, + TerrestrialLocation.PROPERTY_PORT_NAME, TerrestrialLocation.PROPERTY_LOCATION_TYPE, TopiaEntity.PROPERTY_TOPIA_ID, TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TerrestrialLocation.PROPERTY_TOPIA_VERSION); district.setLocationType(LocationType.DISTRICT); @@ -307,7 +307,7 @@ TerrestrialLocation existingDistrict = dao.forProperties( TerrestrialLocation.PROPERTY_DISTRICT_CODE, district.getDistrictCode(), - TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.DISTRICT.ordinal()).findUniqueOrNull(); + TerrestrialLocation.PROPERTY_LOCATION_TYPE, LocationType.DISTRICT).findUniqueOrNull(); if (existingDistrict == null) { dao.create(district); districtAdded += 1; @@ -333,7 +333,7 @@ // try to find it if it's already in DB TerrestrialLocation existingRegion = dao.forProperties( TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE, region.getRegionIfremerCode(), - TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.REGION.ordinal()).findUniqueOrNull(); + TerrestrialLocation.PROPERTY_LOCATION_TYPE, LocationType.REGION).findUniqueOrNull(); // create or update if (existingRegion == null) { @@ -369,7 +369,7 @@ TopiaQueryBuilderAddCriteriaOrRunQueryStep<TerrestrialLocation> query = dao.newQueryBuilder(); - query.addIn(TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, ImmutableSet.of(LocationType.PORT.ordinal(), LocationType.AUCTION.ordinal())); + query.addIn(TerrestrialLocation.PROPERTY_LOCATION_TYPE, ImmutableSet.of(LocationType.PORT, LocationType.AUCTION)); query.addEquals(TerrestrialLocation.PROPERTY_DISTRICT_CODE, district.getDistrictCode()); @@ -383,7 +383,7 @@ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao(); - List<TerrestrialLocation> allRegionIfremers = dao.forLocationTypeOrdinalEquals(LocationType.REGION.ordinal()).findAll(); + List<TerrestrialLocation> allRegionIfremers = dao.forLocationTypeEquals(LocationType.REGION).findAll(); return allRegionIfremers; @@ -396,7 +396,7 @@ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao(); TerrestrialLocation terrestrialDistrict = dao.forProperties( - TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.DISTRICT.ordinal(), + TerrestrialLocation.PROPERTY_LOCATION_TYPE, LocationType.DISTRICT, TerrestrialLocation.PROPERTY_DISTRICT_CODE, districtCode).findUnique(); return terrestrialDistrict; @@ -415,7 +415,7 @@ result = dao.findAll(); } else { ContactState substituteState = ContactState.getSubstituteForMotif(contactState); - result = dao.forContactStateOrdinalEquals(substituteState.ordinal()).findAll(); + result = dao.forContactStateEquals(substituteState).findAll(); } if (log.isDebugEnabled()) { @@ -468,7 +468,7 @@ Map<String, Object> properties = new HashMap<>(); // we are looking for ports only - properties.put(TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.PORT.ordinal()); + properties.put(TerrestrialLocation.PROPERTY_LOCATION_TYPE, LocationType.PORT); // ports in a specific region properties.put(TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE, region.getRegionIfremerCode());