r1250 - in trunk: . tutti-persistence/src/main/java/fr/ifremer/tutti/persistence tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro tutti-persistence/src/main/java/fr/ifremer/tutti/p
Author: tchemit Date: 2013-09-30 14:34:52 +0200 (Mon, 30 Sep 2013) New Revision: 1250 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1250 Log: refs #3392: [TECH] Updates nuiton-decorator to 3.0-alpha-2 fixes #3335: [ERGO] Permettre ?\195?\160 l'utilisateur d'ordonner les attributs ?\195?\160 afficher, et pas seulement le premier ?\195?\160 afficher refs #3333: [CAMPAGNE] pouvoir ajouter plusieur engins professionnels de m?\195?\170me type ?\195?\160 une campagne use new persistence helper classes (eugene 2.7.2) Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoTutti.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java Removed: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java Modified: trunk/pom.xml trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceService.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/TuttiCatchBatchValidator.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelper.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplTest.java trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplUpTodateTest.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/WeightUnit.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportExportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/sumatra/CatchesSumatraExportServiceTest.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CleanBatchWeightsAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/pom.xml 2013-09-30 12:34:52 UTC (rev 1250) @@ -128,7 +128,7 @@ <nuitonUtilsVersion>2.7.1</nuitonUtilsVersion> <nuitonValidatorVersion>3.0-alpha-1</nuitonValidatorVersion> - <eugenePluginVersion>2.7</eugenePluginVersion> + <eugenePluginVersion>2.7.2-SNAPSHOT</eugenePluginVersion> <hibernateVersion>3.6.10.Final</hibernateVersion> <jaxxVersion>2.5.27-SNAPSHOT</jaxxVersion> Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java (rev 0) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -0,0 +1,93 @@ +package fr.ifremer.tutti.persistence.dao; + +/* + * #%L + * Tutti :: Persistence + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.Lists; +import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip; +import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; +import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesDaoImpl; +import fr.ifremer.adagio.core.dao.referential.gear.Gear; +import fr.ifremer.adagio.core.dao.referential.gear.GearImpl; +import org.apache.commons.lang3.ObjectUtils; +import org.hibernate.SessionFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Repository; + +/** + * Created on 9/28/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.6 + */ +@Repository("gearPhysicalFeaturesDaoTutti") +@Lazy +public class GearPhysicalFeaturesDaoImplTutti extends GearPhysicalFeaturesDaoImpl implements GearPhysicalFeaturesDaoTutti { + + /** + * Constructor used by Spring + */ + @Autowired + public GearPhysicalFeaturesDaoImplTutti(SessionFactory sessionFactory) { + super(sessionFactory); + } + + @Override + public GearPhysicalFeatures getGearPhysicalfeatures(FishingTrip fishingTrip, + Integer gearId, + Short rankOrder, + boolean createIfNotExists) { + + if (rankOrder == null) { + rankOrder = 0; + } + // Retrieve entities : Gear Physical Features + if (fishingTrip.getGearPhysicalFeatures() != null && fishingTrip.getGearPhysicalFeatures().size() >= 0) { + for (GearPhysicalFeatures guf : fishingTrip.getGearPhysicalFeatures()) { + if (ObjectUtils.equals(rankOrder, guf.getRankOrder()) && + ObjectUtils.equals(gearId, guf.getGear().getId())) { + return guf; + } + } + } + if (!createIfNotExists) { + return null; + } + + GearPhysicalFeatures gearPhysicalFeature = GearPhysicalFeatures.Factory.newInstance(); + gearPhysicalFeature.setFishingTrip(fishingTrip); + gearPhysicalFeature.setRankOrder(rankOrder); + + Gear gear = load(GearImpl.class, gearId); + gearPhysicalFeature.setGear(gear); + if (fishingTrip.getGearPhysicalFeatures() == null) { + fishingTrip.setGearPhysicalFeatures(Lists.newArrayList(gearPhysicalFeature)); + } else { + fishingTrip.getGearPhysicalFeatures().add(gearPhysicalFeature); + } + + return gearPhysicalFeature; + } +} Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoTutti.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoTutti.java (rev 0) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoTutti.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -0,0 +1,43 @@ +package fr.ifremer.tutti.persistence.dao; + +/* + * #%L + * Tutti :: Persistence + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip; +import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; +import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesExtendDao; + +/** + * Created on 9/28/13. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.6 + */ +public interface GearPhysicalFeaturesDaoTutti extends GearPhysicalFeaturesExtendDao { + + GearPhysicalFeatures getGearPhysicalfeatures(FishingTrip fishingTrip, + Integer gearId, + Short rankOrder, + boolean createIfNotExists); +} Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoTutti.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -1,403 +0,0 @@ -package fr.ifremer.tutti.persistence.entities.protocol; - -/* - * #%L - * Tutti :: Persistence API - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 - 2013 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.esotericsoftware.yamlbeans.YamlConfig; -import com.esotericsoftware.yamlbeans.YamlReader; -import com.esotericsoftware.yamlbeans.YamlWriter; -import com.google.common.base.Charsets; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; -import com.google.common.io.Files; -import fr.ifremer.tutti.TuttiTechnicalException; -import fr.ifremer.tutti.persistence.TuttiPersistence; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; -import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; -import fr.ifremer.tutti.persistence.entities.protocol.v1.SpeciesProtocol1; -import fr.ifremer.tutti.persistence.entities.protocol.v1.SpeciesProtocolBean1; -import fr.ifremer.tutti.persistence.entities.protocol.v1.TuttiProtocol1; -import fr.ifremer.tutti.persistence.entities.protocol.v1.TuttiProtocolBean1; -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.persistence.entities.referential.Species; -import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.decorator.Decorator; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.Reader; -import java.util.List; -import java.util.Set; - -import static org.nuiton.i18n.I18n._; - -/** - * Helper class around {@link TuttiProtocol}. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.0 - */ -public class TuttiProtocols { - - /** Logger. */ - private static final Log log = LogFactory.getLog(TuttiProtocols.class); - - public static void toFile(TuttiProtocol protocol, File file) { - - String id = protocol.getId(); - - BufferedWriter fileWriter = null; - try { - fileWriter = Files.newWriter(file, Charsets.UTF_8); - YamlWriter writer = new YamlWriter(fileWriter, createConfig()); - writer.write(protocol); - writer.close(); - fileWriter.close(); - } catch (Exception e) { - throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", id, file), e);//"Could not transform protocol " + to file - } finally { - IOUtils.closeQuietly(fileWriter); - } - } - - public static TuttiProtocol fromFile(TuttiEnumerationFile enumeration, File file) { - - Reader fileReader = null; - try { - fileReader = Files.newReader(file, Charsets.UTF_8); - YamlReader reader = new YamlReader(fileReader, createConfig()); - TuttiProtocol result = reader.read(TuttiBeanFactory.typeOfTuttiProtocol()); - fileReader.close(); - - // transform String to Integer... - - Integer sampleCategoryIdToRemove = enumeration.PMFM_ID_SORTED_UNSORTED; - - if (!result.isBenthosEmpty()) { - for (SpeciesProtocol speciesProtocol : result.getBenthos()) { - List mandatorySampleCategoryId = speciesProtocol.getMandatorySampleCategoryId(); - List<Integer> mandatorySampleCategoryIdInteger = Lists.newArrayList(); - for (Object o : mandatorySampleCategoryId) { - mandatorySampleCategoryIdInteger.add(Integer.valueOf(o.toString())); - } - mandatorySampleCategoryIdInteger.remove(sampleCategoryIdToRemove); - speciesProtocol.setMandatorySampleCategoryId(mandatorySampleCategoryIdInteger); - - } - } - if (!result.isSpeciesEmpty()) { - for (SpeciesProtocol speciesProtocol : result.getSpecies()) { - List mandatorySampleCategoryId = speciesProtocol.getMandatorySampleCategoryId(); - List<Integer> mandatorySampleCategoryIdInteger = Lists.newArrayList(); - for (Object o : mandatorySampleCategoryId) { - mandatorySampleCategoryIdInteger.add(Integer.valueOf(o.toString())); - } - mandatorySampleCategoryIdInteger.remove(sampleCategoryIdToRemove); - speciesProtocol.setMandatorySampleCategoryId(mandatorySampleCategoryIdInteger); - - } - } - return result; - } catch (Exception e) { - // try to load a v1 - TuttiProtocol1 tuttiProtocol1 = fromFileV1(file); - - TuttiProtocol result = fromTuttiProtocol1(enumeration, tuttiProtocol1); - return result; - - } finally { - IOUtils.closeQuietly(fileReader); - } - } - - public static TuttiProtocol1 fromFileV1(File file) { - - Reader fileReader = null; - try { - fileReader = Files.newReader(file, Charsets.UTF_8); - YamlReader reader = new YamlReader(fileReader, createConfigV1()); - TuttiProtocol1 result = reader.read(TuttiProtocolBean1.class); - fileReader.close(); - return result; - } catch (Exception e) { - throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", file), e); - } finally { - IOUtils.closeQuietly(fileReader); - } - } - - public static void checkSampleCategories(SampleCategoryModel sampleCategoryModel, - TuttiProtocol protocol, - Set<Integer> badCategories) { - - if (CollectionUtils.isNotEmpty(protocol.getSpecies())) { - for (SpeciesProtocol entry : protocol.getSpecies()) { - List<Integer> mandatorySampleCategoryId = entry.getMandatorySampleCategoryId(); - for (Integer categoryId : mandatorySampleCategoryId) { - if (!sampleCategoryModel.containsCategoryId(categoryId)) { - badCategories.add(categoryId); - } - } - } - } - if (CollectionUtils.isNotEmpty(protocol.getBenthos())) { - for (SpeciesProtocol entry : protocol.getBenthos()) { - List<Integer> mandatorySampleCategoryId = entry.getMandatorySampleCategoryId(); - for (Integer categoryId : mandatorySampleCategoryId) { - if (!sampleCategoryModel.containsCategoryId(categoryId)) { - badCategories.add(categoryId); - } - } - } - } - } - - public static void removeBadCategories(SampleCategoryModel sampleCategoryModel, TuttiProtocol protocol) { - List<Integer> samplingOrder = sampleCategoryModel.getSamplingOrder(); - if (!protocol.isSpeciesEmpty()) { - - for (SpeciesProtocol entry : protocol.getSpecies()) { - entry.getMandatorySampleCategoryId().retainAll(samplingOrder); - } - } - - if (!protocol.isBenthosEmpty()) { - - for (SpeciesProtocol entry : protocol.getBenthos()) { - entry.getMandatorySampleCategoryId().retainAll(samplingOrder); - } - } - } - - public static String getBadCategoriesMessage(Set<Integer> badCategories, - Decorator<Caracteristic> decorator, - TuttiPersistence persistenceService) { - List<String> badCategoriesStr = Lists.newArrayList(); - - for (Integer id : badCategories) { - String caracteristicStr; - try { - Caracteristic caracteristic = persistenceService.getCaracteristic(id); - caracteristicStr = decorator.toString(caracteristic); - } catch (NullPointerException e) { - if (log.isWarnEnabled()) { - log.warn("Could not find caracteristic with id: " + id); - } - caracteristicStr = _("tutti.persistence.error.caracteristic.notFound"); - } - badCategoriesStr.add("<li>" + id + " : " + caracteristicStr + "</li>"); - } - String message = _("tutti.persistence.error.protocol.categories.not.compatible", Joiner.on("").join(badCategoriesStr)); - return message; - } - - protected static TuttiProtocol fromTuttiProtocol1(TuttiEnumerationFile enumeration, TuttiProtocol1 tuttiProtocol1) { - TuttiProtocol result = TuttiBeanFactory.newTuttiProtocol(); - Binder<TuttiProtocol1, TuttiProtocol> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol.class); - binder.copy(tuttiProtocol1, result); - if (!tuttiProtocol1.isSpeciesEmpty()) { - result.setSpecies(Lists.<SpeciesProtocol>newArrayList()); - Binder<SpeciesProtocol1, SpeciesProtocol> binderSpecies = BinderFactory.newBinder(SpeciesProtocol1.class, SpeciesProtocol.class); - for (SpeciesProtocol1 speciesProtocol1 : tuttiProtocol1.getSpecies()) { - SpeciesProtocol row = TuttiBeanFactory.newSpeciesProtocol(); - row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - binderSpecies.copy(speciesProtocol1, row); - if (speciesProtocol1.isAgeEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE); - } - if (speciesProtocol1.isSizeEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY); - } - if (speciesProtocol1.isMaturityEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY); - } - if (speciesProtocol1.isSexEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX); - } - result.addSpecies(row); - } - } - if (!tuttiProtocol1.isBenthosEmpty()) { - result.setBenthos(Lists.<SpeciesProtocol>newArrayList()); - Binder<SpeciesProtocol1, SpeciesProtocol> binderSpecies = BinderFactory.newBinder(SpeciesProtocol1.class, SpeciesProtocol.class); - for (SpeciesProtocol1 speciesProtocol1 : tuttiProtocol1.getBenthos()) { - SpeciesProtocol row = TuttiBeanFactory.newSpeciesProtocol(); - row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - binderSpecies.copy(speciesProtocol1, row); - if (speciesProtocol1.isAgeEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE); - } - if (speciesProtocol1.isSizeEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY); - } - if (speciesProtocol1.isMaturityEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY); - } - if (speciesProtocol1.isSexEnabled()) { - row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX); - } - result.addBenthos(row); - } - } - return result; - } - - protected static YamlConfig createConfig() { - YamlConfig result = new YamlConfig(); - result.setClassTag(SpeciesProtocol.class.getSimpleName(), - TuttiBeanFactory.typeOfSpeciesProtocol()); - result.writeConfig.setAlwaysWriteClassname(false); - result.writeConfig.setWriteRootTags(false); - return result; - } - - protected static YamlConfig createConfigV1() { - YamlConfig result = new YamlConfig(); - result.setClassTag(SpeciesProtocol.class.getSimpleName(), - SpeciesProtocolBean1.class); - result.writeConfig.setAlwaysWriteClassname(false); - result.writeConfig.setWriteRootTags(false); - return result; - } - -// /** -// * Is the species batch respecting the protocol recommendations? -// * -// * @param protocol the current protocol -// * @param batch the batch to check (it should be a leaf) -// * @param frequencies the frequencies of the batch -// * @return true if the batch respects the protocol, false otherwise -// */ -// public static boolean isSpeciesBatchValid(TuttiProtocol protocol, -// SpeciesBatch batch, -// List<SpeciesBatchFrequency> frequencies) { -// boolean result = true; -// -// if (protocol != null) { -// Species species = batch.getSpecies(); -// List<SpeciesProtocol> speciesProtocols = protocol.getSpecies(); -// SpeciesProtocol speciesProtocol = getSpeciesProtocol(species, speciesProtocols); -// -// if (speciesProtocol != null) { -// List<Integer> mandatoryCategories = speciesProtocol.getMandatorySampleCategoryId(); -// -// SpeciesBatch browsingBatch = batch; -// while (browsingBatch.getParentBatch() != null) { -// mandatoryCategories.remove(browsingBatch.getSampleCategoryId()); -// browsingBatch = browsingBatch.getParentBatch(); -// } -// result = mandatoryCategories.isEmpty() && -// (!speciesProtocol.isCountIfNoFrequencyEnabled() -// || CollectionUtils.isNotEmpty(frequencies) -// || batch.getNumber() != null); -// } -// } -// return result; -// } - -// /** -// * Is the benthos batch respecting the protocol recommendations? -// * -// * @param protocol the current protocol -// * @param batch the batch to check (it should be a leaf) -// * @param frequencies the frequencies of the batch -// * @return true if the batch respects the protocol, false otherwise -// */ -// public static boolean isBenthosBatchValid(TuttiProtocol protocol, -// BenthosBatch batch, -// List<BenthosBatchFrequency> frequencies) { -// boolean result = true; -// -// if (protocol != null) { -// Species species = batch.getSpecies(); -// List<SpeciesProtocol> speciesProtocols = protocol.getBenthos(); -// SpeciesProtocol speciesProtocol = getSpeciesProtocol(species, speciesProtocols); -// -// if (speciesProtocol != null) { -// // get the categories which should be set -// List<Integer> mandatoryCategories = -// speciesProtocol.getMandatorySampleCategoryId(); -// -// BenthosBatch browsingBatch = batch; -// while (browsingBatch.getParentBatch() != null) { -// mandatoryCategories.remove(browsingBatch.getSampleCategoryId()); -// browsingBatch = browsingBatch.getParentBatch(); -// } -// result = mandatoryCategories.isEmpty() && -// (!speciesProtocol.isCountIfNoFrequencyEnabled() -// || CollectionUtils.isNotEmpty(frequencies) -// || batch.getNumber() != null); -// } -// } -// return result; -// } - - /** - * Retrieve the speciesProtocol corresponding to the species of the given protocol. - * - * @param protocol - * @param species - * @return - * @since 2.5 - */ - public static SpeciesProtocol getSpeciesProtocol(TuttiProtocol protocol, Species species) { - return getSpeciesProtocol(species, protocol.getSpecies()); - } - -// /** -// * Retrieve the benthosProtocol corresponding to the species of the given protocol. -// * -// * @param protocol -// * @param species -// * @return -// * @since 2.5 -// */ -// public static SpeciesProtocol getBenthosProtocol(TuttiProtocol protocol, Species species) { -// return getSpeciesProtocol(species, protocol.getBenthos()); -// } - - /** - * Retrieve the speciesprotocol corresponding to the species of the batch - * - * @param species - * @param speciesProtocols - * @return - */ - public static SpeciesProtocol getSpeciesProtocol(Species species, - List<SpeciesProtocol> speciesProtocols) { - for (SpeciesProtocol speciesProtocol : speciesProtocols) { - if (species.getReferenceTaxonId().equals( - speciesProtocol.getSpeciesReferenceTaxonId())) { - return speciesProtocol; - } - } - return null; - } -} Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java (from rev 1247, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java) =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java (rev 0) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -0,0 +1,318 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +/* + * #%L + * Tutti :: Persistence API + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.esotericsoftware.yamlbeans.YamlConfig; +import com.esotericsoftware.yamlbeans.YamlReader; +import com.esotericsoftware.yamlbeans.YamlWriter; +import com.google.common.base.Charsets; +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import com.google.common.io.Files; +import fr.ifremer.tutti.TuttiTechnicalException; +import fr.ifremer.tutti.persistence.TuttiPersistence; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; +import fr.ifremer.tutti.persistence.entities.protocol.v1.SpeciesProtocol1; +import fr.ifremer.tutti.persistence.entities.protocol.v1.SpeciesProtocolBean1; +import fr.ifremer.tutti.persistence.entities.protocol.v1.TuttiProtocol1; +import fr.ifremer.tutti.persistence.entities.protocol.v1.TuttiProtocolBean1; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.decorator.Decorator; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.Reader; +import java.util.List; +import java.util.Set; + +import static org.nuiton.i18n.I18n._; + +/** + * Helper class around {@link TuttiProtocol}. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiProtocols extends AbstractTuttiProtocols { + + /** Logger. */ + private static final Log log = LogFactory.getLog(TuttiProtocols.class); + + public static void toFile(TuttiProtocol protocol, File file) { + + String id = protocol.getId(); + + BufferedWriter fileWriter = null; + try { + fileWriter = Files.newWriter(file, Charsets.UTF_8); + YamlWriter writer = new YamlWriter(fileWriter, createConfig()); + writer.write(protocol); + writer.close(); + fileWriter.close(); + } catch (Exception e) { + throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", id, file), e);//"Could not transform protocol " + to file + } finally { + IOUtils.closeQuietly(fileWriter); + } + } + + public static TuttiProtocol fromFile(TuttiEnumerationFile enumeration, File file) { + + Reader fileReader = null; + try { + fileReader = Files.newReader(file, Charsets.UTF_8); + YamlReader reader = new YamlReader(fileReader, createConfig()); + TuttiProtocol result = reader.read(typeOfTuttiProtocol()); + fileReader.close(); + + // transform String to Integer... + + Integer sampleCategoryIdToRemove = enumeration.PMFM_ID_SORTED_UNSORTED; + + if (!result.isBenthosEmpty()) { + for (SpeciesProtocol speciesProtocol : result.getBenthos()) { + List mandatorySampleCategoryId = speciesProtocol.getMandatorySampleCategoryId(); + List<Integer> mandatorySampleCategoryIdInteger = Lists.newArrayList(); + for (Object o : mandatorySampleCategoryId) { + mandatorySampleCategoryIdInteger.add(Integer.valueOf(o.toString())); + } + mandatorySampleCategoryIdInteger.remove(sampleCategoryIdToRemove); + speciesProtocol.setMandatorySampleCategoryId(mandatorySampleCategoryIdInteger); + + } + } + if (!result.isSpeciesEmpty()) { + for (SpeciesProtocol speciesProtocol : result.getSpecies()) { + List mandatorySampleCategoryId = speciesProtocol.getMandatorySampleCategoryId(); + List<Integer> mandatorySampleCategoryIdInteger = Lists.newArrayList(); + for (Object o : mandatorySampleCategoryId) { + mandatorySampleCategoryIdInteger.add(Integer.valueOf(o.toString())); + } + mandatorySampleCategoryIdInteger.remove(sampleCategoryIdToRemove); + speciesProtocol.setMandatorySampleCategoryId(mandatorySampleCategoryIdInteger); + + } + } + return result; + } catch (Exception e) { + // try to load a v1 + TuttiProtocol1 tuttiProtocol1 = fromFileV1(file); + + TuttiProtocol result = fromTuttiProtocol1(enumeration, tuttiProtocol1); + return result; + + } finally { + IOUtils.closeQuietly(fileReader); + } + } + + public static TuttiProtocol1 fromFileV1(File file) { + + Reader fileReader = null; + try { + fileReader = Files.newReader(file, Charsets.UTF_8); + YamlReader reader = new YamlReader(fileReader, createConfigV1()); + TuttiProtocol1 result = reader.read(TuttiProtocolBean1.class); + fileReader.close(); + return result; + } catch (Exception e) { + throw new TuttiTechnicalException(_("tutti.persistence.protocol.fromFile.error", file), e); + } finally { + IOUtils.closeQuietly(fileReader); + } + } + + public static void checkSampleCategories(SampleCategoryModel sampleCategoryModel, + TuttiProtocol protocol, + Set<Integer> badCategories) { + + if (CollectionUtils.isNotEmpty(protocol.getSpecies())) { + for (SpeciesProtocol entry : protocol.getSpecies()) { + List<Integer> mandatorySampleCategoryId = entry.getMandatorySampleCategoryId(); + for (Integer categoryId : mandatorySampleCategoryId) { + if (!sampleCategoryModel.containsCategoryId(categoryId)) { + badCategories.add(categoryId); + } + } + } + } + if (CollectionUtils.isNotEmpty(protocol.getBenthos())) { + for (SpeciesProtocol entry : protocol.getBenthos()) { + List<Integer> mandatorySampleCategoryId = entry.getMandatorySampleCategoryId(); + for (Integer categoryId : mandatorySampleCategoryId) { + if (!sampleCategoryModel.containsCategoryId(categoryId)) { + badCategories.add(categoryId); + } + } + } + } + } + + public static void removeBadCategories(SampleCategoryModel sampleCategoryModel, TuttiProtocol protocol) { + List<Integer> samplingOrder = sampleCategoryModel.getSamplingOrder(); + if (!protocol.isSpeciesEmpty()) { + + for (SpeciesProtocol entry : protocol.getSpecies()) { + entry.getMandatorySampleCategoryId().retainAll(samplingOrder); + } + } + + if (!protocol.isBenthosEmpty()) { + + for (SpeciesProtocol entry : protocol.getBenthos()) { + entry.getMandatorySampleCategoryId().retainAll(samplingOrder); + } + } + } + + public static String getBadCategoriesMessage(Set<Integer> badCategories, + Decorator<Caracteristic> decorator, + TuttiPersistence persistenceService) { + List<String> badCategoriesStr = Lists.newArrayList(); + + for (Integer id : badCategories) { + String caracteristicStr; + try { + Caracteristic caracteristic = persistenceService.getCaracteristic(id); + caracteristicStr = decorator.toString(caracteristic); + } catch (NullPointerException e) { + if (log.isWarnEnabled()) { + log.warn("Could not find caracteristic with id: " + id); + } + caracteristicStr = _("tutti.persistence.error.caracteristic.notFound"); + } + badCategoriesStr.add("<li>" + id + " : " + caracteristicStr + "</li>"); + } + String message = _("tutti.persistence.error.protocol.categories.not.compatible", Joiner.on("").join(badCategoriesStr)); + return message; + } + + protected static TuttiProtocol fromTuttiProtocol1(TuttiEnumerationFile enumeration, TuttiProtocol1 tuttiProtocol1) { + TuttiProtocol result = newTuttiProtocol(); + Binder<TuttiProtocol1, TuttiProtocol> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol.class); + binder.copy(tuttiProtocol1, result); + if (!tuttiProtocol1.isSpeciesEmpty()) { + result.setSpecies(Lists.<SpeciesProtocol>newArrayList()); + Binder<SpeciesProtocol1, SpeciesProtocol> binderSpecies = BinderFactory.newBinder(SpeciesProtocol1.class, SpeciesProtocol.class); + for (SpeciesProtocol1 speciesProtocol1 : tuttiProtocol1.getSpecies()) { + SpeciesProtocol row = SpeciesProtocols.newSpeciesProtocol(); + row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + binderSpecies.copy(speciesProtocol1, row); + if (speciesProtocol1.isAgeEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE); + } + if (speciesProtocol1.isSizeEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY); + } + if (speciesProtocol1.isMaturityEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY); + } + if (speciesProtocol1.isSexEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX); + } + result.addSpecies(row); + } + } + if (!tuttiProtocol1.isBenthosEmpty()) { + result.setBenthos(Lists.<SpeciesProtocol>newArrayList()); + Binder<SpeciesProtocol1, SpeciesProtocol> binderSpecies = BinderFactory.newBinder(SpeciesProtocol1.class, SpeciesProtocol.class); + for (SpeciesProtocol1 speciesProtocol1 : tuttiProtocol1.getBenthos()) { + SpeciesProtocol row = SpeciesProtocols.newSpeciesProtocol(); + row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + binderSpecies.copy(speciesProtocol1, row); + if (speciesProtocol1.isAgeEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE); + } + if (speciesProtocol1.isSizeEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY); + } + if (speciesProtocol1.isMaturityEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY); + } + if (speciesProtocol1.isSexEnabled()) { + row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX); + } + result.addBenthos(row); + } + } + return result; + } + + protected static YamlConfig createConfig() { + YamlConfig result = new YamlConfig(); + result.setClassTag(SpeciesProtocol.class.getSimpleName(), + SpeciesProtocols.typeOfSpeciesProtocol()); + result.writeConfig.setAlwaysWriteClassname(false); + result.writeConfig.setWriteRootTags(false); + return result; + } + + protected static YamlConfig createConfigV1() { + YamlConfig result = new YamlConfig(); + result.setClassTag(SpeciesProtocol.class.getSimpleName(), + SpeciesProtocolBean1.class); + result.writeConfig.setAlwaysWriteClassname(false); + result.writeConfig.setWriteRootTags(false); + return result; + } + + /** + * Return the speciesProtocol corresponding to the species of the given protocol. + * + * @param protocol protocol to scan + * @param species species filter + * @return the species protocol for the given species + * @since 2.5 + */ + public static SpeciesProtocol getSpeciesProtocol(TuttiProtocol protocol, Species species) { + return getSpeciesProtocol(species, protocol.getSpecies()); + } + + /** + * Return the speciesProtocol corresponding to the species of the species protocols. + * + * @param speciesProtocols species protocols to scan + * @param species species filter + * @return the species protocol for the given species + */ + public static SpeciesProtocol getSpeciesProtocol(Species species, + List<SpeciesProtocol> speciesProtocols) { + for (SpeciesProtocol speciesProtocol : speciesProtocols) { + if (species.getReferenceTaxonId().equals( + speciesProtocol.getSpeciesReferenceTaxonId())) { + return speciesProtocol; + } + } + return null; + } +} Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -37,9 +37,9 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl; import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -88,7 +88,7 @@ while (list.hasNext()) { Object[] source = list.next(); - AccidentalBatch accidentalBatch = TuttiBeanFactory.newAccidentalBatch(); + AccidentalBatch accidentalBatch = AccidentalBatchs.newAccidentalBatch(); int colIndex = 0; Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -47,7 +47,7 @@ * @param objectType type of object. * @param objectId id of the object * @return list of all attachments for the given {@code objectId}. - * (see {@link AttachementObjectTypeEnum}) + * (see {@link AttachementObjectTypeEnum}) */ List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType, Integer objectId); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -31,9 +31,9 @@ import fr.ifremer.adagio.core.dao.referential.ObjectTypeImpl; import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; import fr.ifremer.tutti.TuttiIOUtil; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -102,7 +102,7 @@ List<Attachment> result = Lists.newArrayList(); while (list.hasNext()) { Object[] source = list.next(); - Attachment target = TuttiBeanFactory.newAttachment(); + Attachment target = Attachments.newAttachment(); loadAttachment(source, target); result.add(target); } @@ -119,7 +119,7 @@ throw new DataRetrievalFailureException( "Could not retrieve Attachment with id=" + attachmentId); } - Attachment target = TuttiBeanFactory.newAttachment(); + Attachment target = Attachments.newAttachment(); loadAttachment(source, target); File result = getFile(target); @@ -236,7 +236,7 @@ throw new DataRetrievalFailureException( "Could not retrieve Attachment with id=" + attachmentId); } - Attachment target = TuttiBeanFactory.newAttachment(); + Attachment target = Attachments.newAttachment(); loadAttachment(source, target); delete(target); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -37,10 +37,11 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl; import fr.ifremer.tutti.persistence.InvalidBatchModelException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -122,7 +123,7 @@ if (species == null) { throw new InvalidBatchModelException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); } - BenthosBatch target = TuttiBeanFactory.newBenthosBatch(); + BenthosBatch target = BenthosBatchs.newBenthosBatch(); target.setSpecies(species); entityToBenthosBatch(source, target); result.addChildren(target); @@ -149,7 +150,7 @@ throw new InvalidBatchModelException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); } - BenthosBatch target = TuttiBeanFactory.newBenthosBatch(); + BenthosBatch target = BenthosBatchs.newBenthosBatch(); target.setSpecies(species); entityToBenthosBatch(source, target); @@ -264,7 +265,7 @@ sampleCategoryModel, benthosBatchId); List<BenthosBatchFrequency> results = Lists.newArrayList(); for (SortingBatch child : frequencyChilds) { - BenthosBatchFrequency target = TuttiBeanFactory.newBenthosBatchFrequency(); + BenthosBatchFrequency target = BenthosBatchFrequencys.newBenthosBatchFrequency(); entityToBenthosBatchFrequency(child, target); results.add(target); @@ -408,7 +409,7 @@ List<BenthosBatch> targetChilds = Lists.newArrayList(); for (Batch batch : source.getChildBatchs()) { SortingBatch sourceChild = (SortingBatch) batch; - BenthosBatch targetChild = TuttiBeanFactory.newBenthosBatch(); + BenthosBatch targetChild = BenthosBatchs.newBenthosBatch(); targetChild.setSpecies(target.getSpecies()); entityToBenthosBatch(sourceChild, targetChild); if (log.isDebugEnabled()) { Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceService.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -38,7 +38,7 @@ /** * @param operationId id of the fishing operation * @return {@code true} if there is a catchBatch for the given fishing - * operation, {@code false} otherwise. + * operation, {@code false} otherwise. * @since 2.2 */ boolean isFishingOperationWithCatchBatch(String operationId); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -43,7 +43,6 @@ import fr.ifremer.adagio.core.dao.data.vessel.VesselImpl; import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures; import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; -import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesExtendDao; import fr.ifremer.adagio.core.dao.referential.QualityFlag; import fr.ifremer.adagio.core.dao.referential.QualityFlagDao; import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; @@ -60,10 +59,11 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl; import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus; import fr.ifremer.tutti.TuttiBusinessException; +import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; @@ -143,8 +143,8 @@ @Resource(name = "gearDao") protected GearDao gearDao; - @Resource(name = "gearPhysicalFeaturesDao") - protected GearPhysicalFeaturesExtendDao gearPhysicalFeaturesDao; + @Resource(name = "gearPhysicalFeaturesDaoTutti") + protected GearPhysicalFeaturesDaoTutti gearPhysicalFeaturesDao; @Override public List<Cruise> getAllCruise(String programId) { @@ -155,7 +155,7 @@ List<Cruise> result = Lists.newArrayList(); while (list.hasNext()) { Object[] source = list.next(); - Cruise target = TuttiBeanFactory.newCruise(); + Cruise target = Cruises.newCruise(); target.setId(String.valueOf(source[0])); target.setName((String) source[1]); target.setBeginDate((Date) source[2]); @@ -174,7 +174,7 @@ if (source == null) { throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + id); } - Cruise result = TuttiBeanFactory.newCruise(); + Cruise result = Cruises.newCruise(); result.setId(id); int index = 0; @@ -230,7 +230,8 @@ while (list.hasNext()) { Object[] gearRow = list.next(); Gear target = referentialService.getGear((Integer) gearRow[0]); - Float multirigNumber = (Float) gearRow[1]; + target.setRankOrder((Short) gearRow[1]); + Float multirigNumber = (Float) gearRow[2]; if (multirigNumber != null && multirigNumber.intValue() > maxMultirigNumberFound) { maxMultirigNumberFound = multirigNumber.intValue(); } @@ -326,6 +327,127 @@ return bean; } + @Override + public Gear getGearWithCaracteristics(Gear gear, Cruise cruise) { + Preconditions.checkNotNull(cruise); + Preconditions.checkNotNull(cruise.getId(), "Cruise 'id' must not be null or empty"); + Preconditions.checkNotNull(gear); + Preconditions.checkNotNull(gear.getId(), "Gear 'id' must not be null or empty"); + + CaracteristicMap result = new CaracteristicMap(); + + Iterator<GearPhysicalMeasurement> list = queryListTyped( + "gearCaracteristics", + "cruiseId", IntegerType.INSTANCE, cruise.getIdAsInt(), + "gearId", IntegerType.INSTANCE, gear.getIdAsInt()); + + while (list.hasNext()) { + GearPhysicalMeasurement measurement = list.next(); + + Integer pmfmId = measurement.getPmfm().getId(); + if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) { + Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId); + + Serializable value = null; + switch (caracteristic.getCaracteristicType()) { + case NUMBER: + value = measurement.getNumericalValue(); + break; + case QUALITATIVE: + QualitativeValue qualitativeValue = measurement.getQualitativeValue(); + if (qualitativeValue != null) { + value = TuttiEntities.getQualitativeValue(caracteristic, + qualitativeValue.getId()); + } + break; + case TEXT: + value = measurement.getAlphanumericalValue(); + break; + } + result.put(caracteristic, value); + } + } + + gear.setCaracteristics(result); + return gear; + } + + @Override + public void saveGearCaracteristics(Gear gear, Cruise cruise) { + Preconditions.checkNotNull(cruise); + Preconditions.checkNotNull(cruise.getId(), "Cruise 'id' must not be null or empty"); + Preconditions.checkNotNull(gear); + Preconditions.checkNotNull(gear.getId(), "Gear 'id' must not be null or empty"); + + ScientificCruise scientificCruise = scientificCruiseDao.load(cruise.getIdAsInt()); + if (scientificCruise == null) { + throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + cruise.getId()); + } + + // Retrieve entities : FishingTrip + ObservedFishingTrip fishingTrip = (ObservedFishingTrip) scientificCruise.getFishingTrips().iterator().next(); + Preconditions.checkNotNull(fishingTrip); + + List<Integer> measurementsToRemove = Lists.newArrayList(); + + GearPhysicalFeatures gpf = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, gear.getIdAsInt(), true); + if (gpf.getGearPhysicalMeasurements() != null) { + for (GearPhysicalMeasurement measurement : gpf.getGearPhysicalMeasurements()) { + Integer pmfmId = measurement.getPmfm().getId(); + if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) { + measurementsToRemove.add(pmfmId); + } + } + } + + CaracteristicMap caracteristicMap = gear.getCaracteristics(); + if (caracteristicMap != null) { + for (Caracteristic caracteristic : caracteristicMap.keySet()) { + + Float numericalValue = null; + String alphanumericalValue = null; + Integer qualitativeValue = null; + Object value = caracteristicMap.get(caracteristic); + + switch (caracteristic.getCaracteristicType()) { + case NUMBER: + numericalValue = (Float) value; + break; + + case QUALITATIVE: + Integer qvId = null; + if (value instanceof CaracteristicQualitativeValue) { + qvId = Integer.valueOf(((CaracteristicQualitativeValue) value).getId()); + } else if (value instanceof Integer) { + qvId = (Integer) value; + } + qualitativeValue = qvId; + break; + + case TEXT: + alphanumericalValue = (String) value; + break; + } + + GearPhysicalMeasurement gearPhysicalMeasurement = + gearPhysicalFeaturesDao.setGearPhysicalMeasurement(scientificCruise, + gpf, + caracteristic.getIdAsInt(), + numericalValue, + alphanumericalValue, + qualitativeValue); + + measurementsToRemove.remove(gearPhysicalMeasurement.getPmfm().getId()); + } + } + + for (Integer pmfmId : measurementsToRemove) { + gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(gpf, pmfmId); + } + + gearPhysicalFeaturesDao.update(gpf); + } + protected void cruiseToEntity(Cruise source, ScientificCruise target) { QualityFlag qualityFlagNotQualified = load( @@ -412,9 +534,11 @@ notChangedGearPhysicalFeatures.addAll(fishingTrip.getGearPhysicalFeatures()); } - // Create or update a geaPhysicalFeatures for each gears in the cruise + short gearRankOrder = 1; + // Create or update a geaPhysicalFeatures for each gears in the cruise for (Gear gear : source.getGear()) { - GearPhysicalFeatures guf = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, gear.getIdAsInt(), true); + Short rankOrder = gear.getRankOrder(); + GearPhysicalFeatures guf = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, gear.getIdAsInt(), rankOrder, true); notChangedGearPhysicalFeatures.remove(guf); guf.setStartDate(fishingTrip.getDepartureDateTime()); @@ -423,8 +547,10 @@ guf.setProgram(fishingTrip.getProgram()); guf.setCreationDate(target.getCreationDate()); guf.setQualityFlag(qualityFlagNotQualified); - guf.setRankOrder((short) 1); + // realign the rankOrder using the order of the list of gears + guf.setRankOrder(gearRankOrder++); + // Trawl net (store in Gear Physical features) if (source.getMultirigNumber() == null) { gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(guf, enumeration.PMFM_ID_MULTIRIG_NUMBER); @@ -448,7 +574,7 @@ }); Iterator<Object[]> list = queryList( "allFishingOperationsWithGear", - "cruiseId", IntegerType.INSTANCE, Integer.valueOf(target.getId()), + "cruiseId", IntegerType.INSTANCE, target.getId(), "gearIds", IntegerType.INSTANCE, gearIds ); if (list.hasNext()) { @@ -464,7 +590,7 @@ } } - Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newTreeMap(); + Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newLinkedHashMap(); VesselPersonRole scientificCruiseManagerRole = vesselPersonFeaturesPersistenceHelper.getScientificCruiseManagerRole(); @@ -472,19 +598,9 @@ VesselPersonRole sortRoomManagerRole = vesselPersonFeaturesPersistenceHelper.getSortRoomManagerRole(); - // Sort Room Managers - if (CollectionUtils.isNotEmpty(source.getHeadOfSortRoom())) { - for (Person person : source.getHeadOfSortRoom()) { - Integer personId = person.getIdAsInt(); - vesselPersonFeaturesPersistenceHelper.fillVesselPersonFeatures( - vesselPersonFeaturesMap, - personId, - fishingTrip, - sortRoomManagerRole); - } - } + short personRankOrder = 1; - // Head of Mission Managers + // Head of Mission Managers (act as rankOrder 0) List<Person> persons = source.getHeadOfMission(); target.setManagerPerson(load(PersonImpl.class, persons.get(0).getIdAsInt())); @@ -494,9 +610,23 @@ vesselPersonFeaturesMap, personId, fishingTrip, - scientificCruiseManagerRole); + scientificCruiseManagerRole, + personRankOrder++); } + // Sort Room Managers + if (CollectionUtils.isNotEmpty(source.getHeadOfSortRoom())) { + for (Person person : source.getHeadOfSortRoom()) { + Integer personId = person.getIdAsInt(); + vesselPersonFeaturesPersistenceHelper.fillVesselPersonFeatures( + vesselPersonFeaturesMap, + personId, + fishingTrip, + sortRoomManagerRole, + personRankOrder++); + } + } + if (fishingTrip.getVesselPersonFeatures() == null) { fishingTrip.setVesselPersonFeatures(Sets.<VesselPersonFeatures>newHashSet()); } @@ -504,126 +634,6 @@ fishingTrip.getVesselPersonFeatures().addAll(vesselPersonFeaturesMap.values()); } - public Gear getGearWithCaracteristics(Gear gear, Cruise cruise) { - Preconditions.checkNotNull(cruise); - Preconditions.checkNotNull(cruise.getId(), "Cruise 'id' must not be null or empty"); - Preconditions.checkNotNull(gear); - Preconditions.checkNotNull(gear.getId(), "Gear 'id' must not be null or empty"); - - CaracteristicMap result = new CaracteristicMap(); - - Iterator<GearPhysicalMeasurement> list = queryListTyped( - "gearCaracteristics", - "cruiseId", IntegerType.INSTANCE, cruise.getIdAsInt(), - "gearId", IntegerType.INSTANCE, gear.getIdAsInt()); - - while (list.hasNext()) { - GearPhysicalMeasurement measurement = list.next(); - - Integer pmfmId = measurement.getPmfm().getId(); - if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) { - Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId); - - Serializable value = null; - switch (caracteristic.getCaracteristicType()) { - case NUMBER: - value = measurement.getNumericalValue(); - break; - case QUALITATIVE: - QualitativeValue qualitativeValue = measurement.getQualitativeValue(); - if (qualitativeValue != null) { - value = TuttiEntities.getQualitativeValue(caracteristic, - qualitativeValue.getId()); - } - break; - case TEXT: - value = measurement.getAlphanumericalValue(); - break; - } - result.put(caracteristic, value); - } - } - - gear.setCaracteristics(result); - return gear; - } - - public void saveGearCaracteristics(Gear gear, Cruise cruise) { - Preconditions.checkNotNull(cruise); - Preconditions.checkNotNull(cruise.getId(), "Cruise 'id' must not be null or empty"); - Preconditions.checkNotNull(gear); - Preconditions.checkNotNull(gear.getId(), "Gear 'id' must not be null or empty"); - - ScientificCruise scientificCruise = scientificCruiseDao.load(cruise.getIdAsInt()); - if (scientificCruise == null) { - throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + cruise.getId()); - } - - // Retrieve entities : FishingTrip - ObservedFishingTrip fishingTrip = (ObservedFishingTrip) scientificCruise.getFishingTrips().iterator().next(); - Preconditions.checkNotNull(fishingTrip); - - List<Integer> measurementsToRemove = Lists.newArrayList(); - - GearPhysicalFeatures gpf = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, gear.getIdAsInt(), true); - if (gpf.getGearPhysicalMeasurements() != null) { - for (GearPhysicalMeasurement measurement : gpf.getGearPhysicalMeasurements()) { - Integer pmfmId = measurement.getPmfm().getId(); - if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) { - measurementsToRemove.add(pmfmId); - } - } - } - - CaracteristicMap caracteristicMap = gear.getCaracteristics(); - if (caracteristicMap != null) { - for (Caracteristic caracteristic : caracteristicMap.keySet()) { - - Float numericalValue = null; - String alphanumericalValue = null; - Integer qualitativeValue = null; - Object value = caracteristicMap.get(caracteristic); - - switch (caracteristic.getCaracteristicType()) { - case NUMBER: - numericalValue = (Float) value; - break; - - case QUALITATIVE: - Integer qvId = null; - if (value instanceof CaracteristicQualitativeValue) { - qvId = Integer.valueOf(((CaracteristicQualitativeValue) value).getId()); - } else if (value instanceof Integer) { - qvId = (Integer) value; - } - qualitativeValue = qvId; - break; - - case TEXT: - alphanumericalValue = (String) value; - break; - } - - GearPhysicalMeasurement gearPhysicalMeasurement = - gearPhysicalFeaturesDao.setGearPhysicalMeasurement(scientificCruise, - gpf, - caracteristic.getIdAsInt(), - numericalValue, - alphanumericalValue, - qualitativeValue); - - measurementsToRemove.remove(gearPhysicalMeasurement.getPmfm().getId()); - } - } - - for (Integer pmfmId : measurementsToRemove) { - gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(gpf, pmfmId); - } - - gearPhysicalFeaturesDao.update(gpf); - - } - // adapt to surveyMeasurement protected SurveyMeasurement getOrCreateSurveyMeasurement(FishingTrip fishingTrip, Integer pmfmId) { Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -47,7 +47,6 @@ import fr.ifremer.adagio.core.dao.data.vessel.VesselImpl; import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures; import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeatures; -import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesExtendDao; import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures; import fr.ifremer.adagio.core.dao.data.vessel.feature.use.VesselUseFeatures; import fr.ifremer.adagio.core.dao.data.vessel.feature.use.isActive; @@ -62,13 +61,16 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl; import fr.ifremer.adagio.core.service.referential.location.LocationService; +import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -130,8 +132,8 @@ @Resource(name = "scientificCruiseDao") protected ScientificCruiseDao scientificCruiseDao; - @Resource(name = "gearPhysicalFeaturesDao") - protected GearPhysicalFeaturesExtendDao gearPhysicalFeaturesDao; + @Resource(name = "gearPhysicalFeaturesDaoTutti") + protected GearPhysicalFeaturesDaoTutti gearPhysicalFeaturesDao; @Resource(name = "fishingArea2RegulationLocationDao") protected FishingArea2RegulationLocationDao fishingArea2RegulationLocationDao; @@ -189,7 +191,7 @@ Object[] source = list.next(); fishingOperationRankOrder++; - FishingOperation fishingOperation = TuttiBeanFactory.newFishingOperation(); + FishingOperation fishingOperation = FishingOperations.newFishingOperation(); int colIndex = 0; // Id @@ -246,7 +248,7 @@ if (source == null) { throw new DataRetrievalFailureException("Could not retrieve fishingOperation with id=" + id); } - FishingOperation result = TuttiBeanFactory.newFishingOperation(); + FishingOperation result = FishingOperations.newFishingOperation(); result.setId(id); // Cruise : @@ -259,6 +261,7 @@ if (StringUtils.isNotBlank(name)) { result.setFishingOperationNumber(Integer.valueOf(name)); } + Short rankOrder = (Short) source[colIndex++]; // If not found, compute it using a counter (see "order by startDateTime" in HQL query) if (result.getFishingOperationNumber() == null) { @@ -297,8 +300,14 @@ // Gear : Integer gearId = (Integer) source[colIndex++]; if (gearId != null) { - fr.ifremer.tutti.persistence.entities.referential.Gear gear = referentialService.getGear(gearId); - result.setGear(gear); + // get gear from referential + Gear gear = referentialService.getGear(gearId); + Preconditions.checkNotNull(gear); + // use a copy of it with rankOrder + Gear toSet = Gears.newGear(gear); + toSet.setRankOrder(rankOrder); + + result.setGear(toSet); } // Start position @@ -666,7 +675,7 @@ ScientificCruise scientificCruise; FishingTrip fishingTrip = target.getFishingTrip(); if (fishingTrip == null) { - scientificCruise = scientificCruiseDao.load(Integer.valueOf(source.getCruise().getId())); + scientificCruise = scientificCruiseDao.load(source.getCruise().getIdAsInt()); fishingTrip = scientificCruise.getFishingTrips().iterator().next(); fishingTrip.getOperations().add(target); // Inverse link } else { @@ -729,19 +738,41 @@ notChangedVesselUseMeasurements.addAll(vesselUseFeatures.getVesselUseMeasurements()); } + boolean withGear = source.getGear() != null; + + Short gearRankOrder = withGear ? source.getGear().getRankOrder() : 0; + + if (gearRankOrder == null) { + gearRankOrder = 1; + } + + if (log.isInfoEnabled()) { + log.info("Use gear rankOrder: " + gearRankOrder); + } + // Retrieve entities : Gear Physical Features GearPhysicalFeatures gearPhysicalFeatures = target.getGearPhysicalFeatures(); - if (gearPhysicalFeatures == null && source.getGear() != null && source.getGear().getId() != null) { - gearPhysicalFeatures = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, Integer.valueOf(source.getGear().getId())); + if (withGear) { + + // use selected gear + if (gearPhysicalFeatures == null) { - throw new DataIntegrityViolationException("An operation could not use a gear that is not declared in the cruise."); + gearPhysicalFeatures = gearPhysicalFeaturesDao.getGearPhysicalfeatures(fishingTrip, source.getGear().getIdAsInt(), false); + if (gearPhysicalFeatures == null) { + throw new DataIntegrityViolationException("An operation could not use a gear that is not declared in the cruise."); + } + target.setGearPhysicalFeatures(gearPhysicalFeatures); + if (gearPhysicalFeatures.getOperations() == null) { + gearPhysicalFeatures.setOperations(Sets.newHashSet((Operation) target)); + } else { + gearPhysicalFeatures.getOperations().add(target); + } } - target.setGearPhysicalFeatures(gearPhysicalFeatures); - if (gearPhysicalFeatures.getOperations() == null) { - gearPhysicalFeatures.setOperations(Sets.newHashSet((Operation) target)); - } else { - gearPhysicalFeatures.getOperations().add(target); - } + } else { + + // no gear + gearUseFeatures.setGear(null); + gearUseFeatures.setRankOrder((short) 0); } // Retrieve entities : Fishing Area @@ -898,10 +929,12 @@ } // GearUseFeatures.Gear - if (source.getGear() == null) { + if (!withGear) { gearUseFeatures.setGear(null); - } else if (source.getGear() != null && source.getGear().getId() != null) { - gearUseFeatures.setGear(load(GearImpl.class, Integer.valueOf(source.getGear().getId()))); + gearUseFeatures.setRankOrder((short)0); + } else { + gearUseFeatures.setGear(load(GearImpl.class, source.getGear().getIdAsInt())); + gearUseFeatures.setRankOrder(gearRankOrder); } // Start position : @@ -974,12 +1007,16 @@ } } - // Recorder persons + // ---------------------------------------------------------------- + // Recorder persons --- + // ---------------------------------------------------------------- + Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newTreeMap(); VesselPersonRole recorderPersonRole = vesselPersonFeaturesPersistenceHelper.getRecorderPersonRole(); + short personRankOrder = 1; if (CollectionUtils.isNotEmpty(source.getRecorderPerson())) { for (Person person : source.getRecorderPerson()) { Integer personId = person.getIdAsInt(); @@ -987,7 +1024,8 @@ vesselPersonFeaturesMap, personId, target, - recorderPersonRole); + recorderPersonRole, + personRankOrder++); } } if (target.getVesselPersonFeatures() == null) { @@ -1046,7 +1084,7 @@ FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK(); fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK); fa2rlPK.setFishingArea(fishingArea); - fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getStrata().getId()))); + fa2rlPK.setLocation(load(LocationImpl.class, source.getStrata().getIdAsInt())); notChangedRegulationLocation.remove(fa2rl); if (fishingArea.getRegulationLocation() == null) { @@ -1055,7 +1093,7 @@ fishingArea.getRegulationLocation().add(fa2rl); } if (statisticalLocationId == null) { - statisticalLocationId = Integer.valueOf(source.getStrata().getId()); + statisticalLocationId = source.getStrata().getIdAsInt(); } } @@ -1065,7 +1103,7 @@ FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK(); fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK); fa2rlPK.setFishingArea(fishingArea); - fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getSubStrata().getId()))); + fa2rlPK.setLocation(load(LocationImpl.class, source.getSubStrata().getIdAsInt())); notChangedRegulationLocation.remove(fa2rl); @@ -1075,7 +1113,7 @@ fishingArea.getRegulationLocation().add(fa2rl); } if (statisticalLocationId == null) { - statisticalLocationId = Integer.valueOf(source.getSubStrata().getId()); + statisticalLocationId = source.getSubStrata().getIdAsInt(); } } @@ -1085,7 +1123,7 @@ FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK(); fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK); fa2rlPK.setFishingArea(fishingArea); - fa2rlPK.setLocation(load(LocationImpl.class, Integer.valueOf(source.getLocation().getId()))); + fa2rlPK.setLocation(load(LocationImpl.class, source.getLocation().getIdAsInt())); notChangedRegulationLocation.remove(fa2rl); if (fishingArea.getRegulationLocation() == null) { @@ -1094,7 +1132,7 @@ fishingArea.getRegulationLocation().add(fa2rl); } if (statisticalLocationId == null) { - statisticalLocationId = Integer.valueOf(source.getLocation().getId()); + statisticalLocationId = source.getLocation().getIdAsInt(); } } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -39,10 +39,10 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl; import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper; @@ -104,7 +104,7 @@ Object[] source = list.next(); IndividualObservationBatch batch = - TuttiBeanFactory.newIndividualObservationBatch(); + IndividualObservationBatchs.newIndividualObservationBatch(); int colIndex = 0; Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -33,10 +33,10 @@ import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement; import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper; @@ -105,7 +105,7 @@ for (Batch batch1 : sortingBatch.getChildBatchs()) { SortingBatch source = (SortingBatch) batch1; - MarineLitterBatch target = TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatch target = MarineLitterBatchs.newMarineLitterBatch(); entityToMarineLitterBatch(source, target); result.addChildren(target); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -31,9 +31,10 @@ import fr.ifremer.adagio.core.dao.referential.location.Location; import fr.ifremer.adagio.core.dao.referential.location.LocationDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonGroupTypeImpl; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.type.IntegerType; @@ -85,7 +86,7 @@ List<Program> result = Lists.newArrayList(); while (list.hasNext()) { Object[] source = list.next(); - Program target = TuttiBeanFactory.newProgram(); + Program target = Programs.newProgram(); loadProgram(target, source); result.add(target); } @@ -107,7 +108,7 @@ // Keep only the first row (=the first location, if many found) Object[] source = list.next(); - result = TuttiBeanFactory.newProgram(); + result = Programs.newProgram(); loadProgram(result, source); } else { result = null; @@ -163,7 +164,7 @@ result.setName((String) source[1]); result.setDescription((String) source[2]); if (source[3] != null) { - TuttiLocation zone = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation zone = TuttiLocations.newTuttiLocation(); zone.setId(String.valueOf(source[3])); zone.setLabel((String) source[4]); zone.setName((String) source[5]); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,9 +26,9 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.TuttiIOUtil; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import org.apache.commons.io.FileUtils; @@ -126,7 +126,7 @@ Binder<TuttiProtocol, TuttiProtocol> protocolBinder = BinderFactory.newBinder(TuttiProtocol.class); - TuttiProtocol result = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol result = TuttiProtocols.newTuttiProtocol(); protocolBinder.copy(bean, result); result.setId(UUID.randomUUID().toString()); @@ -138,7 +138,7 @@ List<SpeciesProtocol> species = Lists.newArrayList(); if (!bean.isSpeciesEmpty()) { for (SpeciesProtocol speciesProtocol : bean.getSpecies()) { - SpeciesProtocol s = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol s = SpeciesProtocols.newSpeciesProtocol(); speciesProtocolBinder.copy(speciesProtocol, s); s.setId(UUID.randomUUID().toString()); species.add(s); @@ -149,7 +149,7 @@ List<SpeciesProtocol> benthos = Lists.newArrayList(); if (!bean.isBenthosEmpty()) { for (SpeciesProtocol speciesProtocol : bean.getBenthos()) { - SpeciesProtocol s = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol s = SpeciesProtocols.newSpeciesProtocol(); speciesProtocolBinder.copy(speciesProtocol, s); s.setId(UUID.randomUUID().toString()); benthos.add(s); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -36,20 +36,27 @@ import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO; import fr.ifremer.adagio.core.service.technical.CacheService; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristics; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.ObjectType; +import fr.ifremer.tutti.persistence.entities.referential.ObjectTypes; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.Status; -import fr.ifremer.tutti.persistence.entities.referential.StatusBean; +import fr.ifremer.tutti.persistence.entities.referential.Statuss; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -743,7 +750,7 @@ vesselTypeId); // Fill the result bean - Vessel result = TuttiBeanFactory.newVessel(); + Vessel result = Vessels.newVessel(); result.setId(target.getCode()); result.setName(source.getName()); result.setRegistrationCode(source.getRegistrationCode()); @@ -761,7 +768,7 @@ fr.ifremer.adagio.core.dao.administration.user.Person target = personDao.createAsTemporary(source.getLastName(), source.getFirstName(), enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT); // Fill the result bean - Person result = TuttiBeanFactory.newPerson(); + Person result = Persons.newPerson(); result.setId(target.getId().toString()); result.setLastName(source.getLastName()); result.setFirstName(source.getFirstName()); @@ -805,7 +812,7 @@ fr.ifremer.adagio.core.dao.referential.gear.Gear target = fishingGearDao.createAsTemporary(source.getLabel(), source.getName(), gearClassificationId); // Fill the result bean - Gear result = TuttiBeanFactory.newGear(); + Gear result = Gears.newGear(); result.setId(target.getId().toString()); result.setLabel(source.getLabel()); result.setName(source.getName()); @@ -835,7 +842,7 @@ Integer pmfmId = (Integer) source[0]; - Caracteristic result = TuttiBeanFactory.newCaracteristic(); + Caracteristic result = Caracteristics.newCaracteristic(); result.setId(pmfmId.toString()); result.setParameterName((String) source[1]); result.setMatrixName((String) source[2]); @@ -863,7 +870,7 @@ List<CaracteristicQualitativeValue> values = Lists.newArrayList(); while (sources.hasNext()) { Object[] source2 = sources.next(); - CaracteristicQualitativeValue target2 = TuttiBeanFactory.newCaracteristicQualitativeValue(); + CaracteristicQualitativeValue target2 = CaracteristicQualitativeValues.newCaracteristicQualitativeValue(); target2.setId(String.valueOf(source2[0])); target2.setName(String.valueOf(source2[1])); target2.setDescription(String.valueOf(source2[2])); @@ -876,7 +883,7 @@ } protected ObjectType loadObjectType(Object[] source) { - ObjectType result = TuttiBeanFactory.newObjectType(); + ObjectType result = ObjectTypes.newObjectType(); result.setId((String) source[0]); result.setName((String) source[1]); result.setDescription((String) source[2]); @@ -884,7 +891,7 @@ } protected Species loadSpecies(TaxonRefVO source) { - Species target = TuttiBeanFactory.newSpecies(); + Species target = Speciess.newSpecies(); target.setId(String.valueOf(source.getTaxonNameId())); target.setName(source.getName()); target.setExternalCode(source.getExternalCode()); @@ -896,7 +903,7 @@ } protected Vessel loadVessel(Object[] source, boolean scientificVessel) { - Vessel target = TuttiBeanFactory.newVessel(); + Vessel target = Vessels.newVessel(); target.setId((String) source[0]); target.setRegistrationCode((String) source[1]); target.setInternationalRegistrationCode((String) source[2]); @@ -907,7 +914,7 @@ } protected Person loadPerson(Object[] source) { - Person target = TuttiBeanFactory.newPerson(); + Person target = Persons.newPerson(); target.setId(String.valueOf(source[0])); target.setLastName((String) source[1]); target.setFirstName((String) source[2]); @@ -917,7 +924,7 @@ } protected Gear loadGear(Object[] source) { - Gear result = TuttiBeanFactory.newGear(); + Gear result = Gears.newGear(); result.setId(String.valueOf(source[0])); result.setLabel((String) source[1]); result.setName((String) source[2]); @@ -933,7 +940,7 @@ } protected TuttiLocation loadLocation(Object[] source) { - TuttiLocation target = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation target = TuttiLocations.newTuttiLocation(); target.setId(String.valueOf(source[0])); target.setLabel((String) source[1]); target.setName((String) source[2]); @@ -962,7 +969,7 @@ } protected <E extends TuttiReferentialEntity> void setStatus(fr.ifremer.adagio.core.dao.referential.Status status, E entity) { - Status newStatus = new StatusBean(); + Status newStatus = Statuss.newStatus(); newStatus.setId(status.getCode()); newStatus.setName(status.getName()); entity.setStatus(newStatus); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -37,11 +37,12 @@ import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl; import fr.ifremer.tutti.persistence.InvalidBatchModelException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper; @@ -129,7 +130,7 @@ if (species == null) { throw new InvalidBatchModelException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); } - SpeciesBatch target = TuttiBeanFactory.newSpeciesBatch(); + SpeciesBatch target = SpeciesBatchs.newSpeciesBatch(); target.setSpecies(species); entityToSpeciesBatch(source, target); result.addChildren(target); @@ -158,7 +159,7 @@ if (species == null) { throw new InvalidBatchModelException(_("tutti.persistence.batch.validation.unkonwn.taxon", source.getId(), referenceTaxon.getId())); } - SpeciesBatch target = TuttiBeanFactory.newSpeciesBatch(); + SpeciesBatch target = SpeciesBatchs.newSpeciesBatch(); target.setSpecies(species); entityToSpeciesBatch(source, target); result.addChildren(target); @@ -276,7 +277,7 @@ List<SpeciesBatchFrequency> results = Lists.newArrayList(); for (SortingBatch child : frequencyChilds) { SpeciesBatchFrequency target = - TuttiBeanFactory.newSpeciesBatchFrequency(); + SpeciesBatchFrequencys.newSpeciesBatchFrequency(); entityToSpeciesBatchFrequency(child, target); results.add(target); @@ -447,7 +448,7 @@ List<SpeciesBatch> targetChilds = Lists.newArrayList(); for (Batch batch : source.getChildBatchs()) { SortingBatch sourceChild = (SortingBatch) batch; - SpeciesBatch targetChild = TuttiBeanFactory.newSpeciesBatch(); + SpeciesBatch targetChild = SpeciesBatchs.newSpeciesBatch(); targetChild.setSpecies(target.getSpecies()); entityToSpeciesBatch(sourceChild, targetChild); if (log.isDebugEnabled()) { Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -337,7 +337,7 @@ /** * @param pmfmId id of pmfm to test * @return {@code true} if the pmfm should NOT be used for caracteristics lists - * (i.e. because used somewhere when storing some properties into the database) + * (i.e. because used somewhere when storing some properties into the database) */ public boolean isProtectedCaracteristic(Integer pmfmId) { return propertedPmfmIds.contains(pmfmId); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -69,7 +69,8 @@ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson, Integer personId, FishingTrip fishingTrip, - VesselPersonRole role) { + VesselPersonRole role, + short rankOrder) { VesselPersonFeatures vesselPersonFeatures = vesselPersonFeaturesPerPerson.get(personId); @@ -93,7 +94,7 @@ vesselPersonFeatures.setCreationDate(fishingTrip.getCreationDate()); vesselPersonFeatures.setQualityFlag(fishingTrip.getQualityFlag()); - vesselPersonFeatures.setRankOrder((short) 1); + vesselPersonFeatures.setRankOrder(rankOrder); } addRole(role, vesselPersonFeatures); @@ -102,7 +103,8 @@ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson, Integer personId, FishingOperation fishingOperation, - VesselPersonRole role) { + VesselPersonRole role, + short rankOrder) { VesselPersonFeatures vesselPersonFeatures = vesselPersonFeaturesPerPerson.get(personId); @@ -124,7 +126,7 @@ vesselPersonFeatures.setCreationDate(new Date()); vesselPersonFeatures.setQualityFlag(fishingOperation.getQualityFlag()); - vesselPersonFeatures.setRankOrder((short) 1); + vesselPersonFeatures.setRankOrder(rankOrder); } addRole(role, vesselPersonFeatures); Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -911,10 +911,10 @@ * @param sampleCategoryModel model of authorized sample categories * @param sortingBatch batch to check * @return {@code true} if given batch is a frequency batch, - * {@code false} otherwise. + * {@code false} otherwise. */ public boolean isFrequencyBatch(SampleCategoryModel sampleCategoryModel, - SortingBatch sortingBatch) { + SortingBatch sortingBatch) { boolean result = false; if (sortingBatch.getSortingMeasurements().size() == 1) { SortingMeasurement sm Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/TuttiCatchBatchValidator.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/TuttiCatchBatchValidator.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/TuttiCatchBatchValidator.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -42,8 +42,8 @@ public interface TuttiCatchBatchValidator extends CatchBatchValidator { List<CatchBatchValidationError> validateSpecies(SampleCategoryModel sampleCategoryModel, - BatchContainer<SpeciesBatch> species); + BatchContainer<SpeciesBatch> species); List<CatchBatchValidationError> validateBenthos(SampleCategoryModel sampleCategoryModel, - BatchContainer<BenthosBatch> benthos); + BatchContainer<BenthosBatch> benthos); } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelper.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelper.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelper.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -184,9 +184,9 @@ * @param remoteProperties properties to connect to remove database * @param dialect dialect used to seek metadata of databases. * @return Result of the synchronize operation, if there is an error then - * the {@link ReferentialSynchronizeResult#isSuccess()} is {@code false} - * and you can get the error at - * {@link ReferentialSynchronizeResult#getError()} + * the {@link ReferentialSynchronizeResult#isSuccess()} is {@code false} + * and you can get the error at + * {@link ReferentialSynchronizeResult#getError()} */ public ReferentialSynchronizeResult synchronize(Properties localProperties, Properties remoteProperties, @@ -331,8 +331,8 @@ * @param connection connection to data source to query * @param table the table to query * @return the last update date of the given table, or {@code null} - * if table does not use a updateDate columns or if there - * is no data in table. + * if table does not use a updateDate columns or if there + * is no data in table. */ public Timestamp getLastUpdateDate(Connection connection, TuttiTableMetadata table) throws SQLException { Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,18 +26,24 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.persistence.service.AccidentalBatchPersistenceService; import fr.ifremer.tutti.persistence.service.CatchBatchPersistenceService; import fr.ifremer.tutti.persistence.service.CruisePersistenceService; @@ -64,9 +70,13 @@ */ public class DatabaseFixtures { - public Version lastAdagioSchemaVersion() {return VersionUtil.valueOf("3.2.3"); } + public Version lastAdagioSchemaVersion() { + return VersionUtil.valueOf("3.2.3"); + } - public Version currentAdagioSchemaVersion() {return VersionUtil.valueOf("3.2.1.01"); } + public Version currentAdagioSchemaVersion() { + return VersionUtil.valueOf("3.2.1.01"); + } public String programCode() { // campaign CGFS @@ -233,7 +243,7 @@ setUp(); String programCode = programCode(); - Cruise cruise = TuttiBeanFactory.newCruise(); + Cruise cruise = Cruises.newCruise(); // ----------------------------------------------------------------------------- // 1. Test with all properties filled @@ -265,7 +275,7 @@ Person managerPerson = referentialService.getAllPerson().get(0); cruise.setHeadOfMission(Lists.newArrayList(managerPerson)); - Vessel fishingVessel = TuttiBeanFactory.newVessel(); + Vessel fishingVessel = Vessels.newVessel(); fishingVessel.setId(fishingVesselCode()); cruise.setVessel(fishingVessel); @@ -279,7 +289,7 @@ public FishingOperation createFishingOperation(Cruise cruise) { setUp(); - FishingOperation fishingOperation = TuttiBeanFactory.newFishingOperation(); + FishingOperation fishingOperation = FishingOperations.newFishingOperation(); fishingOperation.setCruise(cruise); fishingOperation.setComment("newFishingOperation"); fishingOperation.setFishingOperationNumber(1); @@ -371,13 +381,13 @@ fishingOperation.setVesselUseFeatures(environmentCaracteristics); fishingOperation.setGearUseFeatures(gearShootingCaracteristics); - TuttiLocation strata = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation strata = TuttiLocations.newTuttiLocation(); strata.setId(strataId()); fishingOperation.setStrata(strata); - TuttiLocation subStrata = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation subStrata = TuttiLocations.newTuttiLocation(); subStrata.setId(subStrataId()); fishingOperation.setSubStrata(subStrata); - TuttiLocation localite = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation localite = TuttiLocations.newTuttiLocation(); localite.setId(localite()); fishingOperation.setLocation(localite); @@ -389,7 +399,7 @@ setUp(); - CatchBatch catchBatch = TuttiBeanFactory.newCatchBatch(); + CatchBatch catchBatch = CatchBatchs.newCatchBatch(); catchBatch.setFishingOperation(fishingOperation); CatchBatch result = catchBatchService.createCatchBatch(catchBatch); return result; @@ -399,7 +409,7 @@ setUp(); - AccidentalBatch minimalAccidentalBatch = TuttiBeanFactory.newAccidentalBatch(); + AccidentalBatch minimalAccidentalBatch = AccidentalBatchs.newAccidentalBatch(); minimalAccidentalBatch.setFishingOperation(fishingOperation); minimalAccidentalBatch.setSpecies(referentialService.getSpeciesByReferenceTaxonId(refSpeciesTaxonId())); minimalAccidentalBatch.setCaracteristics(new CaracteristicMap()); @@ -412,7 +422,7 @@ setUp(); - IndividualObservationBatch minimalAccidentalBatch = TuttiBeanFactory.newIndividualObservationBatch(); + IndividualObservationBatch minimalAccidentalBatch = IndividualObservationBatchs.newIndividualObservationBatch(); minimalAccidentalBatch.setFishingOperation(fishingOperation); minimalAccidentalBatch.setSpecies(referentialService.getSpeciesByReferenceTaxonId(refSpeciesTaxonId())); minimalAccidentalBatch.setCaracteristics(new CaracteristicMap()); Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml =================================================================== --- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2013-09-30 12:34:52 UTC (rev 1250) @@ -31,6 +31,8 @@ <context:component-scan base-package="fr.ifremer.tutti.persistence.service"/> + <context:component-scan base-package="fr.ifremer.tutti.persistence.dao" /> + <bean id="tuttiPersistence" class="fr.ifremer.tutti.persistence.TuttiPersistenceImpl"/> Modified: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml =================================================================== --- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2013-09-30 12:34:52 UTC (rev 1250) @@ -136,7 +136,8 @@ <![CDATA[ SELECT vpf.person.id AS personId, - vpr.id AS roleId + vpr.id AS roleId, + vpf.rankOrder FROM ScientificCruiseImpl sc JOIN sc.fishingTrips ft @@ -144,6 +145,7 @@ JOIN vpf.vesselPersonRoles vpr WHERE sc.id = :cruiseId + ORDER By vpf.rankOrder ]]> <query-param name="cruiseId" type="java.lang.Integer"/> </query> @@ -152,6 +154,7 @@ <![CDATA[ SELECT gpf.gear.id AS gearId, + gpf.rankOrder AS rankOrder, MAX(CASE gpm.pmfm.id WHEN :pmfmIdTrawlNet THEN gpm.numericalValue ELSE 0 @@ -166,9 +169,10 @@ WHERE sc.id = :cruiseId GROUP BY - gpf.gear.id - ORDER BY count(o.id) DESC + gpf.gear.id, gpf.rankOrder + ORDER BY gpf.rankOrder ASC ]]> + <!--ORDER BY count(o.id) DESC--> <query-param name="cruiseId" type="java.lang.Integer"/> <query-param name="pmfmIdTrawlNet" type="java.lang.Integer"/> </query> @@ -266,6 +270,7 @@ <![CDATA[ SELECT o.name AS name, + guf.rankOrder AS rankOrder, max(o.startDateTime) AS startDateTime, max(o.endDateTime) AS endDateTime, max(o.comments) AS comments, @@ -286,7 +291,7 @@ LEFT OUTER JOIN o.operationVesselAssociations va WHERE o.id=:fishingOperationId - GROUP BY o.name + GROUP BY o.name, guf.rankOrder ]]> <query-param name="fishingOperationId" type="java.lang.Integer"/> <query-param name="locationLevelIdStrata" type="java.lang.Integer"/> @@ -346,12 +351,14 @@ <![CDATA[ SELECT vpf.person.id AS personId, - vpr.id AS roleId + vpr.id AS roleId, + vpf.rankOrder FROM VesselPersonFeaturesImpl vpf JOIN vpf.vesselPersonRoles vpr WHERE vpf.operation.id = :fishingOperationId + ORDER By vpf.rankOrder ]]> <query-param name="fishingOperationId" type="java.lang.Integer"/> </query> Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties =================================================================== --- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2013-09-30 12:34:52 UTC (rev 1250) @@ -22,16 +22,15 @@ # #L% ### -model.tagvalue.version=1.2 +model.tagvalue.version=1.3 model.tagvalue.constantPrefix=PROPERTY_ model.tagvalue.doNotGenerateBooleanGetMethods=true model.tagvalue.noPCS=true model.tagvalue.simpleBeanSuperClass=fr.ifremer.tutti.persistence.entities.TuttiEntityBean -model.tagvalue.simpleBeanInterfaceSuperClass=fr.ifremer.tutti.persistence.entities.TuttiEntity -model.tagvalue.simpleBeanGenerateInterface=true -model.tagvalue.simpleBeanGenerateFactory=true model.tagvalue.simpleBeanClassNameSuffix=Bean -model.tagvalue.simpleBeanExtractInterface=true +model.tagvalue.simpleBeanGenerateInterface=true +model.tagvalue.simpleBeanInterfaceSuperClass=fr.ifremer.tutti.persistence.entities.TuttiEntity +model.tagvalue.simpleBeanGenerateDefaults=true fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol.attribute.mandatorySampleCategoryId.stereotype=indexed Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo =================================================================== (Binary files differ) Deleted: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -1,320 +0,0 @@ -package fr.ifremer.tutti.persistence.entities.protocol; - -/* - * #%L - * Tutti :: Persistence API - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 - 2013 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.Charsets; -import com.google.common.collect.Lists; -import com.google.common.io.Files; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; -import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; -import org.apache.commons.lang3.reflect.FieldUtils; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestName; -import org.nuiton.util.FileUtil; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; - -/** - * @author tchemit <chemit@codelutin.com> - * @since 1.0 - */ -public class TuttiProtocolsTest { - - public static final String PROTOCOL_FILE_CONTENT = - "id: 1\n" + - "name: protocolName\n" + - "benthos: \n" + - "- !SpeciesProtocol\n" + - " id: 1\n" + - " calcifySampleEnabled: true\n" + - " lengthStepPmfmId: 1394\n" + - " mandatorySampleCategoryId: \n" + - " - 174\n" + - " - 196\n" + - " speciesReferenceTaxonId: 11242\n" + - " speciesSurveyCode: BAR\n" + - " weightEnabled: true\n" + - "- !SpeciesProtocol\n" + - " id: 2\n" + - " calcifySampleEnabled: true\n" + - " countIfNoFrequencyEnabled: true\n" + - " lengthStepPmfmId: 323\n" + - " mandatorySampleCategoryId: \n" + - " - 1430\n" + - " - 174\n" + - " - 196\n" + - " - 198\n" + - " speciesReferenceTaxonId: 3835\n" + - " speciesSurveyCode: CHIN\n" + - " weightEnabled: true\n" + - "comment: Commentaire\n" + - "gearUseFeaturePmfmId: \n" + - "- 21\n" + - "- 22\n" + - "lengthClassesPmfmId: \n" + - "- 14\n" + - "- 18\n" + - "species: \n" + - "- !SpeciesProtocol\n" + - " id: 1\n" + - " calcifySampleEnabled: true\n" + - " lengthStepPmfmId: 1394\n" + - " mandatorySampleCategoryId: \n" + - " - 174\n" + - " - 196\n" + - " speciesReferenceTaxonId: 11242\n" + - " speciesSurveyCode: BAR\n" + - " weightEnabled: true\n" + - "- !SpeciesProtocol\n" + - " id: 2\n" + - " calcifySampleEnabled: true\n" + - " countIfNoFrequencyEnabled: true\n" + - " lengthStepPmfmId: 323\n" + - " mandatorySampleCategoryId: \n" + - " - 1430\n" + - " - 174\n" + - " - 196\n" + - " - 198\n" + - " speciesReferenceTaxonId: 3835\n" + - " speciesSurveyCode: CHIN\n" + - " weightEnabled: true\n" + - "version: 2\n" + - "vesselUseFeaturePmfmId: \n" + - "- 114\n" + - "- 228\n" + - "- 821"; - - public static final int VRAC_HORS_VRAC = 1428; - - public static final int SIZE = 198; - - public static final int SEX = 196; - - public static final int MATURITY = 174; - - public static final int AGE = 1430; - - public static final long TIMESTAMP = System.nanoTime(); - - @Rule - public final TestName name = new TestName(); - - protected File datadirectory; - - @Before - public void setUp() throws Exception { - - datadirectory = FileUtil.getTestSpecificDirectory(getClass(), - name.getMethodName(), - null, - TIMESTAMP); - } - - @Test - public void toFile() throws IOException { - - File file = new File(datadirectory, "exportProtocol.yaml"); - - Files.createParentDirs(file); - - Assert.assertFalse(file.exists()); - TuttiProtocol protocol = createProtocolFixture(); - - TuttiProtocols.toFile(protocol, file); - Assert.assertTrue(file.exists()); - - String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); - Assert.assertEquals(PROTOCOL_FILE_CONTENT, exportFileToString); - } - - protected void setField(Object o, String fieldName, Object value) throws IllegalAccessException { - Field field = FieldUtils.getField(o.getClass(), fieldName); -// field.setAccessible(true); - FieldUtils.writeField(field, o, value, true); - } - - @Test - public void fromFile() throws Exception { - - File file = new File(datadirectory, "importProtocol.yaml"); - - Files.createParentDirs(file); - - Files.write(PROTOCOL_FILE_CONTENT, file, Charsets.UTF_8); - - TuttiEnumerationFile enumeration = new TuttiEnumerationFile(); - - setField(enumeration, "PMFM_ID_SORTED_UNSORTED", VRAC_HORS_VRAC); - setField(enumeration, "PMFM_ID_SIZE_CATEGORY", SIZE); - setField(enumeration, "PMFM_ID_SEX", SEX); - setField(enumeration, "PMFM_ID_MATURITY", MATURITY); - setField(enumeration, "PMFM_ID_AGE", AGE); - - TuttiProtocol protocol = TuttiProtocols.fromFile(enumeration, file); - - Assert.assertNotNull(protocol); - Assert.assertEquals("1", protocol.getId()); - Assert.assertEquals("protocolName", protocol.getName()); - Assert.assertEquals("Commentaire", protocol.getComment()); - Assert.assertEquals(Lists.newArrayList("14", "18"), protocol.getLengthClassesPmfmId()); - Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getVesselUseFeaturePmfmId()); - Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearUseFeaturePmfmId()); - - Assert.assertNotNull(protocol.getSpecies()); - Assert.assertEquals(2, protocol.getSpecies().size()); - SpeciesProtocol sp1 = protocol.getSpecies().get(0); - Assert.assertNotNull(sp1); - Assert.assertEquals("1", sp1.getId()); - Assert.assertEquals(11242, sp1.getSpeciesReferenceTaxonId(), 0); - Assert.assertEquals("BAR", sp1.getSpeciesSurveyCode()); - Assert.assertEquals("1394", sp1.getLengthStepPmfmId()); - Assert.assertFalse(sp1.containsMandatorySampleCategoryId(AGE)); - Assert.assertTrue(sp1.isCalcifySampleEnabled()); - Assert.assertFalse(sp1.isCountIfNoFrequencyEnabled()); - Assert.assertTrue(sp1.containsMandatorySampleCategoryId(MATURITY)); - Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SEX)); - Assert.assertFalse(sp1.containsMandatorySampleCategoryId(SIZE)); - Assert.assertTrue(sp1.isWeightEnabled()); - - SpeciesProtocol sp2 = protocol.getSpecies().get(1); - Assert.assertNotNull(sp2); - Assert.assertEquals("2", sp2.getId()); - Assert.assertEquals(3835, sp2.getSpeciesReferenceTaxonId(), 0); - Assert.assertEquals("CHIN", sp2.getSpeciesSurveyCode()); - Assert.assertEquals("323", sp2.getLengthStepPmfmId()); - Assert.assertTrue(sp2.containsMandatorySampleCategoryId(AGE)); - Assert.assertTrue(sp2.isCalcifySampleEnabled()); - Assert.assertTrue(sp2.isCountIfNoFrequencyEnabled()); - Assert.assertTrue(sp2.containsMandatorySampleCategoryId(MATURITY)); - Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SEX)); - Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SIZE)); - Assert.assertTrue(sp2.isWeightEnabled()); - - Assert.assertNotNull(protocol.getBenthos()); - Assert.assertEquals(2, protocol.getBenthos().size()); - SpeciesProtocol b1 = protocol.getBenthos().get(0); - Assert.assertNotNull(b1); - Assert.assertEquals("1", b1.getId()); - Assert.assertEquals(11242, b1.getSpeciesReferenceTaxonId(), 0); - Assert.assertEquals("BAR", b1.getSpeciesSurveyCode()); - Assert.assertEquals("1394", b1.getLengthStepPmfmId()); - Assert.assertFalse(b1.containsMandatorySampleCategoryId(AGE)); - Assert.assertTrue(b1.isCalcifySampleEnabled()); - Assert.assertFalse(b1.isCountIfNoFrequencyEnabled()); - Assert.assertTrue(b1.containsMandatorySampleCategoryId(MATURITY)); - Assert.assertTrue(b1.containsMandatorySampleCategoryId(SEX)); - Assert.assertFalse(b1.containsMandatorySampleCategoryId(SIZE)); - Assert.assertTrue(b1.isWeightEnabled()); - - SpeciesProtocol b2 = protocol.getBenthos().get(1); - Assert.assertNotNull(b2); - Assert.assertEquals("2", b2.getId()); - Assert.assertEquals(3835, b2.getSpeciesReferenceTaxonId(), 0); - Assert.assertEquals("CHIN", b2.getSpeciesSurveyCode()); - Assert.assertEquals("323", b2.getLengthStepPmfmId()); - Assert.assertTrue(b2.containsMandatorySampleCategoryId(AGE)); - Assert.assertTrue(b2.isCalcifySampleEnabled()); - Assert.assertTrue(b2.isCountIfNoFrequencyEnabled()); - Assert.assertTrue(b2.containsMandatorySampleCategoryId(MATURITY)); - Assert.assertTrue(b2.containsMandatorySampleCategoryId(SEX)); - Assert.assertTrue(b2.containsMandatorySampleCategoryId(SIZE)); - Assert.assertTrue(b2.isWeightEnabled()); - } - - private TuttiProtocol createProtocolFixture() { - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); - protocol.setVersion(2); - protocol.setId("1"); - protocol.setName("protocolName"); - protocol.setComment("Commentaire"); - protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18")); - protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821")); - protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22")); - - protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol sp1 = TuttiBeanFactory.newSpeciesProtocol(); - sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - sp1.setId("1"); - sp1.setSpeciesReferenceTaxonId(11242); - sp1.setSpeciesSurveyCode("BAR"); - sp1.setLengthStepPmfmId("1394"); - sp1.setCalcifySampleEnabled(true); - sp1.addMandatorySampleCategoryId(MATURITY); - sp1.addMandatorySampleCategoryId(SEX); - sp1.setWeightEnabled(true); - protocol.addSpecies(sp1); - - SpeciesProtocol sp2 = TuttiBeanFactory.newSpeciesProtocol(); - sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - sp2.setId("2"); - sp2.setSpeciesReferenceTaxonId(3835); - sp2.setSpeciesSurveyCode("CHIN"); - sp2.setLengthStepPmfmId("323"); - sp2.addMandatorySampleCategoryId(AGE); - sp2.setCalcifySampleEnabled(true); - sp2.setCountIfNoFrequencyEnabled(true); - sp2.addMandatorySampleCategoryId(MATURITY); - sp2.addMandatorySampleCategoryId(SEX); - sp2.addMandatorySampleCategoryId(SIZE); - sp2.setWeightEnabled(true); - protocol.addSpecies(sp2); - - protocol.setBenthos(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol b1 = TuttiBeanFactory.newSpeciesProtocol(); - b1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - b1.setId("1"); - b1.setSpeciesReferenceTaxonId(11242); - b1.setSpeciesSurveyCode("BAR"); - b1.setLengthStepPmfmId("1394"); - b1.setCalcifySampleEnabled(true); - b1.addMandatorySampleCategoryId(MATURITY); - b1.addMandatorySampleCategoryId(SEX); - b1.setWeightEnabled(true); - protocol.addBenthos(b1); - - SpeciesProtocol b2 = TuttiBeanFactory.newSpeciesProtocol(); - b2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); - b2.setId("2"); - b2.setSpeciesReferenceTaxonId(3835); - b2.setSpeciesSurveyCode("CHIN"); - b2.setLengthStepPmfmId("323"); - b2.addMandatorySampleCategoryId(AGE); - b2.setCalcifySampleEnabled(true); - b2.setCountIfNoFrequencyEnabled(true); - b2.addMandatorySampleCategoryId(MATURITY); - b2.addMandatorySampleCategoryId(SEX); - b2.addMandatorySampleCategoryId(SIZE); - b2.setWeightEnabled(true); - protocol.addBenthos(b2); - - return protocol; - } - -} Copied: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java (from rev 1246, trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java) =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java (rev 0) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -0,0 +1,319 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +/* + * #%L + * Tutti :: Persistence API + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; +import org.nuiton.util.FileUtil; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Field; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiProtocolsTest { + + public static final String PROTOCOL_FILE_CONTENT = + "id: 1\n" + + "name: protocolName\n" + + "benthos: \n" + + "- !SpeciesProtocol\n" + + " id: 1\n" + + " calcifySampleEnabled: true\n" + + " lengthStepPmfmId: 1394\n" + + " mandatorySampleCategoryId: \n" + + " - 174\n" + + " - 196\n" + + " speciesReferenceTaxonId: 11242\n" + + " speciesSurveyCode: BAR\n" + + " weightEnabled: true\n" + + "- !SpeciesProtocol\n" + + " id: 2\n" + + " calcifySampleEnabled: true\n" + + " countIfNoFrequencyEnabled: true\n" + + " lengthStepPmfmId: 323\n" + + " mandatorySampleCategoryId: \n" + + " - 1430\n" + + " - 174\n" + + " - 196\n" + + " - 198\n" + + " speciesReferenceTaxonId: 3835\n" + + " speciesSurveyCode: CHIN\n" + + " weightEnabled: true\n" + + "comment: Commentaire\n" + + "gearUseFeaturePmfmId: \n" + + "- 21\n" + + "- 22\n" + + "lengthClassesPmfmId: \n" + + "- 14\n" + + "- 18\n" + + "species: \n" + + "- !SpeciesProtocol\n" + + " id: 1\n" + + " calcifySampleEnabled: true\n" + + " lengthStepPmfmId: 1394\n" + + " mandatorySampleCategoryId: \n" + + " - 174\n" + + " - 196\n" + + " speciesReferenceTaxonId: 11242\n" + + " speciesSurveyCode: BAR\n" + + " weightEnabled: true\n" + + "- !SpeciesProtocol\n" + + " id: 2\n" + + " calcifySampleEnabled: true\n" + + " countIfNoFrequencyEnabled: true\n" + + " lengthStepPmfmId: 323\n" + + " mandatorySampleCategoryId: \n" + + " - 1430\n" + + " - 174\n" + + " - 196\n" + + " - 198\n" + + " speciesReferenceTaxonId: 3835\n" + + " speciesSurveyCode: CHIN\n" + + " weightEnabled: true\n" + + "version: 2\n" + + "vesselUseFeaturePmfmId: \n" + + "- 114\n" + + "- 228\n" + + "- 821"; + + public static final int VRAC_HORS_VRAC = 1428; + + public static final int SIZE = 198; + + public static final int SEX = 196; + + public static final int MATURITY = 174; + + public static final int AGE = 1430; + + public static final long TIMESTAMP = System.nanoTime(); + + @Rule + public final TestName name = new TestName(); + + protected File datadirectory; + + @Before + public void setUp() throws Exception { + + datadirectory = FileUtil.getTestSpecificDirectory(getClass(), + name.getMethodName(), + null, + TIMESTAMP); + } + + @Test + public void toFile() throws IOException { + + File file = new File(datadirectory, "exportProtocol.yaml"); + + Files.createParentDirs(file); + + Assert.assertFalse(file.exists()); + TuttiProtocol protocol = createProtocolFixture(); + + TuttiProtocols.toFile(protocol, file); + Assert.assertTrue(file.exists()); + + String exportFileToString = Files.toString(file, Charsets.UTF_8).trim(); + Assert.assertEquals(PROTOCOL_FILE_CONTENT, exportFileToString); + } + + protected void setField(Object o, String fieldName, Object value) throws IllegalAccessException { + Field field = FieldUtils.getField(o.getClass(), fieldName); +// field.setAccessible(true); + FieldUtils.writeField(field, o, value, true); + } + + @Test + public void fromFile() throws Exception { + + File file = new File(datadirectory, "importProtocol.yaml"); + + Files.createParentDirs(file); + + Files.write(PROTOCOL_FILE_CONTENT, file, Charsets.UTF_8); + + TuttiEnumerationFile enumeration = new TuttiEnumerationFile(); + + setField(enumeration, "PMFM_ID_SORTED_UNSORTED", VRAC_HORS_VRAC); + setField(enumeration, "PMFM_ID_SIZE_CATEGORY", SIZE); + setField(enumeration, "PMFM_ID_SEX", SEX); + setField(enumeration, "PMFM_ID_MATURITY", MATURITY); + setField(enumeration, "PMFM_ID_AGE", AGE); + + TuttiProtocol protocol = TuttiProtocols.fromFile(enumeration, file); + + Assert.assertNotNull(protocol); + Assert.assertEquals("1", protocol.getId()); + Assert.assertEquals("protocolName", protocol.getName()); + Assert.assertEquals("Commentaire", protocol.getComment()); + Assert.assertEquals(Lists.newArrayList("14", "18"), protocol.getLengthClassesPmfmId()); + Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getVesselUseFeaturePmfmId()); + Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearUseFeaturePmfmId()); + + Assert.assertNotNull(protocol.getSpecies()); + Assert.assertEquals(2, protocol.getSpecies().size()); + SpeciesProtocol sp1 = protocol.getSpecies().get(0); + Assert.assertNotNull(sp1); + Assert.assertEquals("1", sp1.getId()); + Assert.assertEquals(11242, sp1.getSpeciesReferenceTaxonId(), 0); + Assert.assertEquals("BAR", sp1.getSpeciesSurveyCode()); + Assert.assertEquals("1394", sp1.getLengthStepPmfmId()); + Assert.assertFalse(sp1.containsMandatorySampleCategoryId(AGE)); + Assert.assertTrue(sp1.isCalcifySampleEnabled()); + Assert.assertFalse(sp1.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(sp1.containsMandatorySampleCategoryId(MATURITY)); + Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SEX)); + Assert.assertFalse(sp1.containsMandatorySampleCategoryId(SIZE)); + Assert.assertTrue(sp1.isWeightEnabled()); + + SpeciesProtocol sp2 = protocol.getSpecies().get(1); + Assert.assertNotNull(sp2); + Assert.assertEquals("2", sp2.getId()); + Assert.assertEquals(3835, sp2.getSpeciesReferenceTaxonId(), 0); + Assert.assertEquals("CHIN", sp2.getSpeciesSurveyCode()); + Assert.assertEquals("323", sp2.getLengthStepPmfmId()); + Assert.assertTrue(sp2.containsMandatorySampleCategoryId(AGE)); + Assert.assertTrue(sp2.isCalcifySampleEnabled()); + Assert.assertTrue(sp2.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(sp2.containsMandatorySampleCategoryId(MATURITY)); + Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SEX)); + Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SIZE)); + Assert.assertTrue(sp2.isWeightEnabled()); + + Assert.assertNotNull(protocol.getBenthos()); + Assert.assertEquals(2, protocol.getBenthos().size()); + SpeciesProtocol b1 = protocol.getBenthos().get(0); + Assert.assertNotNull(b1); + Assert.assertEquals("1", b1.getId()); + Assert.assertEquals(11242, b1.getSpeciesReferenceTaxonId(), 0); + Assert.assertEquals("BAR", b1.getSpeciesSurveyCode()); + Assert.assertEquals("1394", b1.getLengthStepPmfmId()); + Assert.assertFalse(b1.containsMandatorySampleCategoryId(AGE)); + Assert.assertTrue(b1.isCalcifySampleEnabled()); + Assert.assertFalse(b1.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(b1.containsMandatorySampleCategoryId(MATURITY)); + Assert.assertTrue(b1.containsMandatorySampleCategoryId(SEX)); + Assert.assertFalse(b1.containsMandatorySampleCategoryId(SIZE)); + Assert.assertTrue(b1.isWeightEnabled()); + + SpeciesProtocol b2 = protocol.getBenthos().get(1); + Assert.assertNotNull(b2); + Assert.assertEquals("2", b2.getId()); + Assert.assertEquals(3835, b2.getSpeciesReferenceTaxonId(), 0); + Assert.assertEquals("CHIN", b2.getSpeciesSurveyCode()); + Assert.assertEquals("323", b2.getLengthStepPmfmId()); + Assert.assertTrue(b2.containsMandatorySampleCategoryId(AGE)); + Assert.assertTrue(b2.isCalcifySampleEnabled()); + Assert.assertTrue(b2.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(b2.containsMandatorySampleCategoryId(MATURITY)); + Assert.assertTrue(b2.containsMandatorySampleCategoryId(SEX)); + Assert.assertTrue(b2.containsMandatorySampleCategoryId(SIZE)); + Assert.assertTrue(b2.isWeightEnabled()); + } + + private TuttiProtocol createProtocolFixture() { + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); + protocol.setVersion(2); + protocol.setId("1"); + protocol.setName("protocolName"); + protocol.setComment("Commentaire"); + protocol.setLengthClassesPmfmId(Lists.newArrayList("14", "18")); + protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("114", "228", "821")); + protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22")); + + protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); + SpeciesProtocol sp1 = SpeciesProtocols.newSpeciesProtocol(); + sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + sp1.setId("1"); + sp1.setSpeciesReferenceTaxonId(11242); + sp1.setSpeciesSurveyCode("BAR"); + sp1.setLengthStepPmfmId("1394"); + sp1.setCalcifySampleEnabled(true); + sp1.addMandatorySampleCategoryId(MATURITY); + sp1.addMandatorySampleCategoryId(SEX); + sp1.setWeightEnabled(true); + protocol.addSpecies(sp1); + + SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); + sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + sp2.setId("2"); + sp2.setSpeciesReferenceTaxonId(3835); + sp2.setSpeciesSurveyCode("CHIN"); + sp2.setLengthStepPmfmId("323"); + sp2.addMandatorySampleCategoryId(AGE); + sp2.setCalcifySampleEnabled(true); + sp2.setCountIfNoFrequencyEnabled(true); + sp2.addMandatorySampleCategoryId(MATURITY); + sp2.addMandatorySampleCategoryId(SEX); + sp2.addMandatorySampleCategoryId(SIZE); + sp2.setWeightEnabled(true); + protocol.addSpecies(sp2); + + protocol.setBenthos(Lists.<SpeciesProtocol>newArrayList()); + SpeciesProtocol b1 = SpeciesProtocols.newSpeciesProtocol(); + b1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + b1.setId("1"); + b1.setSpeciesReferenceTaxonId(11242); + b1.setSpeciesSurveyCode("BAR"); + b1.setLengthStepPmfmId("1394"); + b1.setCalcifySampleEnabled(true); + b1.addMandatorySampleCategoryId(MATURITY); + b1.addMandatorySampleCategoryId(SEX); + b1.setWeightEnabled(true); + protocol.addBenthos(b1); + + SpeciesProtocol b2 = SpeciesProtocols.newSpeciesProtocol(); + b2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); + b2.setId("2"); + b2.setSpeciesReferenceTaxonId(3835); + b2.setSpeciesSurveyCode("CHIN"); + b2.setLengthStepPmfmId("323"); + b2.addMandatorySampleCategoryId(AGE); + b2.setCalcifySampleEnabled(true); + b2.setCountIfNoFrequencyEnabled(true); + b2.addMandatorySampleCategoryId(MATURITY); + b2.addMandatorySampleCategoryId(SEX); + b2.addMandatorySampleCategoryId(SIZE); + b2.setWeightEnabled(true); + protocol.addBenthos(b2); + + return protocol; + } + +} Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,13 +24,13 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.collections.CollectionUtils; import org.junit.Assert; import org.junit.Before; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,10 +24,10 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; @@ -69,7 +69,7 @@ // create attachment // - Attachment attachment = TuttiBeanFactory.newAttachment(); + Attachment attachment = Attachments.newAttachment(); attachment.setObjectType(AttachementObjectTypeEnum.SCIENTIFIC_CRUISE); attachment.setObjectId(cruiseId); long buildTime = System.nanoTime(); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,10 +26,12 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -175,7 +177,7 @@ fishingOperationWithEmptyBatch.setGearShootingEndDate(calendar.getTime()); fishingOperationWithEmptyBatch = fishingOperationService.createFishingOperation(fishingOperationWithEmptyBatch); - catchBacth = TuttiBeanFactory.newCatchBatch(); + catchBacth = CatchBatchs.newCatchBatch(); catchBacth.setFishingOperation(fishingOperationWithEmptyBatch); catchBacth = catchBatchService.createCatchBatch(catchBacth); @@ -215,7 +217,7 @@ // 1. Test with only mandatory properties // ----------------------------------------------------------------------------- // batch : "ESP1 - Vrac/5" - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setParentBatch(null); batch.setFishingOperation(fishingOperationNoCatchBatch); batch.setSpecies(taxon1); @@ -232,7 +234,7 @@ // 2. Test child "Male/2" // ----------------------------------------------------------------------------- // Batch : ESP1 - Vrac/5 Male/2 ss-ech/1 Nombre/7 - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setId((String) null); batch.setParentBatch(esp1Batch); batch.setSpecies(taxon1); @@ -249,7 +251,7 @@ // 3. Test child "Female/2" // ----------------------------------------------------------------------------- // Batch : ESP1 - Vrac/5 Female/3 Nombre/14 - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setId((String) null); batch.setParentBatch(esp1Batch); batch.setSpecies(taxon1); @@ -267,7 +269,7 @@ // \- ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11 // ----------------------------------------------------------------------------- // batch : "ESP2 - Vrac/7 " - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setParentBatch(null); batch.setSpecies(taxon2); batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED); @@ -278,7 +280,7 @@ esp2Batch = batch; // Batch : ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11 - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setId((String) null); batch.setParentBatch(esp2Batch); batch.setSpecies(taxon2); @@ -339,7 +341,7 @@ List<BenthosBatchFrequency> frequencies = Lists.newArrayList(); float lengthStep = 0.5f; for (float length = lengthStep; length < lengthStep * 20; length += lengthStep) { - BenthosBatchFrequency frequency = TuttiBeanFactory.newBenthosBatchFrequency(); + BenthosBatchFrequency frequency = BenthosBatchFrequencys.newBenthosBatchFrequency(); frequency.setLengthStep(length); frequency.setNumber((int) (length * 2)); frequency.setWeight(0.01f * length * 2); @@ -378,7 +380,7 @@ // 1. Create two batchs (parent + child), then remove the parent batch // ----------------------------------------------------------------------------- // batch : ESP1 Vrac/5 - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setParentBatch(null); batch.setFishingOperation(fishingOperationWithEmptyBatch); batch.setSpecies(taxon1); @@ -389,7 +391,7 @@ esp1Batch = batch; // batch : ESP1 Vrac/5 Male/2 - batch = TuttiBeanFactory.newBenthosBatch(); + batch = BenthosBatchs.newBenthosBatch(); batch.setParentBatch(esp1Batch); batch.setFishingOperation(fishingOperationWithEmptyBatch); batch.setSpecies(taxon1); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceReadTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,9 +24,9 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.InvalidBatchModelException; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Before; import org.junit.ClassRule; import org.junit.Ignore; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,12 +24,12 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.InvalidBatchModelException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.collections.CollectionUtils; import org.junit.Assert; import org.junit.Before; @@ -87,7 +87,7 @@ public void createAndSaveCatchBatch() throws Exception { CatchBatch catchBatch; - catchBatch = TuttiBeanFactory.newCatchBatch(); + catchBatch = CatchBatchs.newCatchBatch(); catchBatch.setFishingOperation(fishingOperation); // ----------------------------------------------------------------------------- Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceReadTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.data.Cruise; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,13 +25,14 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -79,7 +80,7 @@ @Test public void createCruise(/*Cruise bean*/) { String programCode = dbResource.getFixtures().programCode(); - Cruise cruise = TuttiBeanFactory.newCruise(); + Cruise cruise = Cruises.newCruise(); // ----------------------------------------------------------------------------- // 1. Test with all properties filled @@ -112,7 +113,7 @@ cruise.setHeadOfMission(Lists.newArrayList(managerPerson)); cruise.setHeadOfSortRoom(Lists.newArrayList(managerPerson)); - Vessel fishingVessel = TuttiBeanFactory.newVessel(); + Vessel fishingVessel = Vessels.newVessel(); fishingVessel.setId(dbResource.getFixtures().fishingVesselCode()); cruise.setVessel(fishingVessel); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceReadTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import org.junit.Before; import org.junit.ClassRule; import org.junit.Ignore; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,16 +24,17 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -161,7 +162,7 @@ } // Create new fishing operation : - FishingOperation fishingOperation = TuttiBeanFactory.newFishingOperation(); + FishingOperation fishingOperation = FishingOperations.newFishingOperation(); // ----------------------------------------------------------------------------- // 1. Test with only mandatory properties @@ -219,13 +220,13 @@ fishingOperation.setVesselUseFeatures(environmentCaracteristics); fishingOperation.setGearUseFeatures(gearShootingCaracteristics); - TuttiLocation strata = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation strata = TuttiLocations.newTuttiLocation(); strata.setId(dbResource.getFixtures().strataId()); fishingOperation.setStrata(strata); - TuttiLocation subStrata = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation subStrata = TuttiLocations.newTuttiLocation(); subStrata.setId(dbResource.getFixtures().subStrataId()); fishingOperation.setSubStrata(subStrata); - TuttiLocation localite = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation localite = TuttiLocations.newTuttiLocation(); localite.setId(dbResource.getFixtures().localite()); fishingOperation.setLocation(localite); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,13 +24,13 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.collections.CollectionUtils; import org.junit.Assert; import org.junit.Before; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,15 +24,16 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; @@ -136,7 +137,7 @@ fishingOperationWithEmptyBatch.setGearShootingEndDate(calendar.getTime()); fishingOperationWithEmptyBatch = fishingOperationService.createFishingOperation(fishingOperationWithEmptyBatch); - catchBacth = TuttiBeanFactory.newCatchBatch(); + catchBacth = CatchBatchs.newCatchBatch(); catchBacth.setFishingOperation(fishingOperationWithEmptyBatch); catchBacth = catchBatchService.createCatchBatch(catchBacth); } @@ -145,7 +146,7 @@ public void createMarineLitterBatch(/*MarineLitterBatch bean*/) { MarineLitterBatch newMarineLitter = - TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatchs.newMarineLitterBatch(); newMarineLitter.setFishingOperation(fishingOperationWithEmptyBatch); newMarineLitter.setMarineLitterCategory(marineLitterCategoryCaracteristic.getQualitativeValue(0)); @@ -167,7 +168,7 @@ public void saveMarineLitterBatch(/*MarineLitterBatch bean*/) { MarineLitterBatch newMarineLitter = - TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatchs.newMarineLitterBatch(); newMarineLitter.setFishingOperation(fishingOperationWithEmptyBatch); newMarineLitter.setMarineLitterCategory(marineLitterCategoryCaracteristic.getQualitativeValue(0)); @@ -189,7 +190,7 @@ @Test public void deleteMarineLitterBatch(/*String id*/) { MarineLitterBatch newMarineLitter = - TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatchs.newMarineLitterBatch(); newMarineLitter.setFishingOperation(fishingOperationWithEmptyBatch); newMarineLitter.setMarineLitterCategory(marineLitterCategoryCaracteristic.getQualitativeValue(0)); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,10 +24,10 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; @@ -66,7 +66,7 @@ assertNotNull(zones); assertTrue(zones.size() > 0); - Program program = TuttiBeanFactory.newProgram(); + Program program = Programs.newProgram(); String name = "UniTest" + System.currentTimeMillis(); if (name.length() > 40) { name = name.substring(0, 39); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceReadTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,9 +25,10 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Assert; import org.junit.Before; @@ -88,7 +89,7 @@ } protected static TuttiProtocol createProtocolFixture() { - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); protocol.setVersion(2); protocol.setId("1"); protocol.setName("protocolName"); @@ -98,7 +99,7 @@ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22")); protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol sp1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp1 = SpeciesProtocols.newSpeciesProtocol(); sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp1.setId("1"); sp1.setSpeciesReferenceTaxonId(11242); @@ -110,7 +111,7 @@ sp1.setWeightEnabled(true); protocol.addSpecies(sp1); - SpeciesProtocol sp2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp2.setId("2"); sp2.setSpeciesReferenceTaxonId(3835); @@ -126,7 +127,7 @@ protocol.addSpecies(sp2); protocol.setBenthos(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol b1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol b1 = SpeciesProtocols.newSpeciesProtocol(); b1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); b1.setId("1"); b1.setSpeciesReferenceTaxonId(11242); @@ -138,7 +139,7 @@ b1.setWeightEnabled(true); protocol.addBenthos(b1); - SpeciesProtocol b2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol b2 = SpeciesProtocols.newSpeciesProtocol(); b2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); b2.setId("2"); b2.setSpeciesReferenceTaxonId(3835); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,8 +25,6 @@ */ import fr.ifremer.adagio.core.service.technical.CacheService; -import fr.ifremer.tutti.persistence.test.DatabaseFixtures; -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -37,6 +35,8 @@ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.test.DatabaseFixtures; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,12 +25,15 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.test.DatabaseResource; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; @@ -61,7 +64,7 @@ List<Species> species = Lists.newArrayList(); long timestamp1 = System.nanoTime(); - Species sp1 = TuttiBeanFactory.newSpecies(); + Species sp1 = Speciess.newSpecies(); sp1.setReferenceTaxonId((int) timestamp1); sp1.setId("Don't care" + timestamp1); sp1.setRefTaxCode("Don't care" + timestamp1); @@ -70,7 +73,7 @@ species.add(sp1); long timestamp2 = System.nanoTime(); - Species sp2 = TuttiBeanFactory.newSpecies(); + Species sp2 = Speciess.newSpecies(); sp2.setReferenceTaxonId((int) timestamp2); sp2.setId("Don't care" + timestamp2); sp2.setRefTaxCode("Don't care" + timestamp2); @@ -115,7 +118,7 @@ // scientificVessel long timestamp1 = System.nanoTime(); - Vessel v1 = TuttiBeanFactory.newVessel(); + Vessel v1 = Vessels.newVessel(); v1.setId("Don't care" + timestamp1); v1.setName("Name" + timestamp1); v1.setInternationalRegistrationCode("Immat" + timestamp1); @@ -124,7 +127,7 @@ // fishingVessel long timestamp2 = System.nanoTime(); - Vessel v2 = TuttiBeanFactory.newVessel(); + Vessel v2 = Vessels.newVessel(); v2.setId("Don't care" + timestamp2); v2.setName("Name" + timestamp2); v2.setInternationalRegistrationCode("Immat" + timestamp2); @@ -169,7 +172,7 @@ List<Person> persons = Lists.newArrayList(); long timestamp1 = System.nanoTime(); - Person p1 = TuttiBeanFactory.newPerson(); + Person p1 = Persons.newPerson(); p1.setId("Don't care" + timestamp1); p1.setName("Don't care" + timestamp1); p1.setFirstName("FirstName" + timestamp1); @@ -179,7 +182,7 @@ persons.add(p1); long timestamp2 = System.nanoTime(); - Person p2 = TuttiBeanFactory.newPerson(); + Person p2 = Persons.newPerson(); p2.setId("Don't care" + timestamp2); p2.setName("Don't care" + timestamp2); p2.setFirstName("FirstName" + timestamp2); @@ -229,7 +232,7 @@ // scientific gear long timestamp1 = System.nanoTime(); - Gear g1 = TuttiBeanFactory.newGear(); + Gear g1 = Gears.newGear(); g1.setId("Don't care" + timestamp1); g1.setDescription("Don't care" + timestamp1); g1.setName("Name" + timestamp1); @@ -239,7 +242,7 @@ // fishing gear long timestamp2 = System.nanoTime(); - Gear g2 = TuttiBeanFactory.newGear(); + Gear g2 = Gears.newGear(); g2.setId("Don't care" + timestamp2); g2.setDescription("Don't care" + timestamp2); g2.setName("Name" + timestamp2); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,13 +26,15 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; @@ -167,7 +169,7 @@ fishingOperationWithEmptyBatch.setGearShootingEndDate(calendar.getTime()); fishingOperationWithEmptyBatch = fishingOperationService.createFishingOperation(fishingOperationWithEmptyBatch); - catchBacth = TuttiBeanFactory.newCatchBatch(); + catchBacth = CatchBatchs.newCatchBatch(); catchBacth.setFishingOperation(fishingOperationWithEmptyBatch); catchBacth = catchBatchService.createCatchBatch(catchBacth); @@ -207,7 +209,7 @@ // 1. Test with only mandatory properties // ----------------------------------------------------------------------------- // batch : "ESP1 - Vrac/5" - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setParentBatch(null); batch.setFishingOperation(fishingOperationNoCatchBatch); batch.setSpecies(taxon1); @@ -224,7 +226,7 @@ // 2. Test child "Male/2" // ----------------------------------------------------------------------------- // Batch : ESP1 - Vrac/5 Male/2 ss-ech/1 Nombre/7 - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setId((String) null); batch.setParentBatch(esp1Batch); batch.setSpecies(taxon1); @@ -241,7 +243,7 @@ // 3. Test child "Female/2" // ----------------------------------------------------------------------------- // Batch : ESP1 - Vrac/5 Female/3 Nombre/14 - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setId((String) null); batch.setParentBatch(esp1Batch); batch.setSpecies(taxon1); @@ -259,7 +261,7 @@ // \- ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11 // ----------------------------------------------------------------------------- // batch : "ESP2 - Vrac/7 " - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setParentBatch(null); batch.setSpecies(taxon2); batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED); @@ -270,7 +272,7 @@ esp2Batch = batch; // Batch : ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11 - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setId((String) null); batch.setParentBatch(esp2Batch); batch.setSpecies(taxon2); @@ -332,7 +334,7 @@ List<SpeciesBatchFrequency> frequencies = Lists.newArrayList(); float lengthStep = 0.5f; for (float length = lengthStep; length < lengthStep * 20; length += lengthStep) { - SpeciesBatchFrequency frequency = TuttiBeanFactory.newSpeciesBatchFrequency(); + SpeciesBatchFrequency frequency = SpeciesBatchFrequencys.newSpeciesBatchFrequency(); frequency.setLengthStep(length); frequency.setNumber((int) (length * 2)); frequency.setWeight(0.01f * length * 2); @@ -371,7 +373,7 @@ // 1. Create two batchs (parent + child), then remove the parent batch // ----------------------------------------------------------------------------- // batch : ESP1 Vrac/5 - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setParentBatch(null); batch.setFishingOperation(fishingOperationWithEmptyBatch); batch.setSpecies(taxon1); @@ -382,7 +384,7 @@ esp1Batch = batch; // batch : ESP1 Vrac/5 Male/2 - batch = TuttiBeanFactory.newSpeciesBatch(); + batch = SpeciesBatchs.newSpeciesBatch(); batch.setParentBatch(esp1Batch); batch.setFishingOperation(fishingOperationWithEmptyBatch); batch.setSpecies(taxon1); Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeHelperTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,9 +24,9 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; @@ -914,7 +914,11 @@ public static Date getDate(int year, int month, int day) { Date fromDate = DateUtils.setYears(new Date(), year); + // set to first day of mounth (to make sure this day exists) + fromDate = DateUtils.setDays(fromDate, 1); + // set mouth fromDate = DateUtils.setMonths(fromDate, month); + // set real day of month fromDate = DateUtils.setDays(fromDate, day); return fromDate; } Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,10 +24,10 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.hibernate.dialect.Dialect; import org.junit.After; import org.junit.Assert; Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplUpTodateTest.java =================================================================== --- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplUpTodateTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/synchro/ReferentialSynchronizeServiceImplUpTodateTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,9 +24,9 @@ * #L% */ -import fr.ifremer.tutti.persistence.test.DatabaseResource; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; +import fr.ifremer.tutti.persistence.test.DatabaseResource; import org.hibernate.dialect.Dialect; import org.junit.After; import org.junit.Assert; Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -54,12 +54,15 @@ public class DecoratorService extends AbstractTuttiService { public static final String CARACTERISTIC_WITH_UNIT = "withUnit"; + public static final String CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT = "parameterOnlyWithUnit"; public static final String CARACTERISTIC_PARAMETER_ONLY = "parameterOnly"; public static final String FROM_PROTOCOL = "fromProtocol"; + public static final String GEAR_WITH_RANK_ORDER = "gearWithrankOrder"; + public static final String BY_NAME = "byName"; public static final String ONLY_NAME = "onlyName"; @@ -102,6 +105,7 @@ registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - "); registerTuttiDecorator(FishingOperation.class, FILE_NAME_COMPATIBLE, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td%4$tm%4$tY", SEPARATOR, "-"); registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - "); + registerTuttiDecorator(Gear.class, GEAR_WITH_RANK_ORDER, "${rankOrder}$d#${label}$s#${name}$s", SEPARATOR, " - "); registerTuttiDecorator(Person.class, "${firstName}$s#${lastName}$s#${department}$s", SEPARATOR, " "); registerTuttiDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - "); registerTuttiDecorator(Caracteristic.class, CARACTERISTIC_PARAMETER_ONLY, "${parameterName}$s", SEPARATOR, " - "); @@ -167,6 +171,7 @@ n_("tutti.property.strata"); n_("tutti.property.refTaxCode"); n_("tutti.property.surveyCode"); + n_("tutti.property.rankOrder"); n_("tutti.property.species"); n_("tutti.property.genusSpecies"); n_("tutti.property.sortedUnsortedCategory"); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDecorator.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -220,8 +220,12 @@ clear(); TuttiDecorator<O> tuttDecorator = (TuttiDecorator<O>) decorator; for (O data : datas) { - Comparable key = (Comparable) tuttDecorator.toString(data); - valueCache.put(data, key); + if (data instanceof Number) { + valueCache.put(data, (Comparable)data); + } else { + Comparable key = (Comparable) tuttDecorator.toString(data); + valueCache.put(data, key); + } } } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/WeightUnit.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/WeightUnit.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/WeightUnit.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.service; +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.service.catches; +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.base.Preconditions; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Lists; Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -32,23 +32,30 @@ import fr.ifremer.tutti.TuttiBusinessException; import fr.ifremer.tutti.TuttiIOUtil; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatchs; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; @@ -245,7 +252,7 @@ for (CatchRow row : importer) { // create batch - SpeciesBatch batch = TuttiBeanFactory.newSpeciesBatch(); + SpeciesBatch batch = SpeciesBatchs.newSpeciesBatch(); batch.setFishingOperation(operation); Species species = row.getSpecies(); @@ -336,7 +343,7 @@ if (notImportedBatches.get(frequencyRow.getBatchId()) == null) { SpeciesBatch batch = batches.get(frequencyRow.getBatchId()); if (batch != null) { - SpeciesBatchFrequency frequency = TuttiBeanFactory.newSpeciesBatchFrequency(); + SpeciesBatchFrequency frequency = SpeciesBatchFrequencys.newSpeciesBatchFrequency(); frequency.setLengthStepCaracteristic(frequencyRow.getLengthStepCaracteristic()); frequency.setLengthStep(frequencyRow.getLengthStep()); frequency.setNumber(frequencyRow.getNumber()); @@ -509,7 +516,7 @@ for (CatchRow row : importer) { // create batch - BenthosBatch batch = TuttiBeanFactory.newBenthosBatch(); + BenthosBatch batch = BenthosBatchs.newBenthosBatch(); batch.setFishingOperation(operation); Species species = row.getSpecies(); @@ -599,7 +606,7 @@ if (notImportedBatches.get(frequencyRow.getBatchId()) == null) { BenthosBatch batch = batches.get(frequencyRow.getBatchId()); if (batch != null) { - BenthosBatchFrequency frequency = TuttiBeanFactory.newBenthosBatchFrequency(); + BenthosBatchFrequency frequency = BenthosBatchFrequencys.newBenthosBatchFrequency(); frequency.setLengthStepCaracteristic(frequencyRow.getLengthStepCaracteristic()); frequency.setLengthStep(frequencyRow.getLengthStep()); frequency.setNumber(frequencyRow.getNumber()); @@ -772,7 +779,7 @@ for (MarineLitterRow row : importer) { // create batch - MarineLitterBatch batch = TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatch batch = MarineLitterBatchs.newMarineLitterBatch(); batch.setFishingOperation(operation); batch.setWeight(row.getWeight()); @@ -925,7 +932,7 @@ // create batch IndividualObservationBatch batch = - TuttiBeanFactory.newIndividualObservationBatch(); + IndividualObservationBatchs.newIndividualObservationBatch(); batch.setFishingOperation(operation); batch.setSpecies(row.getSpecies()); @@ -1086,7 +1093,7 @@ for (AccidentalCatchRow row : importer) { // create batch - AccidentalBatch batch = TuttiBeanFactory.newAccidentalBatch(); + AccidentalBatch batch = AccidentalBatchs.newAccidentalBatch(); batch.setFishingOperation(operation); batch.setSpecies(row.getSpecies()); @@ -1245,7 +1252,7 @@ for (AttachmentRow row : importer) { Integer objectId = getObjetcIdFunction.apply(row); if (objectId != null) { - Attachment attachment = TuttiBeanFactory.newAttachment(); + Attachment attachment = Attachments.newAttachment(); attachment.setName(row.getName()); attachment.setComment(row.getComment()); attachment.setObjectType(objectType); @@ -1296,7 +1303,7 @@ for (AttachmentRow row : importer) { Integer objectId = getObjetcIdFunction.apply(row); if (objectId != null) { - Attachment attachment = TuttiBeanFactory.newAttachment(); + Attachment attachment = Attachments.newAttachment(); attachment.setName(row.getName()); attachment.setComment(row.getComment()); attachment.setObjectType(objectType); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -33,9 +33,9 @@ import com.google.common.collect.TreeMultimap; import com.google.common.io.Files; import fr.ifremer.tutti.TuttiTechnicalException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -271,7 +271,7 @@ if (sp == null) { // create a new species protocol - sp = TuttiBeanFactory.newSpeciesProtocol(); + sp = SpeciesProtocols.newSpeciesProtocol(); } binder.copy(bean, sp); sp.setMandatorySampleCategoryId(Lists.newArrayList( @@ -351,7 +351,7 @@ if (sp == null) { // create a new species protocol - sp = TuttiBeanFactory.newSpeciesProtocol(); + sp = SpeciesProtocols.newSpeciesProtocol(); } binder.copy(bean, sp); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.apache.commons.lang3.StringUtils; @@ -80,7 +80,7 @@ protected Caracteristic lengthStepPmfm; public SpeciesRow() { - delegate = TuttiBeanFactory.newSpeciesProtocol(); + delegate = SpeciesProtocols.newSpeciesProtocol(); delegate.setMadeFromAReferentTaxon(true); } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -34,14 +34,15 @@ import com.google.common.collect.Sets; import com.google.common.io.Files; import fr.ifremer.tutti.TuttiTechnicalException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -155,7 +156,7 @@ } protected void addFileAsAttachment(File f, CatchBatch catchBatch) { - Attachment attachment = TuttiBeanFactory.newAttachment(); + Attachment attachment = Attachments.newAttachment(); attachment.setObjectType(AttachementObjectTypeEnum.CATCH_BATCH); attachment.setObjectId(Integer.valueOf(catchBatch.getId())); attachment.setName(f.getName()); @@ -457,11 +458,11 @@ } protected SpeciesBatch createSpeciesBatch(FishingOperation operation, - Species species, - Float catchWeight, - Integer categoryId, - Serializable cqv) { - SpeciesBatch batch = TuttiBeanFactory.newSpeciesBatch(); + Species species, + Float catchWeight, + Integer categoryId, + Serializable cqv) { + SpeciesBatch batch = SpeciesBatchs.newSpeciesBatch(); batch.setFishingOperation(operation); batch.setSampleCategoryId(categoryId); batch.setSampleCategoryValue(cqv); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.service.TuttiCsvUtil; import org.nuiton.csv.Common; @@ -59,7 +59,7 @@ @Override public Gear newEmptyInstance() { - return TuttiBeanFactory.newGear(); + return Gears.newGear(); } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.service.TuttiCsvUtil; /** @@ -52,7 +52,7 @@ @Override public Person newEmptyInstance() { - return TuttiBeanFactory.newPerson(); + return Persons.newPerson(); } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportExportService.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/ReferentialImportExportService.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -31,11 +31,14 @@ import com.google.common.collect.Sets; import com.google.common.io.Files; import fr.ifremer.tutti.TuttiTechnicalException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.AbstractTuttiService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiServiceContext; @@ -141,7 +144,7 @@ Function<Vessel, String> vesselToId = new Function<Vessel, String>() { @Override public String apply(Vessel input) { - return input.getName()+"#"+input.getInternationalRegistrationCode(); + return input.getName() + "#" + input.getInternationalRegistrationCode(); } }; @@ -166,8 +169,8 @@ // id was already in universe throw new TuttiTechnicalException( _("tutti.service.referential.import.vessels.existingValue.error", - bean.getName(), - bean.getInternationalRegistrationCode())); + bean.getName(), + bean.getInternationalRegistrationCode())); } toImport.add(bean); } @@ -283,15 +286,15 @@ Species s; - s = TuttiBeanFactory.newSpecies(); + s = Speciess.newSpecies(); s.setName("Temporary Species name 1"); toExport.add(s); - s = TuttiBeanFactory.newSpecies(); + s = Speciess.newSpecies(); s.setName("Temporary Species name 2"); toExport.add(s); - s = TuttiBeanFactory.newSpecies(); + s = Speciess.newSpecies(); s.setName("Temporary Species name 3"); toExport.add(s); @@ -317,25 +320,25 @@ Vessel v; - v = TuttiBeanFactory.newVessel(); + v = Vessels.newVessel(); v.setName("Temporary fishing vessel name 1"); v.setInternationalRegistrationCode("International registration code F1"); v.setScientificVessel(false); toExport.add(v); - v = TuttiBeanFactory.newVessel(); + v = Vessels.newVessel(); v.setName("Temporary fishing vessel name 2"); v.setInternationalRegistrationCode("International registration code F2"); v.setScientificVessel(false); toExport.add(v); - v = TuttiBeanFactory.newVessel(); + v = Vessels.newVessel(); v.setName("Temporary scientific vessel name 3"); v.setInternationalRegistrationCode("International registration code S3"); v.setScientificVessel(true); toExport.add(v); - v = TuttiBeanFactory.newVessel(); + v = Vessels.newVessel(); v.setName("Temporary scientific vessel name 4"); v.setInternationalRegistrationCode("International registration code S4"); v.setScientificVessel(true); @@ -362,17 +365,17 @@ Person p; - p = TuttiBeanFactory.newPerson(); + p = Persons.newPerson(); p.setFirstName("First name 1"); p.setLastName("Last name 1"); toExport.add(p); - p = TuttiBeanFactory.newPerson(); + p = Persons.newPerson(); p.setFirstName("First name 2"); p.setLastName("Last name 2"); toExport.add(p); - p = TuttiBeanFactory.newPerson(); + p = Persons.newPerson(); p.setFirstName("First name 3"); p.setLastName("Last name 3"); toExport.add(p); @@ -399,23 +402,23 @@ Gear g; - g = TuttiBeanFactory.newGear(); + g = Gears.newGear(); g.setName("Gear fishing name 1"); g.setLabel("Gear fishing label 1"); toExport.add(g); - g = TuttiBeanFactory.newGear(); + g = Gears.newGear(); g.setName("Gear fishing name 2"); g.setLabel("Gear fishing label 2"); toExport.add(g); - g = TuttiBeanFactory.newGear(); + g = Gears.newGear(); g.setName("Gear scientific name 3"); g.setLabel("Gear scientific label 3"); g.setScientificGear(true); toExport.add(g); - g = TuttiBeanFactory.newGear(); + g = Gears.newGear(); g.setName("Gear scientific name 4"); g.setLabel("Gear scientific label 4"); g.setScientificGear(true); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.TuttiCsvUtil; import java.util.Set; @@ -54,7 +54,7 @@ @Override public Species newEmptyInstance() { - return TuttiBeanFactory.newSpecies(); + return Speciess.newSpecies(); } } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.TuttiCsvUtil; import org.nuiton.csv.Common; @@ -55,7 +55,7 @@ @Override public Vessel newEmptyInstance() { - return TuttiBeanFactory.newVessel(); + return Vessels.newVessel(); } } Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-09-30 12:34:52 UTC (rev 1250) @@ -45,6 +45,7 @@ tutti.property.person= tutti.property.program= tutti.property.protocol= +tutti.property.rankOrder= tutti.property.refTaxCode= tutti.property.sortedUnsortedCategory= tutti.property.species= Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties =================================================================== --- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-09-30 12:34:52 UTC (rev 1250) @@ -45,6 +45,7 @@ tutti.property.person=Personne tutti.property.program=Série de campagne tutti.property.protocol=Protocole de saisie +tutti.property.rankOrder=Numéro d'ordre tutti.property.refTaxCode=Code RefTax tutti.property.sortedUnsortedCategory=Vrac / Hors Vrac tutti.property.species=Espèce Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,29 +24,45 @@ * #L% */ +import com.google.common.collect.Lists; import fr.ifremer.tutti.LabelAware; import fr.ifremer.tutti.persistence.RessourceClassLoader; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicBean; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristics; import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.config.TuttiServiceConfig; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.nuiton.decorator.Decorator; +import org.nuiton.decorator.DecoratorUtil; +import org.nuiton.decorator.JXPathDecorator; +import java.util.List; + import static org.nuiton.i18n.I18n._; /** @@ -81,7 +97,9 @@ assertDecoratorByTypeFound(Gear.class); assertDecoratorByTypeFound(Person.class); assertDecoratorByTypeFound(Caracteristic.class); - assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY, CaracteristicBean.class); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY, Caracteristic.class); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT, Caracteristic.class); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_WITH_UNIT, Caracteristic.class); assertDecoratorByTypeFound(SpeciesProtocol.class); assertDecoratorByTypeFound(CaracteristicQualitativeValue.class); assertDecoratorByTypeFound(Attachment.class); @@ -91,37 +109,37 @@ assertDecoratorByTypeFound(Float.class); assertDecoratorByTypeFound(Species.class); assertDecoratorByTypeFound(DecoratorService.FROM_PROTOCOL, Species.class); - assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_WITH_UNIT, Caracteristic.class); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfTuttiLocation()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfCruise()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfTuttiProtocol()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfFishingOperation()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfGear()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfPerson()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfCaracteristic()); - assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY, TuttiBeanFactory.typeOfCaracteristic()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfCaracteristicQualitativeValue()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfSpeciesProtocol()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfAttachment()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfVessel()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfProgram()); - assertDecoratorByTypeFound(TuttiBeanFactory.typeOfSpecies()); - assertDecoratorByTypeFound(DecoratorService.FROM_PROTOCOL, TuttiBeanFactory.typeOfSpecies()); - assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_WITH_UNIT, TuttiBeanFactory.typeOfCaracteristic()); + assertDecoratorByTypeFound(TuttiLocations.typeOfTuttiLocation()); + assertDecoratorByTypeFound(Cruises.typeOfCruise()); + assertDecoratorByTypeFound(TuttiProtocols.typeOfTuttiProtocol()); + assertDecoratorByTypeFound(FishingOperations.typeOfFishingOperation()); + assertDecoratorByTypeFound(Gears.typeOfGear()); + assertDecoratorByTypeFound(Persons.typeOfPerson()); + assertDecoratorByTypeFound(Caracteristics.typeOfCaracteristic()); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY, Caracteristics.typeOfCaracteristic()); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_PARAMETER_ONLY_WITH_UNIT, Caracteristics.typeOfCaracteristic()); + assertDecoratorByTypeFound(DecoratorService.CARACTERISTIC_WITH_UNIT, Caracteristics.typeOfCaracteristic()); + assertDecoratorByTypeFound(CaracteristicQualitativeValues.typeOfCaracteristicQualitativeValue()); + assertDecoratorByTypeFound(SpeciesProtocols.typeOfSpeciesProtocol()); + assertDecoratorByTypeFound(Attachments.typeOfAttachment()); + assertDecoratorByTypeFound(Vessels.typeOfVessel()); + assertDecoratorByTypeFound(Programs.typeOfProgram()); + assertDecoratorByTypeFound(Speciess.typeOfSpecies()); + assertDecoratorByTypeFound(DecoratorService.FROM_PROTOCOL, Speciess.typeOfSpecies()); } @Test public void decorateProgram() { Decorator<Program> d = assertDecoratorByTypeFound(Program.class); - Program p = TuttiBeanFactory.newProgram(); + Program p = Programs.newProgram(); p.setName("pName"); String s; s = d.toString(p); Assert.assertEquals("pName - " + _("tutti.propety.no.zone"), s); - TuttiLocation z = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation z = TuttiLocations.newTuttiLocation(); z.setLabel("pLabel"); p.setZone(z); s = d.toString(p); @@ -129,12 +147,54 @@ } + @Test + public void decorateGear() { + Decorator<Gear> d = assertDecoratorByTypeFound(DecoratorService.GEAR_WITH_RANK_ORDER, Gear.class); + + List<Gear> gears = Lists.newArrayList(); + Gear g0 = Gears.newGear(); + g0.setRankOrder((short) 0); + g0.setName("A"); + g0.setLabel("Gear A"); + Assert.assertEquals("0 - Gear A - A", d.toString(g0)); + gears.add(g0); + + Gear g1 = Gears.newGear(); + g1.setRankOrder((short) 1); + g1.setName("B"); + g1.setLabel("Gear B"); + Assert.assertEquals("1 - Gear B - B", d.toString(g1)); + gears.add(g1); + + Gear g11 = Gears.newGear(); + g11.setRankOrder((short) 11); + g11.setName("B"); + g11.setLabel("Gear B"); + Assert.assertEquals("11 - Gear B - B", d.toString(g11)); + gears.add(g11); + + Gear g2 = Gears.newGear(); + g2.setRankOrder((short) 2); + g2.setName("C"); + g2.setLabel("Gear C"); + Assert.assertEquals("2 - Gear C - C", d.toString(g2)); + gears.add(g2); + + DecoratorUtil.sort((JXPathDecorator<Gear>) d, gears, 0); + Assert.assertEquals(gears, Lists.newArrayList(g0, g1, g2, g11)); + + DecoratorUtil.sort((JXPathDecorator<Gear>) d, gears, 0, true); + Assert.assertEquals(gears, Lists.newArrayList( g11,g2, g1, g0)); + + + } + protected <O> Decorator<O> assertDecoratorByTypeFound(Class<O> type) { return assertDecoratorByTypeFound(null, type); } protected <O> Decorator<O> assertDecoratorByTypeFound(String context, Class<O> type) { - Decorator<O> decorator = service.getDecoratorByType(type); + Decorator<O> decorator = service.getDecoratorByType(type, context); Assert.assertNotNull(context, decorator); return decorator; } Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,11 +26,17 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.RessourceClassLoader; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; +import fr.ifremer.tutti.persistence.entities.referential.Gears; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.config.TuttiServiceConfig; import org.apache.commons.lang3.time.DateUtils; import org.junit.Assert; @@ -68,7 +74,7 @@ @Test public void validateCruise() throws Exception { - Cruise c = TuttiBeanFactory.newCruise(); + Cruise c = Cruises.newCruise(); assertIsNotValid(service.validateCruise(c)); @@ -76,27 +82,27 @@ c.setMultirigNumber(1); c.setBeginDate(serviceContext.currentDate()); c.setEndDate(DateUtils.addDays(serviceContext.currentDate(), 1)); - c.setDepartureLocation(TuttiBeanFactory.newTuttiLocation()); - c.setReturnLocation(TuttiBeanFactory.newTuttiLocation()); - c.setProgram(TuttiBeanFactory.newProgram()); - c.setVessel(TuttiBeanFactory.newVessel()); - c.setGear(Lists.newArrayList(TuttiBeanFactory.newGear())); - c.setHeadOfMission(Lists.newArrayList(TuttiBeanFactory.newPerson())); - c.setHeadOfSortRoom(Lists.newArrayList(TuttiBeanFactory.newPerson())); + c.setDepartureLocation(TuttiLocations.newTuttiLocation()); + c.setReturnLocation(TuttiLocations.newTuttiLocation()); + c.setProgram(Programs.newProgram()); + c.setVessel(Vessels.newVessel()); + c.setGear(Lists.newArrayList(Gears.newGear())); + c.setHeadOfMission(Lists.newArrayList(Persons.newPerson())); + c.setHeadOfSortRoom(Lists.newArrayList(Persons.newPerson())); assertIsValid(service.validateCruise(c)); } @Test public void validateProgram() throws Exception { - Program p = TuttiBeanFactory.newProgram(); + Program p = Programs.newProgram(); // no name / no zone / no description assertIsNotValid(service.validateProgram(p)); p.setName("pName"); p.setDescription("pDescription"); - TuttiLocation z = TuttiBeanFactory.newTuttiLocation(); + TuttiLocation z = TuttiLocations.newTuttiLocation(); z.setId("z0"); z.setLabel("z0Label"); p.setZone(z); @@ -105,11 +111,11 @@ assertIsValid(service.validateProgram(p)); // adding two programs - Program p2 = TuttiBeanFactory.newProgram(); + Program p2 = Programs.newProgram(); p2.setId("p2"); p2.setName("pName"); p2.setZone(z); - Program p3 = TuttiBeanFactory.newProgram(); + Program p3 = Programs.newProgram(); p3.setId("p3"); p3.setName("pName2"); p3.setZone(z); @@ -137,7 +143,7 @@ @Test public void validateProtocol() throws Exception { - TuttiProtocol p = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol p = TuttiProtocols.newTuttiProtocol(); // no name assertIsNotValid(service.validateProtocol(p)); @@ -148,10 +154,10 @@ assertIsValid(service.validateProtocol(p)); // add two protocol in dataContext - TuttiProtocol p2 = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol p2 = TuttiProtocols.newTuttiProtocol(); p2.setId("p2"); p2.setName("pName"); - TuttiProtocol p3 = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol p3 = TuttiProtocols.newTuttiProtocol(); p3.setId("p3"); p3.setName("pName2"); Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/TuttiExportServiceTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -384,6 +384,8 @@ TuttiProtocol protocol = dbResource.loadProtocol(protocolFile); + persistenceService.setProtocol(protocol); + dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_CGFS_ID, NB_EXPECTED_CGFS_OPERATIONS); FishingOperation operation = TuttiEntities.findById(dataContext.operations, "100000"); Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -28,11 +28,14 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.io.Files; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristics; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.ServiceDbResource; import org.junit.Assert; import org.junit.Before; @@ -171,7 +174,7 @@ Files.createParentDirs(exportFile); Assert.assertFalse(exportFile.exists()); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); protocol.setVersion(2); protocol.setId("1"); protocol.setName("protocolName"); @@ -181,7 +184,7 @@ protocol.setGearUseFeaturePmfmId(Lists.newArrayList("21", "22")); protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol sp1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp1 = SpeciesProtocols.newSpeciesProtocol(); sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp1.setId(1); sp1.setSpeciesReferenceTaxonId(11242); @@ -193,7 +196,7 @@ sp1.setWeightEnabled(true); protocol.addSpecies(sp1); - SpeciesProtocol sp2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp2.setId(2); sp2.setSpeciesReferenceTaxonId(3835); @@ -208,7 +211,7 @@ protocol.addSpecies(sp2); protocol.setBenthos(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol bp1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol bp1 = SpeciesProtocols.newSpeciesProtocol(); bp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); bp1.setId(21); bp1.setSpeciesSurveyCode("cruiseCode1"); @@ -220,7 +223,7 @@ bp1.setWeightEnabled(true); protocol.addBenthos(bp1); - SpeciesProtocol bp2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol bp2 = SpeciesProtocols.newSpeciesProtocol(); bp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); bp2.setId(22); bp2.setSpeciesReferenceTaxonId(3835); @@ -254,7 +257,7 @@ Assert.assertNotNull(protocol); Assert.assertEquals("1", protocol.getId()); - Assert.assertEquals(2, protocol.getVersion(),0); + Assert.assertEquals(2, protocol.getVersion(), 0); Assert.assertEquals("protocolName", protocol.getName()); Assert.assertEquals("Commentaire", protocol.getComment()); Assert.assertEquals(Lists.newArrayList("14", "18"), protocol.getLengthClassesPmfmId()); @@ -329,7 +332,7 @@ Files.write(PROTOCOL_CARACTERISTIC_FILE_CONTENT, file, Charsets.UTF_8); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); service.importProtocolCaracteristic(file, @@ -352,7 +355,7 @@ Files.createParentDirs(file); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); protocol.setLengthClassesPmfmId(Lists.newArrayList("1")); protocol.setVesselUseFeaturePmfmId(Lists.newArrayList("2")); @@ -396,7 +399,7 @@ Files.write(PROTOCOL_SPECIES_FILE_CONTENT, file, Charsets.UTF_8); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); Map<String, Species> speciesMap = createSpecies(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); @@ -443,10 +446,10 @@ Map<String, Species> speciesMap = createSpecies(); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol sp1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp1 = SpeciesProtocols.newSpeciesProtocol(); sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp1.setSpeciesReferenceTaxonId(1); sp1.setSpeciesSurveyCode("cruiseCode1"); @@ -461,7 +464,7 @@ protocol.addSpecies(sp1); - SpeciesProtocol sp2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp2.setSpeciesReferenceTaxonId(2); sp2.addMandatorySampleCategoryId(AGE); @@ -496,7 +499,7 @@ Files.write(PROTOCOL_BENTHOS_FILE_CONTENT, file, Charsets.UTF_8); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); Map<String, Species> speciesMap = createSpecies(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); @@ -543,10 +546,10 @@ Map<String, Species> speciesMap = createSpecies(); - TuttiProtocol protocol = TuttiBeanFactory.newTuttiProtocol(); + TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); protocol.setBenthos(Lists.<SpeciesProtocol>newArrayList()); - SpeciesProtocol sp1 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp1 = SpeciesProtocols.newSpeciesProtocol(); sp1.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp1.setId(21); sp1.setSpeciesReferenceTaxonId(1); @@ -562,7 +565,7 @@ protocol.addBenthos(sp1); - SpeciesProtocol sp2 = TuttiBeanFactory.newSpeciesProtocol(); + SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); sp2.setMandatorySampleCategoryId(Lists.<Integer>newArrayList()); sp2.setId(22); sp2.setSpeciesReferenceTaxonId(2); @@ -592,7 +595,7 @@ protected Map<String, Caracteristic> createCaracteristics() { Map<String, Caracteristic> result = Maps.newTreeMap(); for (int i = 1; i < 6; i++) { - Caracteristic c = TuttiBeanFactory.newCaracteristic(); + Caracteristic c = Caracteristics.newCaracteristic(); c.setId("" + i); c.setParameterName("parameterName" + i); c.setMatrixName("matrixName" + i); @@ -606,7 +609,7 @@ protected Map<String, Species> createSpecies() { Map<String, Species> result = Maps.newTreeMap(); for (int i = 1; i < 3; i++) { - Species c = TuttiBeanFactory.newSpecies(); + Species c = Speciess.newSpecies(); c.setId("" + i); c.setReferenceTaxonId(i); c.setName("speciesName" + i); Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/sumatra/CatchesSumatraExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/sumatra/CatchesSumatraExportServiceTest.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/sumatra/CatchesSumatraExportServiceTest.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -60,7 +60,7 @@ public static final String EXPORT_CONTENT = "Station;Espèce;Total;NbIndividus\n" + "A;Chama magna;100.0;40;\n" + - "A;Echinogammarus;100.0;416;\n" + + "A;Echinogammarus;100.0;417;\n" + "A;Brissopsis atlantica;100.0;94;"; protected CatchesSumatraExportService service; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-09-30 12:34:52 UTC (rev 1250) @@ -228,6 +228,7 @@ #gearList { property: gear; border: {BorderFactory.createTitledBorder(_("tutti.editCruise.field.gear"))}; + useMultiSelect: true; _validatorLabel: {_("tutti.editCruise.field.gear")}; toolTipText: "tutti.editCruise.field.gear.tip"; _help: {"tutti.editCruise.field.gear.help"}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,10 +25,10 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; @@ -74,7 +74,7 @@ * * @since 1.3 */ - protected final Cruise editObject = TuttiBeanFactory.newCruise(); + protected final Cruise editObject = Cruises.newCruise(); /** * Type of vessel. @@ -114,7 +114,7 @@ @Override protected Cruise newEntity() { - return TuttiBeanFactory.newCruise(); + return Cruises.newCruise(); } public boolean isCanEditGearCatacteristic() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; @@ -160,6 +160,6 @@ @Override protected Cruise newEntity() { - return TuttiBeanFactory.newCruise(); + return Cruises.newCruise(); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,12 +26,14 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.InvalidBatchModelException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; +import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.service.PersistenceService; @@ -346,6 +348,18 @@ log.info("Edit in ui fishingOperation: " + fishingOperation); } + // get the rankorder of the gear from cruise gears + Gear gear = fishingOperation == null ? null : fishingOperation.getGear(); + if (gear != null) { + Cruise cruise = getDataContext().getCruise(); + for (Gear cruiseGear : cruise.getGear()) { + if (cruiseGear.equals(gear)) { + gear.setRankOrder(cruiseGear.getRankOrder()); + break; + } + } + } + // now fishing operation is edited model.setEditFishingOperation(fishingOperation); @@ -419,7 +433,7 @@ if (bean == null) { editFishingOperationUIModel.fromBean( - TuttiBeanFactory.newFishingOperation()); + FishingOperations.newFishingOperation()); editFishingOperationUIModel.setFishingOperation(bean); @@ -523,7 +537,7 @@ if (log.isInfoEnabled()) { log.info("Create a new CatchBatch (fishing operation is null)"); } - batch = TuttiBeanFactory.newCatchBatch(); + batch = CatchBatchs.newCatchBatch(); batch.setFishingOperation(bean); attachments = Collections.emptyList(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -31,10 +31,10 @@ import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.operation.fishing.AbstractCaracteristicTabUIModel; @@ -252,15 +252,16 @@ people, model.getRecorderPerson()); - initBeanFilterableComboBox(ui.getGearComboBox(), - Lists.<Gear>newArrayList(), - null); - Cruise cruise = getDataContext().getCruise(); Preconditions.checkNotNull(cruise, "Could not find cruise in ui context"); ui.getMultirigAggregationField().setEnabled(cruise.getMultirigNumber() != 1); + initBeanFilterableComboBox(ui.getGearComboBox(), + Lists.newArrayList(cruise.getGear()), + null, + DecoratorService.GEAR_WITH_RANK_ORDER); + Program program = getDataContext().getProgram(); Preconditions.checkNotNull(program, "Could not find program in ui context"); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,12 +26,12 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; @@ -109,7 +109,7 @@ * * @since 1.3 */ - protected final FishingOperation editObject = TuttiBeanFactory.newFishingOperation(); + protected final FishingOperation editObject = FishingOperations.newFishingOperation(); protected SexagecimalPosition gearShootingStartLatitudeAsSexagecimal; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/NewFishingOperationAction.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,9 +24,9 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.FishingOperations; import fr.ifremer.tutti.persistence.entities.referential.Gear; import java.util.List; @@ -63,7 +63,7 @@ // creates a empty bean FishingOperation newFishingOperation = - TuttiBeanFactory.newFishingOperation(); + FishingOperations.newFishingOperation(); Cruise cruise = getDataContext().getCruise(); newFishingOperation.setCruise(cruise); newFishingOperation.setVessel(cruise.getVessel()); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,9 +26,9 @@ */ import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.ValidationService; @@ -153,7 +153,7 @@ savedFishingOperation = service.createFishingOperation(toSave); // create then the CatchBatch - CatchBatch catchBatch = TuttiBeanFactory.newCatchBatch(); + CatchBatch catchBatch = CatchBatchs.newCatchBatch(); catchBatch.setFishingOperation(savedFishingOperation); service.createCatchBatch(catchBatch); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CleanBatchWeightsAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CleanBatchWeightsAction.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CleanBatchWeightsAction.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.InvalidBatchModelException; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/CleanBatchWeightsAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -28,10 +28,10 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; +import fr.ifremer.tutti.persistence.entities.data.CatchBatchs; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -111,7 +111,7 @@ protected FishingOperation fishingOperation; - protected final CatchBatch editObject = TuttiBeanFactory.newCatchBatch(); + protected final CatchBatch editObject = CatchBatchs.newCatchBatch(); protected final List<Attachment> attachment = Lists.newArrayList(); @@ -228,7 +228,7 @@ @Override protected CatchBatch newEntity() { // return editObject; - return TuttiBeanFactory.newCatchBatch(); + return CatchBatchs.newCatchBatch(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,16 +26,16 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; -import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel; import org.nuiton.util.beans.Binder; @@ -61,7 +61,7 @@ * @since 1.3 */ protected final AccidentalBatch editObject = - TuttiBeanFactory.newAccidentalBatch(); + AccidentalBatchs.newAccidentalBatch(); /** * Attachments (should never be null). @@ -102,7 +102,7 @@ @Override protected AccidentalBatch newEntity() { - return TuttiBeanFactory.newAccidentalBatch(); + return AccidentalBatchs.newAccidentalBatch(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/create/CreateAccidentalBatchUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -22,8 +22,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; +import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; @@ -44,7 +44,7 @@ * @since 1.3 */ protected final AccidentalBatch editObject = - TuttiBeanFactory.newAccidentalBatch(); + AccidentalBatchs.newAccidentalBatch(); public CreateAccidentalBatchUIModel() { super(CreateAccidentalBatchUIModel.class, null, null); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,11 +26,11 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; @@ -234,7 +234,7 @@ @Override protected BenthosBatch newEntity() { - return TuttiBeanFactory.newBenthosBatch(); + return BenthosBatchs.newBenthosBatch(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,12 +26,12 @@ import com.google.common.collect.Lists; import com.google.common.collect.Ordering; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; -import fr.ifremer.tutti.service.WeightUnit; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -140,7 +140,7 @@ @Override protected BenthosBatchFrequency newEntity() { - return TuttiBeanFactory.newBenthosBatchFrequency(); + return BenthosBatchFrequencys.newBenthosBatchFrequency(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,15 +24,15 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; -import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel; import org.nuiton.util.beans.Binder; @@ -59,7 +59,7 @@ * @since 1.3 */ protected final IndividualObservationBatch editObject = - TuttiBeanFactory.newIndividualObservationBatch(); + IndividualObservationBatchs.newIndividualObservationBatch(); /** * Attachments (should never be null). @@ -155,7 +155,7 @@ @Override protected IndividualObservationBatch newEntity() { - return TuttiBeanFactory.newIndividualObservationBatch(); + return IndividualObservationBatchs.newIndividualObservationBatch(); } //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/create/CreateIndividualObservationBatchUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; +import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; @@ -64,7 +64,7 @@ * @since 1.3 */ protected final IndividualObservationBatch editObject = - TuttiBeanFactory.newIndividualObservationBatch(); + IndividualObservationBatchs.newIndividualObservationBatch(); /** * Default caracteristics coming from protocol. @@ -156,7 +156,7 @@ @Override protected IndividualObservationBatch newEntity() { - return TuttiBeanFactory.newIndividualObservationBatch(); + return IndividualObservationBatchs.newIndividualObservationBatch(); } public void reset() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,11 +25,11 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.service.WeightUnit; @@ -56,7 +56,7 @@ * @since 1.3 */ protected final MarineLitterBatch editObject = - TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatchs.newMarineLitterBatch(); /** * Attachments (should never be null). @@ -97,7 +97,7 @@ @Override protected MarineLitterBatch newEntity() { - return TuttiBeanFactory.newMarineLitterBatch(); + return MarineLitterBatchs.newMarineLitterBatch(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,8 +26,8 @@ import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; @@ -47,7 +47,7 @@ * @since 1.3 */ protected final MarineLitterBatch editObject = - TuttiBeanFactory.newMarineLitterBatch(); + MarineLitterBatchs.newMarineLitterBatch(); /** * Already used categories by size category. Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,7 +26,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; @@ -35,13 +34,14 @@ import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryAble; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.TuttiComputedOrNotData; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import fr.ifremer.tutti.service.WeightUnit; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -91,7 +91,7 @@ * * @since 1.3 */ - protected final SpeciesBatch editObject = TuttiBeanFactory.newSpeciesBatch(); + protected final SpeciesBatch editObject = SpeciesBatchs.newSpeciesBatch(); /** * All categories(can not be null). @@ -199,7 +199,7 @@ @Override protected SpeciesBatch newEntity() { - return TuttiBeanFactory.newSpeciesBatch(); + return SpeciesBatchs.newSpeciesBatch(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,9 +26,9 @@ import com.google.common.collect.Lists; import com.google.common.collect.Ordering; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; +import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.service.WeightUnit; @@ -140,7 +140,7 @@ @Override protected SpeciesBatchFrequency newEntity() { - return TuttiBeanFactory.newSpeciesBatchFrequency(); + return SpeciesBatchFrequencys.newSpeciesBatchFrequency(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import org.nuiton.util.beans.Binder; @@ -46,7 +46,7 @@ * * @since 1.3 */ - protected final Program editObject = TuttiBeanFactory.newProgram(); + protected final Program editObject = Programs.newProgram(); protected static Binder<EditProgramUIModel, Program> toBeanBinder = BinderFactory.newBinder(EditProgramUIModel.class, @@ -62,7 +62,7 @@ @Override protected Program newEntity() { - return TuttiBeanFactory.newProgram(); + return Programs.newProgram(); } //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -24,8 +24,8 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; @@ -187,7 +187,7 @@ @Override protected SpeciesProtocol newEntity() { - return TuttiBeanFactory.newSpeciesProtocol(); + return SpeciesProtocols.newSpeciesProtocol(); } @Override Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -26,10 +26,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Multimap; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; @@ -67,7 +67,7 @@ * * @since 1.3 */ - protected final TuttiProtocol editObject = TuttiBeanFactory.newTuttiProtocol(); + protected final TuttiProtocol editObject = TuttiProtocols.newTuttiProtocol(); /** * Flag when a incoming protocol is imported. @@ -133,7 +133,7 @@ @Override protected TuttiProtocol newEntity() { - return TuttiBeanFactory.newTuttiProtocol(); + return TuttiProtocols.newTuttiProtocol(); } public void setLengthClassesPmfm(List<Caracteristic> lengthClassesPmfm) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-09-30 12:23:39 UTC (rev 1249) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentEditorUIHandler.java 2013-09-30 12:34:52 UTC (rev 1250) @@ -25,8 +25,8 @@ */ import fr.ifremer.tutti.TuttiTechnicalException; -import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Attachments; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; @@ -218,7 +218,7 @@ public void addAttachment() { AttachmentModelAware bean = ui.getBean(); - Attachment attachment = TuttiBeanFactory.newAttachment(); + Attachment attachment = Attachments.newAttachment(); File file = ui.getFile().getSelectedFile(); if (file != null) {
participants (1)
-
tchemit@users.forge.codelutin.com