Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
24 Apr '14
Author: tchemit
Date: 2014-04-24 12:17:09 +0200 (Thu, 24 Apr 2014)
New Revision: 1725
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1725
Log:
fixes #4979
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/MatrixId2.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/ObjectTypeCode2.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/PmfmId2.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/QualitativeValueId2.java
Removed:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFileTest.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
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/CatchBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.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/TechnicalPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.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/i18n/tutti-persistence_en_GB.properties
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.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/BenthosBatchPersistenceServiceReadTest.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/SpeciesBatchPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java
trunk/tutti-service/pom.xml
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.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/psionimport/PsionImportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriCatch.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPupitriAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIModel.java
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/ValidateCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.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/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/benthos/BenthosBatchRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.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/marinelitter/MarineLitterBatchRowModel.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/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentModelAware.java
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/MatrixId2.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/MatrixId2.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/MatrixId2.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -0,0 +1,196 @@
+/*
+ * #%L
+ * SIH-Adagio
+ * $Id$
+ * $HeadURL: https://forge.ifremer.fr/svn/sih-adagio/trunk/adagio/mda/src/main/config/ja… $
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.adagio.core.dao.referential.pmfm;
+
+import fr.ifremer.adagio.core.dao.technical.AdagioEnumerationDef;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.n;
+
+/**
+ *
+ */
+public enum MatrixId2
+ implements Serializable, AdagioEnumerationDef<Integer> {
+ /** TODO: Model Documentation for Enumeration Literal PRODUCT_BATCH value 1 */
+ PRODUCT_BATCH(
+ "adagio.enumeration.MatrixId.PRODUCT_BATCH",
+ n("adagio.enumeration.MatrixId.PRODUCT_BATCH.description"),
+ 1);
+
+ /**
+ * The serial version UID of this class. Needed for serialization.
+ */
+ private static final long serialVersionUID = 1L;
+
+ private String key;
+
+ private String description;
+
+ private Integer enumValue;
+
+ private MatrixId2(String key, String description, Integer value) {
+ this.key = key;
+ this.description = description;
+ this.enumValue = value;
+ }
+
+ @Override
+ public void setValue(Integer newValue) {
+ if (newValue != null && !this.enumValue.equals(newValue)) {
+ // Update static lists
+ values.remove(this.enumValue);
+ literals.remove(this.enumValue);
+ this.enumValue = newValue;
+ values.put(this.enumValue, this);
+ literals.add(this.enumValue);
+ }
+ }
+
+ @Override
+ public String getValueAsString() {
+ return String.valueOf(this.enumValue);
+ }
+
+ /**
+ * Retrieves an instance of MatrixId from <code>its name</code>.
+ *
+ * @param name
+ * the name to create the MatrixId from.
+ * @return The enumeration literal named after the 'name' argument
+ */
+ public static MatrixId2 fromString(String name) {
+ return MatrixId2.valueOf(name);
+ }
+
+ /**
+ * Returns an enumeration literal Integer <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @return Integer with corresponding value
+ */
+ public Integer value() {
+ return this.enumValue;
+ }
+
+ /**
+ * Returns an instance of MatrixId from Integer <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @param value
+ * the value to create the MatrixId from.
+ * @return static Enumeration with corresponding value
+ */
+ public static MatrixId2 fromValue(Integer value) {
+ for (MatrixId2 enumName : MatrixId2.values()) {
+ if (enumName.getValue().equals(value)) {
+ return enumName;
+ }
+ }
+ throw new IllegalArgumentException("MatrixId.fromValue(" + value.toString() + ')');
+ }
+
+ /**
+ * Gets the underlying value of this type safe enumeration.
+ * This method is necessary to comply with DaoBase implementation.
+ *
+ * @return The name of this literal.
+ */
+ public Integer getValue() {
+ return this.enumValue;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return Integer.class;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the literals that are known by this enumeration.
+ *
+ * @return A List containing the actual literals defined by this enumeration, this list
+ * can not be modified.
+ */
+ public static List<Integer> literals() {
+ return MatrixId2.literals;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the names of the literals that are known
+ * by this enumeration.
+ *
+ * @return A List containing the actual names of the literals defined by this
+ * enumeration, this list can not be modified.
+ */
+ public static List<String> names() {
+ return MatrixId2.names;
+ }
+
+ private static Map<Integer, MatrixId2> values = new LinkedHashMap<Integer, MatrixId2>(4, 1);
+
+ private static List<Integer> literals = new ArrayList<Integer>(4);
+
+ private static List<String> names = new ArrayList<String>(4);
+
+ private static List<MatrixId2> valueList = new ArrayList<MatrixId2>(4);
+
+ /**
+ * Initializes the values.
+ */
+ static {
+ synchronized (MatrixId2.values) {
+ MatrixId2.values.put(PRODUCT_BATCH.enumValue, PRODUCT_BATCH);
+ }
+ synchronized (MatrixId2.valueList) {
+ MatrixId2.valueList.add(PRODUCT_BATCH);
+ // For Adagio, lists could be reload from configuration
+ // MatrixId.valueList = Collections.unmodifiableList(valueList);
+ }
+ synchronized (MatrixId2.literals) {
+ MatrixId2.literals.add(PRODUCT_BATCH.enumValue);
+ // For Adagio, lists could be reload from configuration
+ // MatrixId.literals = Collections.unmodifiableList(literals);
+ }
+ synchronized (MatrixId2.names) {
+ MatrixId2.names.add("PRODUCT_BATCH");
+ MatrixId2.names = Collections.unmodifiableList(names);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/MatrixId2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/ObjectTypeCode2.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/ObjectTypeCode2.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/ObjectTypeCode2.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -0,0 +1,252 @@
+package fr.ifremer.adagio.core.dao.referential.pmfm;
+
+import fr.ifremer.adagio.core.dao.technical.AdagioEnumerationDef;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.n;
+
+/**
+ * Created on 4/24/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.5
+ */
+public enum ObjectTypeCode2 implements Serializable, AdagioEnumerationDef<String> {
+ /** TODO: Model Documentation for Enumeration Literal ACTIVITY_CALENDAR value "ACTIVITY_CALENDAR" */
+ ACTIVITY_CALENDAR(
+ "adagio.enumeration.ObjectTypeCode.ACTIVITY_CALENDAR",
+ n("adagio.enumeration.ObjectTypeCode.ACTIVITY_CALENDAR.description"),
+ "ACTIVITY_CALENDAR"),
+ /** TODO: Model Documentation for Enumeration Literal FISHING_TRIP value "FISHING_TRIP" */
+ FISHING_TRIP(
+ "adagio.enumeration.ObjectTypeCode.FISHING_TRIP",
+ n("adagio.enumeration.ObjectTypeCode.FISHING_TRIP.description"),
+ "FISHING_TRIP"),
+ /** TODO: Model Documentation for Enumeration Literal OPERATION value "OPERATION" */
+ OPERATION(
+ "adagio.enumeration.ObjectTypeCode.OPERATION",
+ n("adagio.enumeration.ObjectTypeCode.OPERATION.description"),
+ "OPERATION"),
+ /** TODO: Model Documentation for Enumeration Literal BATCH value "BATCH" */
+ CATCH_BATCH(
+ "adagio.enumeration.ObjectTypeCode.CATCH_BATCH",
+ n("adagio.enumeration.ObjectTypeCode.CATCH_BATCH.description"),
+ "CATCH_BATCH"),
+ /** TODO: Model Documentation for Enumeration Literal BATCH value "BATCH" */
+ BATCH(
+ "adagio.enumeration.ObjectTypeCode.BATCH",
+ n("adagio.enumeration.ObjectTypeCode.BATCH.description"),
+ "BATCH"),
+ /** TODO: Model Documentation for Enumeration Literal SAMPLE value "SAMPLE" */
+ SAMPLE(
+ "adagio.enumeration.ObjectTypeCode.SAMPLE",
+ n("adagio.enumeration.ObjectTypeCode.SAMPLE.description"),
+ "SAMPLE"),
+ /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE value "SCIENTIFIC_CRUISE" */
+ SCIENTIFIC_CRUISE(
+ "adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE",
+ n("adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE.description"),
+ "SCIENTIFIC_CRUISE"),
+ /** TODO: Model Documentation for Enumeration Literal SALE value "SALE" */
+ SALE(
+ "adagio.enumeration.ObjectTypeCode.SALE",
+ n("adagio.enumeration.ObjectTypeCode.SALE.description"),
+ "SALE"),
+ /** TODO: Model Documentation for Enumeration Literal LANDING value "LANDING" */
+ LANDING(
+ "adagio.enumeration.ObjectTypeCode.LANDING",
+ n("adagio.enumeration.ObjectTypeCode.LANDING.description"),
+ "LANDING"),
+ /** TODO: Model Documentation for Enumeration Literal DAILY_ACTIVITY_CALENDAR value "DAILY_ACTIVITY_CALENDAR" */
+ DAILY_ACTIVITY_CALENDAR(
+ "adagio.enumeration.ObjectTypeCode.DAILY_ACTIVITY_CALENDAR",
+ n("adagio.enumeration.ObjectTypeCode.DAILY_ACTIVITY_CALENDAR.description"),
+ "DAILY_ACTIVITY_CALENDAR");
+
+ /**
+ * The serial version UID of this class. Needed for serialization.
+ */
+ private static final long serialVersionUID = -8263283045204115976L;
+
+ private String key;
+
+ private String description;
+
+ private String enumValue;
+
+ private ObjectTypeCode2(String key, String description, String value) {
+ this.key = key;
+ this.description = description;
+ this.enumValue = value;
+ }
+
+ @Override
+ public void setValue(String newValue) {
+ if (newValue != null && !this.enumValue.equals(newValue)) {
+ // Update static lists
+ values.remove(this.enumValue);
+ literals.remove(this.enumValue);
+ this.enumValue = newValue;
+ values.put(this.enumValue, this);
+ literals.add(this.enumValue);
+ }
+ }
+
+
+ @Override
+ public String getValueAsString() {
+ return String.valueOf(this.enumValue);
+ }
+
+ /**
+ * Retrieves an instance of ObjectTypeCode2 from <code>its name</code>.
+ *
+ * @param name the name to create the ObjectTypeCode2 from.
+ * @return The enumeration literal named after the 'name' argument
+ */
+ public static ObjectTypeCode2 fromString(String name) {
+ return ObjectTypeCode2.valueOf(name);
+ }
+
+ /**
+ * Returns an enumeration literal String <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @return String with corresponding value
+ */
+ public String value() {
+ return this.enumValue;
+ }
+
+ /**
+ * Returns an instance of ObjectTypeCode2 from String <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @param value the value to create the ObjectTypeCode2 from.
+ * @return static Enumeration with corresponding value
+ */
+ public static ObjectTypeCode2 fromValue(String value) {
+ for (ObjectTypeCode2 enumName : ObjectTypeCode2.values()) {
+ if (enumName.getValue().equals(value)) {
+ return enumName;
+ }
+ }
+ throw new IllegalArgumentException("ObjectTypeCode2.fromValue(" + value + ')');
+ }
+
+ /**
+ * Gets the underlying value of this type safe enumeration.
+ * This method is necessary to comply with DaoBase implementation.
+ *
+ * @return The name of this literal.
+ */
+ public String getValue() {
+ return this.enumValue;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return String.class;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the literals that are known by this enumeration.
+ *
+ * @return A List containing the actual literals defined by this enumeration, this list
+ * can not be modified.
+ */
+ public static List<String> literals() {
+ return ObjectTypeCode2.literals;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the names of the literals that are known
+ * by this enumeration.
+ *
+ * @return A List containing the actual names of the literals defined by this
+ * enumeration, this list can not be modified.
+ */
+ public static List<String> names() {
+ return ObjectTypeCode2.names;
+ }
+
+ private static Map<String, ObjectTypeCode2> values = new LinkedHashMap<String, ObjectTypeCode2>(9, 1);
+
+ private static List<String> literals = new ArrayList<String>(9);
+
+ private static List<String> names = new ArrayList<String>(9);
+
+ private static List<ObjectTypeCode2> valueList = new ArrayList<ObjectTypeCode2>(9);
+
+ /**
+ * Initializes the values.
+ */
+ static {
+ synchronized (ObjectTypeCode2.values) {
+ ObjectTypeCode2.values.put(ACTIVITY_CALENDAR.enumValue, ACTIVITY_CALENDAR);
+ ObjectTypeCode2.values.put(FISHING_TRIP.enumValue, FISHING_TRIP);
+ ObjectTypeCode2.values.put(OPERATION.enumValue, OPERATION);
+ ObjectTypeCode2.values.put(BATCH.enumValue, BATCH);
+ ObjectTypeCode2.values.put(SAMPLE.enumValue, SAMPLE);
+ ObjectTypeCode2.values.put(SCIENTIFIC_CRUISE.enumValue, SCIENTIFIC_CRUISE);
+ ObjectTypeCode2.values.put(SALE.enumValue, SALE);
+ ObjectTypeCode2.values.put(LANDING.enumValue, LANDING);
+ ObjectTypeCode2.values.put(DAILY_ACTIVITY_CALENDAR.enumValue, DAILY_ACTIVITY_CALENDAR);
+ }
+ synchronized (ObjectTypeCode2.valueList) {
+ ObjectTypeCode2.valueList.add(ACTIVITY_CALENDAR);
+ ObjectTypeCode2.valueList.add(FISHING_TRIP);
+ ObjectTypeCode2.valueList.add(OPERATION);
+ ObjectTypeCode2.valueList.add(BATCH);
+ ObjectTypeCode2.valueList.add(SAMPLE);
+ ObjectTypeCode2.valueList.add(SCIENTIFIC_CRUISE);
+ ObjectTypeCode2.valueList.add(SALE);
+ ObjectTypeCode2.valueList.add(LANDING);
+ ObjectTypeCode2.valueList.add(DAILY_ACTIVITY_CALENDAR);
+ // For Adagio, lists could be reload from configuration
+ //ObjectTypeCode2.valueList = Collections.unmodifiableList(valueList);
+ }
+ synchronized (ObjectTypeCode2.literals) {
+ ObjectTypeCode2.literals.add(ACTIVITY_CALENDAR.enumValue);
+ ObjectTypeCode2.literals.add(FISHING_TRIP.enumValue);
+ ObjectTypeCode2.literals.add(OPERATION.enumValue);
+ ObjectTypeCode2.literals.add(BATCH.enumValue);
+ ObjectTypeCode2.literals.add(SAMPLE.enumValue);
+ ObjectTypeCode2.literals.add(SCIENTIFIC_CRUISE.enumValue);
+ ObjectTypeCode2.literals.add(SALE.enumValue);
+ ObjectTypeCode2.literals.add(LANDING.enumValue);
+ ObjectTypeCode2.literals.add(DAILY_ACTIVITY_CALENDAR.enumValue);
+ // For Adagio, lists could be reload from configuration
+ //ObjectTypeCode2.literals = Collections.unmodifiableList(literals);
+ }
+ synchronized (ObjectTypeCode2.names) {
+ ObjectTypeCode2.names.add("ACTIVITY_CALENDAR");
+ ObjectTypeCode2.names.add("FISHING_TRIP");
+ ObjectTypeCode2.names.add("OPERATION");
+ ObjectTypeCode2.names.add("BATCH");
+ ObjectTypeCode2.names.add("SAMPLE");
+ ObjectTypeCode2.names.add("SCIENTIFIC_CRUISE");
+ ObjectTypeCode2.names.add("SALE");
+ ObjectTypeCode2.names.add("LANDING");
+ ObjectTypeCode2.names.add("DAILY_ACTIVITY_CALENDAR");
+ ObjectTypeCode2.names = Collections.unmodifiableList(names);
+ }
+ }
+ // type-safe-enumeration-object java merge-point
+}
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/ObjectTypeCode2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/PmfmId2.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/PmfmId2.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/PmfmId2.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -0,0 +1,504 @@
+/*
+ * #%L
+ * SIH-Adagio
+ * $Id$
+ * $HeadURL: https://forge.ifremer.fr/svn/sih-adagio/trunk/adagio/mda/src/main/config/ja… $
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.adagio.core.dao.referential.pmfm;
+
+import fr.ifremer.adagio.core.dao.technical.AdagioEnumerationDef;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.n;
+
+/**
+ *
+ */
+public enum PmfmId2
+ implements Serializable, AdagioEnumerationDef<Integer>
+{
+ // /** TODO: Model Documentation for Enumeration Literal ALIVE_WEIGHT_CALCULATED value "POIDS_CALCULE;6;1;6" */
+ // ALIVE_WEIGHT_CALCULATED (
+ // "adagio.enumeration.PmfmId.ALIVE_WEIGHT_CALCULATED",
+ // n("adagio.enumeration.PmfmId.ALIVE_WEIGHT_CALCULATED.description"),
+ // "POIDS_CALCULE;6;1;6"),
+ // /** TODO: Model Documentation for Enumeration Literal WEIGHT_SIZE_CALCULATED value "POIDS_CALCULE;6;1;7" */
+ // WEIGHT_SIZE_CALCULATED (
+ // "adagio.enumeration.PmfmId.WEIGHT_SIZE_CALCULATED",
+ // n("adagio.enumeration.PmfmId.WEIGHT_SIZE_CALCULATED.description"),
+ // "POIDS_CALCULE;6;1;7"),
+ // /** TODO: Model Documentation for Enumeration Literal WEIGHT_TOTAL_CALCULATED value "POIDS_CALCULE;6;1;17" */
+ // WEIGHT_TOTAL_CALCULATED (
+ // "adagio.enumeration.PmfmId.WEIGHT_TOTAL_CALCULATED",
+ // n("adagio.enumeration.PmfmId.WEIGHT_TOTAL_CALCULATED.description"),
+ // "POIDS_CALCULE;6;1;17"),
+ // /** TODO: Model Documentation for Enumeration Literal WEIGHT_SIZE_EXTRAPOLATE value "POIDS_CALCULE;6;1;21" */
+ // WEIGHT_SIZE_EXTRAPOLATE (
+ // "adagio.enumeration.PmfmId.WEIGHT_SIZE_EXTRAPOLATE",
+ // n("adagio.enumeration.PmfmId.WEIGHT_SIZE_EXTRAPOLATE.description"),
+ // "POIDS_CALCULE;6;1;21"),
+ // /** TODO: Model Documentation for Enumeration Literal CALCULATED_WEIGHT_CHILDREN_SUM value "POIDS_CALCULE;6;1;24"
+ // */
+ // CALCULATED_WEIGHT_CHILDREN_SUM (
+ // "adagio.enumeration.PmfmId.CALCULATED_WEIGHT_CHILDREN_SUM",
+ // n("adagio.enumeration.PmfmId.CALCULATED_WEIGHT_CHILDREN_SUM.description"),
+ // "POIDS_CALCULE;6;1;24"),
+ // /** TODO: Model Documentation for Enumeration Literal CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM value "POIDS_CALCULE;6;1;25" */
+ // CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM (
+ // "adagio.enumeration.PmfmId.CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM",
+ // n("adagio.enumeration.PmfmId.CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM.description"),
+ // "POIDS_CALCULE;6;1;25"),
+ // /** TODO: Model Documentation for Enumeration Literal MAX_DISTANCE_FOR_OPERATION_WITH_GEAR value "DISTANCE_MAX_OPERATION;17;1;1" */
+ // MAX_DISTANCE_FOR_OPERATION_WITH_GEAR (
+ // "adagio.enumeration.PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_GEAR",
+ // n("adagio.enumeration.PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_GEAR.description"),
+ // "DISTANCE_MAX_OPERATION;17;1;1"),
+ // /** TODO: Model Documentation for Enumeration Literal MAX_DURATION_FOR_OPERATION_WITH_GEAR value "DUREE_MAX_OPERATION;17;1;1" */
+ // MAX_DURATION_FOR_OPERATION_WITH_GEAR (
+ // "adagio.enumeration.PmfmId.MAX_DURATION_FOR_OPERATION_WITH_GEAR",
+ // n("adagio.enumeration.PmfmId.MAX_DURATION_FOR_OPERATION_WITH_GEAR.description"),
+ // "DUREE_MAX_OPERATION;17;1;1"),
+ // /** TODO: Model Documentation for Enumeration Literal MAX_DURATION_FOR_OPERATION_WITH_METIER value "DUREE_MAX_OPERATION;18;1;1" */
+ // MAX_DURATION_FOR_OPERATION_WITH_METIER (
+ // "adagio.enumeration.PmfmId.MAX_DURATION_FOR_OPERATION_WITH_METIER",
+ // n("adagio.enumeration.PmfmId.MAX_DURATION_FOR_OPERATION_WITH_METIER.description"),
+ // "DUREE_MAX_OPERATION;18;1;1"),
+ // /** TODO: Model Documentation for Enumeration Literal MAX_DISTANCE_FOR_OPERATION_WITH_METIER value "DISTANCE_MAX_OPERATION;18;1;1" */
+ // MAX_DISTANCE_FOR_OPERATION_WITH_METIER (
+ // "adagio.enumeration.PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_METIER",
+ // n("adagio.enumeration.PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_METIER.description"),
+ // "DISTANCE_MAX_OPERATION;18;1;1"),
+ // /** TODO: Model Documentation for Enumeration Literal STORAGE_STATE value "A_DEFINIR;1;1;1" */
+ // STORAGE_STATE (
+ // "adagio.enumeration.PmfmId.STORAGE_STATE",
+ // n("adagio.enumeration.PmfmId.STORAGE_STATE.description"),
+ // "A_DEFINIR;1;1;1"),
+ /** TODO: Model Documentation for Enumeration Literal SEX value "196" */
+ SEX(
+ "adagio.enumeration.PmfmId.SEX",
+ n("adagio.enumeration.PmfmId.SEX.description"),
+ 196),
+ /** TODO: Model Documentation for Enumeration Literal SIZE_CATEGORY value "198" */
+ SIZE_CATEGORY(
+ "adagio.enumeration.PmfmId.SIZE_CATEGORY",
+ n("adagio.enumeration.PmfmId.SIZE_CATEGORY.description"),
+ 198),
+ /** TODO: Model Documentation for Enumeration Literal AGE value "1430" */
+ AGE(
+ "adagio.enumeration.PmfmId.AGE",
+ n("adagio.enumeration.PmfmId.AGE.description"),
+ 1430),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY value "174" */
+ MATURITY(
+ "adagio.enumeration.PmfmId.MATURITY",
+ n("adagio.enumeration.PmfmId.MATURITY.description"),
+ 174),
+ /** TODO: Model Documentation for Enumeration Literal MARINE_LITTER_TYPE value "1421" */
+ MARINE_LITTER_TYPE(
+ "adagio.enumeration.PmfmId.MARINE_LITTER_TYPE",
+ n("adagio.enumeration.PmfmId.MARINE_LITTER_TYPE.description"),
+ 1421),
+ /** TODO: Model Documentation for Enumeration Literal MARINE_LITTER_SIZE_CATEGORY value "1422" */
+ MARINE_LITTER_SIZE_CATEGORY(
+ "adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY",
+ n("adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY.description"),
+ 1422),
+ /** TODO: Model Documentation for Enumeration Literal SURVEY_PART value "1432" */
+ SURVEY_PART(
+ "adagio.enumeration.PmfmId.SURVEY_PART",
+ n("adagio.enumeration.PmfmId.SURVEY_PART.description"),
+ 1432),
+ /** TODO: Model Documentation for Enumeration Literal STATION_NUMBER value "1243" */
+ STATION_NUMBER(
+ "adagio.enumeration.PmfmId.STATION_NUMBER",
+ n("adagio.enumeration.PmfmId.STATION_NUMBER.description"),
+ 1243),
+ /** TODO: Model Documentation for Enumeration Literal TRAWL_DISTANCE value "113" */
+ TRAWL_DISTANCE(
+ "adagio.enumeration.PmfmId.TRAWL_DISTANCE",
+ n("adagio.enumeration.PmfmId.TRAWL_DISTANCE.description"),
+ 113),
+ /** TODO: Model Documentation for Enumeration Literal HAUL_VALID value "1163" */
+ HAUL_VALID(
+ "adagio.enumeration.PmfmId.HAUL_VALID",
+ n("adagio.enumeration.PmfmId.HAUL_VALID.description"),
+ 1163),
+ /** TODO: Model Documentation for Enumeration Literal RECTILINEAR_OPERATION value "192" */
+ RECTILINEAR_OPERATION(
+ "adagio.enumeration.PmfmId.RECTILINEAR_OPERATION",
+ n("adagio.enumeration.PmfmId.RECTILINEAR_OPERATION.description"),
+ 192),
+ /** TODO: Model Documentation for Enumeration Literal MULTIRIG_NUMBER value "1420" */
+ MULTIRIG_NUMBER(
+ "adagio.enumeration.PmfmId.MULTIRIG_NUMBER",
+ n("adagio.enumeration.PmfmId.MULTIRIG_NUMBER.description"),
+ 1420),
+ /** TODO: Model Documentation for Enumeration Literal MULTIRIG_AGGREGATION value "1424" */
+ MULTIRIG_AGGREGATION(
+ "adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION",
+ n("adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION.description"),
+ 1424),
+ /** TODO: Model Documentation for Enumeration Literal WEIGHT_MEASURED value "220" */
+ WEIGHT_MEASURED(
+ "adagio.enumeration.PmfmId.WEIGHT_MEASURED",
+ n("adagio.enumeration.PmfmId.WEIGHT_MEASURED.description"),
+ 220),
+ /** TODO: Model Documentation for Enumeration Literal SORTED_UNSORTED value "1428" */
+ SORTED_UNSORTED(
+ "adagio.enumeration.PmfmId.SORTED_UNSORTED",
+ n("adagio.enumeration.PmfmId.SORTED_UNSORTED.description"),
+ 1428),
+ /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE_SORTING_TYPE value "1429" */
+ SCIENTIFIC_CRUISE_SORTING_TYPE(
+ "adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE",
+ n("adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE.description"),
+ 1429),
+ /** TODO: Model Documentation for Enumeration Literal SCIENTIFIC_CRUISE_SORTING_TYPE2 value "1431" */
+ SCIENTIFIC_CRUISE_SORTING_TYPE2(
+ "adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2",
+ n("adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2.description"),
+ 1431),
+ /** TODO: Model Documentation for Enumeration Literal VERTICAL_OPENING value "832" */
+ VERTICAL_OPENING(
+ "adagio.enumeration.PmfmId.VERTICAL_OPENING",
+ n("adagio.enumeration.PmfmId.VERTICAL_OPENING.description"),
+ 832),
+ /** TODO: Model Documentation for Enumeration Literal HORIZONTAL_OPENING_WINGS value "827" */
+ HORIZONTAL_OPENING_WINGS(
+ "adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS",
+ n("adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS.description"),
+ 827),
+ /** TODO: Model Documentation for Enumeration Literal HORIZONTAL_OPENING_DOOR value "830" */
+ HORIZONTAL_OPENING_DOOR(
+ "adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR",
+ n("adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR.description"),
+ 830),
+ /** TODO: Model Documentation for Enumeration Literal DEAD_OR_ALIVE value "1393" */
+ DEAD_OR_ALIVE(
+ "adagio.enumeration.PmfmId.DEAD_OR_ALIVE",
+ n("adagio.enumeration.PmfmId.DEAD_OR_ALIVE.description"),
+ 1393),
+ /** TODO: Model Documentation for Enumeration Literal SORTING_TYPE_TCC value "1747" */
+ SORTING_TYPE_TCC(
+ "adagio.enumeration.PmfmId.SORTING_TYPE_TCC",
+ n("adagio.enumeration.PmfmId.SORTING_TYPE_TCC.description"),
+ 1747),
+
+ // NEW FOR TUTTI # PSFM "Pour référencer un autre id de pmfm"
+ ID_PSFM(
+ "adagio.enumeration.PmfmId.ID_PSFM",
+ n("adagio.enumeration.PmfmId.ID_PSFM.description"),
+ 1433);
+
+ /**
+ * The serial version UID of this class. Needed for serialization.
+ */
+ private static final long serialVersionUID = 1L;
+
+ private String key;
+ private String description;
+ private Integer enumValue;
+
+ private PmfmId2(String key, String description, Integer value)
+ {
+ this.key = key;
+ this.description = description;
+ this.enumValue = value;
+ }
+
+ @Override
+ public void setValue(Integer newValue) {
+ if (newValue != null && !this.enumValue.equals(newValue)) {
+ // Update static lists
+ values.remove(this.enumValue);
+ literals.remove(this.enumValue);
+ this.enumValue = newValue;
+ values.put(this.enumValue, this);
+ literals.add(this.enumValue);
+ }
+ }
+
+ @Override
+ public String getValueAsString()
+ {
+ return String.valueOf(this.enumValue);
+ }
+
+ /**
+ * Retrieves an instance of PmfmId from <code>its name</code>.
+ *
+ * @param name
+ * the name to create the PmfmId from.
+ * @return The enumeration literal named after the 'name' argument
+ */
+ public static PmfmId2 fromString(String name)
+ {
+ return PmfmId2.valueOf(name);
+ }
+
+ /**
+ * Returns an enumeration literal String <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @return String with corresponding value
+ */
+ public Integer value()
+ {
+ return this.enumValue;
+ }
+
+ /**
+ * Returns an instance of PmfmId from String <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @param value
+ * the value to create the PmfmId from.
+ * @return static Enumeration with corresponding value
+ */
+ public static PmfmId2 fromValue(String value)
+ {
+ for (PmfmId2 enumName : PmfmId2.values())
+ {
+ if (enumName.getValue().equals(value))
+ {
+ return enumName;
+ }
+ }
+ throw new IllegalArgumentException("PmfmId.fromValue(" + value + ')');
+ }
+
+ /**
+ * Gets the underlying value of this type safe enumeration.
+ * This method is necessary to comply with DaoBase implementation.
+ *
+ * @return The name of this literal.
+ */
+ public Integer getValue()
+ {
+ return this.enumValue;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return String.class;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the literals that are known by this enumeration.
+ *
+ * @return A List containing the actual literals defined by this enumeration, this list
+ * can not be modified.
+ */
+ public static List<Integer> literals()
+ {
+ return PmfmId2.literals;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the names of the literals that are known
+ * by this enumeration.
+ *
+ * @return A List containing the actual names of the literals defined by this
+ * enumeration, this list can not be modified.
+ */
+ public static List<String> names()
+ {
+ return PmfmId2.names;
+ }
+
+ private static final Map<Integer, PmfmId2> values = new LinkedHashMap<Integer, PmfmId2>(33, 1);
+ private static final List<Integer> literals = new ArrayList<Integer>(33);
+ private static List<String> names = new ArrayList<String>(33);
+ private static final List<PmfmId2> valueList = new ArrayList<PmfmId2>(33);
+
+ /**
+ * Initializes the values.
+ */
+ static
+ {
+ synchronized (PmfmId2.values)
+ {
+ // PmfmId2.values.put(ALIVE_WEIGHT_CALCULATED.enumValue, ALIVE_WEIGHT_CALCULATED);
+ // PmfmId2.values.put(WEIGHT_SIZE_CALCULATED.enumValue, WEIGHT_SIZE_CALCULATED);
+ // PmfmId2.values.put(WEIGHT_TOTAL_CALCULATED.enumValue, WEIGHT_TOTAL_CALCULATED);
+ // PmfmId2.values.put(WEIGHT_SIZE_EXTRAPOLATE.enumValue, WEIGHT_SIZE_EXTRAPOLATE);
+ // PmfmId2.values.put(CALCULATED_WEIGHT_CHILDREN_SUM.enumValue, CALCULATED_WEIGHT_CHILDREN_SUM);
+ // PmfmId2.values.put(CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM.enumValue, CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM);
+ // PmfmId2.values.put(MAX_DISTANCE_FOR_OPERATION_WITH_GEAR.enumValue, MAX_DISTANCE_FOR_OPERATION_WITH_GEAR);
+ // PmfmId2.values.put(MAX_DURATION_FOR_OPERATION_WITH_GEAR.enumValue, MAX_DURATION_FOR_OPERATION_WITH_GEAR);
+ // PmfmId2.values.put(MAX_DURATION_FOR_OPERATION_WITH_METIER.enumValue,
+ // MAX_DURATION_FOR_OPERATION_WITH_METIER);
+ // PmfmId2.values.put(MAX_DISTANCE_FOR_OPERATION_WITH_METIER.enumValue,
+ // MAX_DISTANCE_FOR_OPERATION_WITH_METIER);
+ // PmfmId2.values.put(STORAGE_STATE.enumValue, STORAGE_STATE);
+ PmfmId2.values.put(SEX.enumValue, SEX);
+ PmfmId2.values.put(SIZE_CATEGORY.enumValue, SIZE_CATEGORY);
+ PmfmId2.values.put(AGE.enumValue, AGE);
+ PmfmId2.values.put(MATURITY.enumValue, MATURITY);
+ PmfmId2.values.put(MARINE_LITTER_TYPE.enumValue, MARINE_LITTER_TYPE);
+ PmfmId2.values.put(MARINE_LITTER_SIZE_CATEGORY.enumValue, MARINE_LITTER_SIZE_CATEGORY);
+ PmfmId2.values.put(SURVEY_PART.enumValue, SURVEY_PART);
+ PmfmId2.values.put(STATION_NUMBER.enumValue, STATION_NUMBER);
+ PmfmId2.values.put(TRAWL_DISTANCE.enumValue, TRAWL_DISTANCE);
+ PmfmId2.values.put(HAUL_VALID.enumValue, HAUL_VALID);
+ PmfmId2.values.put(RECTILINEAR_OPERATION.enumValue, RECTILINEAR_OPERATION);
+ PmfmId2.values.put(MULTIRIG_NUMBER.enumValue, MULTIRIG_NUMBER);
+ PmfmId2.values.put(MULTIRIG_AGGREGATION.enumValue, MULTIRIG_AGGREGATION);
+ PmfmId2.values.put(WEIGHT_MEASURED.enumValue, WEIGHT_MEASURED);
+ PmfmId2.values.put(SORTED_UNSORTED.enumValue, SORTED_UNSORTED);
+ PmfmId2.values.put(SCIENTIFIC_CRUISE_SORTING_TYPE.enumValue, SCIENTIFIC_CRUISE_SORTING_TYPE);
+ PmfmId2.values.put(SCIENTIFIC_CRUISE_SORTING_TYPE2.enumValue, SCIENTIFIC_CRUISE_SORTING_TYPE2);
+ PmfmId2.values.put(VERTICAL_OPENING.enumValue, VERTICAL_OPENING);
+ PmfmId2.values.put(HORIZONTAL_OPENING_WINGS.enumValue, HORIZONTAL_OPENING_WINGS);
+ PmfmId2.values.put(HORIZONTAL_OPENING_DOOR.enumValue, HORIZONTAL_OPENING_DOOR);
+ PmfmId2.values.put(DEAD_OR_ALIVE.enumValue, DEAD_OR_ALIVE);
+ PmfmId2.values.put(SORTING_TYPE_TCC.enumValue, SORTING_TYPE_TCC);
+ }
+ synchronized (PmfmId2.valueList)
+ {
+ // PmfmId2.valueList.add(ALIVE_WEIGHT_CALCULATED);
+ // PmfmId2.valueList.add(WEIGHT_SIZE_CALCULATED);
+ // PmfmId2.valueList.add(WEIGHT_TOTAL_CALCULATED);
+ // PmfmId2.valueList.add(WEIGHT_SIZE_EXTRAPOLATE);
+ // PmfmId2.valueList.add(CALCULATED_WEIGHT_CHILDREN_SUM);
+ // PmfmId2.valueList.add(CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM);
+ // PmfmId2.valueList.add(MAX_DISTANCE_FOR_OPERATION_WITH_GEAR);
+ // PmfmId2.valueList.add(MAX_DURATION_FOR_OPERATION_WITH_GEAR);
+ // PmfmId2.valueList.add(MAX_DURATION_FOR_OPERATION_WITH_METIER);
+ // PmfmId2.valueList.add(MAX_DISTANCE_FOR_OPERATION_WITH_METIER);
+ // PmfmId2.valueList.add(STORAGE_STATE);
+ PmfmId2.valueList.add(SEX);
+ PmfmId2.valueList.add(SIZE_CATEGORY);
+ PmfmId2.valueList.add(AGE);
+ PmfmId2.valueList.add(MATURITY);
+ PmfmId2.valueList.add(MARINE_LITTER_TYPE);
+ PmfmId2.valueList.add(MARINE_LITTER_SIZE_CATEGORY);
+ PmfmId2.valueList.add(SURVEY_PART);
+ PmfmId2.valueList.add(STATION_NUMBER);
+ PmfmId2.valueList.add(TRAWL_DISTANCE);
+ PmfmId2.valueList.add(HAUL_VALID);
+ PmfmId2.valueList.add(RECTILINEAR_OPERATION);
+ PmfmId2.valueList.add(MULTIRIG_NUMBER);
+ PmfmId2.valueList.add(MULTIRIG_AGGREGATION);
+ PmfmId2.valueList.add(WEIGHT_MEASURED);
+ PmfmId2.valueList.add(SORTED_UNSORTED);
+ PmfmId2.valueList.add(SCIENTIFIC_CRUISE_SORTING_TYPE);
+ PmfmId2.valueList.add(SCIENTIFIC_CRUISE_SORTING_TYPE2);
+ PmfmId2.valueList.add(VERTICAL_OPENING);
+ PmfmId2.valueList.add(HORIZONTAL_OPENING_WINGS);
+ PmfmId2.valueList.add(HORIZONTAL_OPENING_DOOR);
+ PmfmId2.valueList.add(DEAD_OR_ALIVE);
+ PmfmId2.valueList.add(SORTING_TYPE_TCC);
+ // For Adagio, lists could be reload from configuration
+ // PmfmId.valueList = Collections.unmodifiableList(valueList);
+ }
+ synchronized (PmfmId2.literals)
+ {
+ // PmfmId2.literals.add(ALIVE_WEIGHT_CALCULATED.enumValue);
+ // PmfmId2.literals.add(WEIGHT_SIZE_CALCULATED.enumValue);
+ // PmfmId2.literals.add(WEIGHT_TOTAL_CALCULATED.enumValue);
+ // PmfmId2.literals.add(WEIGHT_SIZE_EXTRAPOLATE.enumValue);
+ // PmfmId2.literals.add(CALCULATED_WEIGHT_CHILDREN_SUM.enumValue);
+ // PmfmId2.literals.add(CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM.enumValue);
+ // PmfmId2.literals.add(MAX_DISTANCE_FOR_OPERATION_WITH_GEAR.enumValue);
+ // PmfmId2.literals.add(MAX_DURATION_FOR_OPERATION_WITH_GEAR.enumValue);
+ // PmfmId2.literals.add(MAX_DURATION_FOR_OPERATION_WITH_METIER.enumValue);
+ // PmfmId2.literals.add(MAX_DISTANCE_FOR_OPERATION_WITH_METIER.enumValue);
+ // PmfmId2.literals.add(STORAGE_STATE.enumValue);
+ PmfmId2.literals.add(SEX.enumValue);
+ PmfmId2.literals.add(SIZE_CATEGORY.enumValue);
+ PmfmId2.literals.add(AGE.enumValue);
+ PmfmId2.literals.add(MATURITY.enumValue);
+ PmfmId2.literals.add(MARINE_LITTER_TYPE.enumValue);
+ PmfmId2.literals.add(MARINE_LITTER_SIZE_CATEGORY.enumValue);
+ PmfmId2.literals.add(SURVEY_PART.enumValue);
+ PmfmId2.literals.add(STATION_NUMBER.enumValue);
+ PmfmId2.literals.add(TRAWL_DISTANCE.enumValue);
+ PmfmId2.literals.add(HAUL_VALID.enumValue);
+ PmfmId2.literals.add(RECTILINEAR_OPERATION.enumValue);
+ PmfmId2.literals.add(MULTIRIG_NUMBER.enumValue);
+ PmfmId2.literals.add(MULTIRIG_AGGREGATION.enumValue);
+ PmfmId2.literals.add(WEIGHT_MEASURED.enumValue);
+ PmfmId2.literals.add(SORTED_UNSORTED.enumValue);
+ PmfmId2.literals.add(SCIENTIFIC_CRUISE_SORTING_TYPE.enumValue);
+ PmfmId2.literals.add(SCIENTIFIC_CRUISE_SORTING_TYPE2.enumValue);
+ PmfmId2.literals.add(VERTICAL_OPENING.enumValue);
+ PmfmId2.literals.add(HORIZONTAL_OPENING_WINGS.enumValue);
+ PmfmId2.literals.add(HORIZONTAL_OPENING_DOOR.enumValue);
+ PmfmId2.literals.add(DEAD_OR_ALIVE.enumValue);
+ PmfmId2.literals.add(SORTING_TYPE_TCC.enumValue);
+ // For Adagio, lists could be reload from configuration
+ // PmfmId.literals = Collections.unmodifiableList(literals);
+ }
+ synchronized (PmfmId2.names)
+ {
+ PmfmId2.names.add("ALIVE_WEIGHT_CALCULATED");
+ PmfmId2.names.add("WEIGHT_SIZE_CALCULATED");
+ PmfmId2.names.add("WEIGHT_TOTAL_CALCULATED");
+ PmfmId2.names.add("WEIGHT_SIZE_EXTRAPOLATE");
+ PmfmId2.names.add("CALCULATED_WEIGHT_CHILDREN_SUM");
+ PmfmId2.names.add("CALCULATED_ALIVE_WEIGHT_CHILDREN_SUM");
+ PmfmId2.names.add("MAX_DISTANCE_FOR_OPERATION_WITH_GEAR");
+ PmfmId2.names.add("MAX_DURATION_FOR_OPERATION_WITH_GEAR");
+ PmfmId2.names.add("MAX_DURATION_FOR_OPERATION_WITH_METIER");
+ PmfmId2.names.add("MAX_DISTANCE_FOR_OPERATION_WITH_METIER");
+ PmfmId2.names.add("STORAGE_STATE");
+ PmfmId2.names.add("SEX");
+ PmfmId2.names.add("SIZE_CATEGORY");
+ PmfmId2.names.add("AGE");
+ PmfmId2.names.add("MATURITY");
+ PmfmId2.names.add("MARINE_LITTER_TYPE");
+ PmfmId2.names.add("MARINE_LITTER_SIZE_CATEGORY");
+ PmfmId2.names.add("SURVEY_PART");
+ PmfmId2.names.add("STATION_NUMBER");
+ PmfmId2.names.add("TRAWL_DISTANCE");
+ PmfmId2.names.add("HAUL_VALID");
+ PmfmId2.names.add("RECTILINEAR_OPERATION");
+ PmfmId2.names.add("MULTIRIG_NUMBER");
+ PmfmId2.names.add("MULTIRIG_AGGREGATION");
+ PmfmId2.names.add("WEIGHT_MEASURED");
+ PmfmId2.names.add("SORTED_UNSORTED");
+ PmfmId2.names.add("SCIENTIFIC_CRUISE_SORTING_TYPE");
+ PmfmId2.names.add("SCIENTIFIC_CRUISE_SORTING_TYPE2");
+ PmfmId2.names.add("VERTICAL_OPENING");
+ PmfmId2.names.add("HORIZONTAL_OPENING_WINGS");
+ PmfmId2.names.add("HORIZONTAL_OPENING_DOOR");
+ PmfmId2.names.add("DEAD_OR_ALIVE");
+ PmfmId2.names.add("SORTING_TYPE_TCC");
+ PmfmId2.names = Collections.unmodifiableList(names);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/PmfmId2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/QualitativeValueId2.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/QualitativeValueId2.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/QualitativeValueId2.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -0,0 +1,247 @@
+/*
+ * #%L
+ * SIH-Adagio
+ * $Id$
+ * $HeadURL: https://forge.ifremer.fr/svn/sih-adagio/trunk/adagio/mda/src/main/config/ja… $
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+//
+// Attention: Generated code! Do not modify by hand!
+// Generated by: TypeSafeEnumeration.vsl in andromda-java-cartridge.
+// Model Class: Data::fr.ifremer.adagio.core.dao::referential::pmfm::QualitativeValueId
+// Metafacade: org.andromda.metafacades.uml.Enumeration
+// Stereotype: Enumeration
+//
+package fr.ifremer.adagio.core.dao.referential.pmfm;
+
+import fr.ifremer.adagio.core.dao.technical.AdagioEnumerationDef;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.n;
+
+/**
+ *
+ */
+public enum QualitativeValueId2
+ implements Serializable, AdagioEnumerationDef<Integer> {
+ /** TODO: Model Documentation for Enumeration Literal SEX_UNDEFINED value 203 */
+ SEX_UNDEFINED(
+ "adagio.enumeration.QualitativeValueId.SEX_UNDEFINED",
+ n("adagio.enumeration.QualitativeValueId.SEX_UNDEFINED.description"),
+ 299),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY_1 value 272 */
+ MATURITY_1(
+ "adagio.enumeration.QualitativeValueId.MATURITY_1",
+ n("adagio.enumeration.QualitativeValueId.MATURITY_1.description"),
+ 272),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY_2 value 273 */
+ MATURITY_2(
+ "adagio.enumeration.QualitativeValueId.MATURITY_2",
+ n("adagio.enumeration.QualitativeValueId.MATURITY_2.description"),
+ 273),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY_3 value 274 */
+ MATURITY_3(
+ "adagio.enumeration.QualitativeValueId.MATURITY_3",
+ n("adagio.enumeration.QualitativeValueId.MATURITY_3.description"),
+ 274),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY_4 value 275 */
+ MATURITY_4(
+ "adagio.enumeration.QualitativeValueId.MATURITY_4",
+ n("adagio.enumeration.QualitativeValueId.MATURITY_4.description"),
+ 275),
+ /** TODO: Model Documentation for Enumeration Literal MATURITY_5 value 276 */
+ MATURITY_5(
+ "adagio.enumeration.QualitativeValueId.MATURITY_5",
+ n("adagio.enumeration.QualitativeValueId.MATURITY_5.description"),
+ 276);
+
+ /**
+ * The serial version UID of this class. Needed for serialization.
+ */
+ private static final long serialVersionUID = 1L;
+
+ private String key;
+
+ private String description;
+
+ private Integer enumValue;
+
+ private QualitativeValueId2(String key, String description, Integer value) {
+ this.key = key;
+ this.description = description;
+ this.enumValue = value;
+ }
+
+ @Override
+ public void setValue(Integer newValue) {
+ if (newValue != null && !this.enumValue.equals(newValue)) {
+ // Update static lists
+ values.remove(this.enumValue);
+ literals.remove(this.enumValue);
+ this.enumValue = newValue;
+ values.put(this.enumValue, this);
+ literals.add(this.enumValue);
+ }
+ }
+
+ @Override
+ public String getValueAsString() {
+ return String.valueOf(this.enumValue);
+ }
+
+ /**
+ * Retrieves an instance of QualitativeValueId from <code>its name</code>.
+ *
+ * @param name
+ * the name to create the QualitativeValueId from.
+ * @return The enumeration literal named after the 'name' argument
+ */
+ public static QualitativeValueId2 fromString(String name) {
+ return QualitativeValueId2.valueOf(name);
+ }
+
+ /**
+ * Returns an enumeration literal Integer <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @return Integer with corresponding value
+ */
+ public Integer value() {
+ return this.enumValue;
+ }
+
+ /**
+ * Returns an instance of QualitativeValueId from Integer <code>value</code>.
+ * Required by JAXB2 enumeration implementation
+ *
+ * @param value
+ * the value to create the QualitativeValueId from.
+ * @return static Enumeration with corresponding value
+ */
+ public static QualitativeValueId2 fromValue(Integer value) {
+ for (QualitativeValueId2 enumName : QualitativeValueId2.values()) {
+ if (enumName.getValue().equals(value)) {
+ return enumName;
+ }
+ }
+ throw new IllegalArgumentException("QualitativeValueId.fromValue(" + value.toString() + ')');
+ }
+
+ /**
+ * Gets the underlying value of this type safe enumeration.
+ * This method is necessary to comply with DaoBase implementation.
+ *
+ * @return The name of this literal.
+ */
+ public Integer getValue() {
+ return this.enumValue;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return Integer.class;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the literals that are known by this enumeration.
+ *
+ * @return A List containing the actual literals defined by this enumeration, this list
+ * can not be modified.
+ */
+ public static List<Integer> literals() {
+ return QualitativeValueId2.literals;
+ }
+
+ /**
+ * Returns an unmodifiable list containing the names of the literals that are known
+ * by this enumeration.
+ *
+ * @return A List containing the actual names of the literals defined by this
+ * enumeration, this list can not be modified.
+ */
+ public static List<String> names() {
+ return QualitativeValueId2.names;
+ }
+
+ private static Map<Integer, QualitativeValueId2> values = new LinkedHashMap<Integer, QualitativeValueId2>(38, 1);
+
+ private static List<Integer> literals = new ArrayList<Integer>(38);
+
+ private static List<String> names = new ArrayList<String>(38);
+
+ private static List<QualitativeValueId2> valueList = new ArrayList<QualitativeValueId2>(38);
+
+ /**
+ * Initializes the values.
+ */
+ static {
+ synchronized (QualitativeValueId2.values) {
+ QualitativeValueId2.values.put(SEX_UNDEFINED.enumValue, SEX_UNDEFINED);
+ QualitativeValueId2.values.put(MATURITY_1.enumValue, MATURITY_1);
+ QualitativeValueId2.values.put(MATURITY_2.enumValue, MATURITY_2);
+ QualitativeValueId2.values.put(MATURITY_3.enumValue, MATURITY_3);
+ QualitativeValueId2.values.put(MATURITY_4.enumValue, MATURITY_4);
+ QualitativeValueId2.values.put(MATURITY_5.enumValue, MATURITY_5);
+ }
+ synchronized (QualitativeValueId2.valueList) {
+ QualitativeValueId2.valueList.add(SEX_UNDEFINED);
+ QualitativeValueId2.valueList.add(MATURITY_1);
+ QualitativeValueId2.valueList.add(MATURITY_2);
+ QualitativeValueId2.valueList.add(MATURITY_3);
+ QualitativeValueId2.valueList.add(MATURITY_4);
+ QualitativeValueId2.valueList.add(MATURITY_5);
+ // For Adagio, lists could be reload from configuration
+ // QualitativeValueId.valueList = Collections.unmodifiableList(valueList);
+ }
+ synchronized (QualitativeValueId2.literals) {
+ QualitativeValueId2.literals.add(SEX_UNDEFINED.enumValue);
+ QualitativeValueId2.literals.add(MATURITY_1.enumValue);
+ QualitativeValueId2.literals.add(MATURITY_2.enumValue);
+ QualitativeValueId2.literals.add(MATURITY_3.enumValue);
+ QualitativeValueId2.literals.add(MATURITY_4.enumValue);
+ QualitativeValueId2.literals.add(MATURITY_5.enumValue);
+ // For Adagio, lists could be reload from configuration
+ // QualitativeValueId.literals = Collections.unmodifiableList(literals);
+ }
+ synchronized (QualitativeValueId2.names) {
+ QualitativeValueId2.names.add("SEX_UNDEFINED");
+ QualitativeValueId2.names.add("MATURITY_1");
+ QualitativeValueId2.names.add("MATURITY_2");
+ QualitativeValueId2.names.add("MATURITY_3");
+ QualitativeValueId2.names.add("MATURITY_4");
+ QualitativeValueId2.names.add("MATURITY_5");
+ QualitativeValueId2.names = Collections.unmodifiableList(names);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/dao/referential/pmfm/QualitativeValueId2.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,10 +27,10 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
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.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
@@ -67,7 +67,6 @@
import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import fr.ifremer.tutti.persistence.service.SpeciesBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.TechnicalPersistenceService;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -143,11 +142,6 @@
}
@Override
- public TuttiEnumerationFile getEnumerationFile() {
- return technicalPersistenceService.getEnumerationFile();
- }
-
- @Override
public <V> V invoke(Callable<V> call) {
return technicalPersistenceService.invoke(call);
}
@@ -173,11 +167,6 @@
}
@Override
- public void clearCache(String cacheName) {
- technicalPersistenceService.clearCache(cacheName);
- }
-
- @Override
public void init() {
if (log.isInfoEnabled()) {
log.info("Open persistence driver " + getImplementationName());
@@ -474,7 +463,7 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
+ public List<Attachment> getAllAttachments(ObjectTypeCode2 objectType,
Integer objectId) {
return attachmentService.getAllAttachments(objectType, objectId);
}
@@ -500,7 +489,7 @@
}
@Override
- public void deleteAllAttachment(AttachementObjectTypeEnum objectType, Integer... objectIds) {
+ public void deleteAllAttachment(ObjectTypeCode2 objectType, Integer... objectIds) {
attachmentService.deleteAllAttachment(objectType, objectIds);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,9 +26,9 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Multimap;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
@@ -51,7 +51,6 @@
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import org.nuiton.util.Version;
import java.io.File;
@@ -74,11 +73,6 @@
}
@Override
- public TuttiEnumerationFile getEnumerationFile() {
- throw notImplemented();
- }
-
- @Override
public <V> V invoke(Callable<V> call) {
throw notImplemented();
}
@@ -107,10 +101,6 @@
public void clearAllCaches() {
throw notImplemented();
}
- @Override
- public void clearCache(String cacheName) {
- throw notImplemented();
- }
@Override
public List<TuttiLocation> getAllProgramZone() {
@@ -625,7 +615,7 @@
}
@Override
- public List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
+ public List<Attachment> getAllAttachments(ObjectTypeCode2 objectType,
Integer objectId) {
throw notImplemented();
}
@@ -688,7 +678,7 @@
}
@Override
- public void deleteAllAttachment(AttachementObjectTypeEnum objectType, Integer... objectIds) {
+ public void deleteAllAttachment(ObjectTypeCode2 objectType, Integer... objectIds) {
throw notImplemented();
}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/AttachementObjectTypeEnum.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -1,97 +0,0 @@
-package fr.ifremer.tutti.persistence.entities.data;
-
-/*
- * #%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.base.Preconditions;
-import fr.ifremer.adagio.core.dao.referential.ObjectType;
-import fr.ifremer.tutti.persistence.entities.TuttiEnumerable;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
-
-/**
- * Define all usable {@link ObjectType} in {@link Attachment}.
- * <p/>
- * <strong>Note: </strong>This enumeration implements {@link TuttiEnumerable},
- * so all values must be synched to the enumeration file and before usage we
- * must be invoke the {@link TuttiEnumerationFile#init()} method.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @see Attachment#getObjectType()
- * @since 1.0.2
- */
-public enum AttachementObjectTypeEnum implements TuttiEnumerable<String> {
-
- /** For cruise only. */
- SCIENTIFIC_CRUISE("OBJECT_TYPE_SCIENTIFIC_CRUISE"),
-
- /** For {@link FishingOperation} only. */
- OPERATION("OBJECT_TYPE_OPERATION"),
-
- /** For {@link CatchBatch} only. */
- CATCH_BATCH("OBJECT_TYPE_CATCH_BATCH"),
-
- /** For batch only ({@link SpeciesBatch} / {@link BenthosBatch} / {@link MarineLitterBatch}). */
- BATCH("OBJECT_TYPE_BATCH"),
-
- /** For sample only ({@link AccidentalBatch} / {@link IndividualObservationBatch}).. */
- SAMPLE("OBJECT_TYPE_SAMPLE");
-
- private final String fieldName;
-
- private String fieldValue;
-
- private boolean init;
-
- AttachementObjectTypeEnum(String fieldName) {
- this.fieldName = fieldName;
- }
-
- @Override
- public String getFieldName() {
- return fieldName;
- }
-
- @Override
- public String getFieldValue() {
- Preconditions.checkState(
- isInit(),
- "Enumeration " + getClass() + " was not init!");
- return fieldValue;
- }
-
- @Override
- public void setFieldValue(String fieldValue) {
- this.fieldValue = fieldValue;
- }
-
- @Override
- public boolean isInit() {
- return init;
- }
-
- @Override
- public void setInit(boolean init) {
- this.init = init;
- }
-}
Modified: 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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -31,7 +31,8 @@
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.protocol.v1.SpeciesProtocol1;
@@ -40,12 +41,12 @@
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.jaxx.application.ApplicationTechnicalException;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -88,7 +89,7 @@
}
}
- public static TuttiProtocol fromFile(TuttiEnumerationFile enumeration, File file) {
+ public static TuttiProtocol fromFile(File file) {
Reader fileReader = null;
try {
@@ -99,7 +100,7 @@
// transform String to Integer...
- Integer sampleCategoryIdToRemove = enumeration.PMFM_ID_SORTED_UNSORTED;
+ Integer sampleCategoryIdToRemove = PmfmId2.SORTED_UNSORTED.getValue();
if (!result.isBenthosEmpty()) {
for (SpeciesProtocol speciesProtocol : result.getBenthos()) {
@@ -130,7 +131,7 @@
// try to load a v1
TuttiProtocol1 tuttiProtocol1 = fromFileV1(file);
- TuttiProtocol result = fromTuttiProtocol1(enumeration, tuttiProtocol1);
+ TuttiProtocol result = fromTuttiProtocol1(tuttiProtocol1);
return result;
} finally {
@@ -249,7 +250,7 @@
return message;
}
- protected static TuttiProtocol fromTuttiProtocol1(TuttiEnumerationFile enumeration, TuttiProtocol1 tuttiProtocol1) {
+ protected static TuttiProtocol fromTuttiProtocol1(TuttiProtocol1 tuttiProtocol1) {
TuttiProtocol result = newTuttiProtocol();
Binder<TuttiProtocol1, TuttiProtocol> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol.class);
binder.copy(tuttiProtocol1, result);
@@ -261,16 +262,16 @@
row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList());
binderSpecies.copy(speciesProtocol1, row);
if (speciesProtocol1.isAgeEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE);
+ row.addMandatorySampleCategoryId(PmfmId2.AGE.getValue());
}
if (speciesProtocol1.isSizeEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY);
+ row.addMandatorySampleCategoryId(PmfmId2.SIZE_CATEGORY.getValue());
}
if (speciesProtocol1.isMaturityEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY);
+ row.addMandatorySampleCategoryId(PmfmId2.MATURITY.getValue());
}
if (speciesProtocol1.isSexEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX);
+ row.addMandatorySampleCategoryId(PmfmId2.SEX.getValue());
}
result.addSpecies(row);
}
@@ -283,16 +284,16 @@
row.setMandatorySampleCategoryId(Lists.<Integer>newArrayList());
binderSpecies.copy(speciesProtocol1, row);
if (speciesProtocol1.isAgeEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_AGE);
+ row.addMandatorySampleCategoryId(PmfmId2.AGE.getValue());
}
if (speciesProtocol1.isSizeEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SIZE_CATEGORY);
+ row.addMandatorySampleCategoryId(PmfmId2.SIZE_CATEGORY.getValue());
}
if (speciesProtocol1.isMaturityEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_MATURITY);
+ row.addMandatorySampleCategoryId(PmfmId2.MATURITY.getValue());
}
if (speciesProtocol1.isSexEnabled()) {
- row.addMandatorySampleCategoryId(enumeration.PMFM_ID_SEX);
+ row.addMandatorySampleCategoryId(PmfmId2.SEX.getValue());
}
result.addBenthos(row);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -65,9 +65,6 @@
@Resource
protected SessionFactory sessionFactory;
- @Resource(name = "tuttiEnumerationFile")
- protected TuttiEnumerationFile enumeration;
-
@Resource(name = "tuttiConfiguration")
protected TuttiConfiguration config;
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,13 +27,18 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.adagio.core.dao.administration.programStrategy.Program;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentId;
import fr.ifremer.adagio.core.dao.administration.user.DepartmentImpl;
+import fr.ifremer.adagio.core.dao.administration.user.PersonId;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
+import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixId2;
import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
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;
@@ -202,14 +207,14 @@
target.setLabel(label);
// Matrix (product / batch)
- Matrix matrix = load(MatrixImpl.class, enumeration.MATRIX_ID_PRODUCT_BATCH);
+ Matrix matrix = load(MatrixImpl.class, MatrixId2.PRODUCT_BATCH.getValue());
target.setMatrix(matrix);
// IndividualCount
target.setIndividualCount((short) 1);
// Quality Flag
- target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ target.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
// Sample Date
if (target.getSampleDate() == null) {
@@ -221,11 +226,11 @@
// Recorder Departement
target.setRecorderDepartment(load(DepartmentImpl.class,
- enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT));
+ DepartmentId.UNKOWN_RECODER_DEPARTMENT.getValue()));
// Recorder Person
target.setRecorderPerson(load(PersonImpl.class,
- enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON));
+ PersonId.UNKNOWN_RECORDER_PERSON.getValue()));
// Program
Program program = fishingOperation.getFishingTrip().getProgram();
@@ -281,7 +286,7 @@
if (source.getLengthStepCaracteristic() != null) {
Caracteristic caracteristic = referentialService.getCaracteristic(
- enumeration.PMFM_ID_ID_PSFM);
+ PmfmId2.ID_PSFM.getValue());
caracteristics.put(caracteristic,
source.getLengthStepCaracteristic().getId());
@@ -317,12 +322,12 @@
batch.setGender(genderValue);
}
- Float weight = (Float) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_WEIGHT_MEASURED));
+ Float weight = (Float) result.remove(referentialService.getCaracteristic(PmfmId2.WEIGHT_MEASURED.getValue()));
if (weight != null) {
batch.setWeight(weight);
}
- String lengthClassId = (String) result.remove(referentialService.getCaracteristic(enumeration.PMFM_ID_ID_PSFM));
+ String lengthClassId = (String) result.remove(referentialService.getCaracteristic(PmfmId2.ID_PSFM.getValue()));
if (lengthClassId != null) {
Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(Integer.valueOf(lengthClassId));
batch.setLengthStepCaracteristic(lengthStepCaracteristic);
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -24,8 +24,8 @@
* #L%
*/
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import org.springframework.transaction.annotation.Transactional;
@@ -47,9 +47,9 @@
* @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 ObjectTypeCode2})
*/
- List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
+ List<Attachment> getAllAttachments(ObjectTypeCode2 objectType,
Integer objectId);
/**
@@ -96,7 +96,7 @@
* @param objectIds ids of object
*/
@Transactional(readOnly = false)
- void deleteAllAttachment(AttachementObjectTypeEnum objectType,
+ void deleteAllAttachment(ObjectTypeCode2 objectType,
Integer... objectIds);
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -29,8 +29,9 @@
import fr.ifremer.adagio.core.dao.data.measure.file.MeasurementFile;
import fr.ifremer.adagio.core.dao.data.measure.file.MeasurementFileDao;
import fr.ifremer.adagio.core.dao.referential.ObjectTypeImpl;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Attachments;
import org.apache.commons.lang3.ObjectUtils;
@@ -90,12 +91,12 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
+ public List<Attachment> getAllAttachments(ObjectTypeCode2 objectType,
Integer objectId) {
Iterator<Object[]> list = queryList(
"allAttachment",
"objectId", IntegerType.INSTANCE, objectId,
- "objectTypeCode", StringType.INSTANCE, objectType.getFieldValue()
+ "objectTypeCode", StringType.INSTANCE, objectType.getValue()
);
List<Attachment> result = Lists.newArrayList();
@@ -142,10 +143,10 @@
measurementFile.setPmfm(null);
// set not qualifed flag
- measurementFile.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ measurementFile.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
// set objectType
- measurementFile.setObjectType(load(ObjectTypeImpl.class, attachment.getObjectType().getFieldValue()));
+ measurementFile.setObjectType(load(ObjectTypeImpl.class, attachment.getObjectType().getValue()));
// set objectId
measurementFile.setObjectId(attachment.getObjectId());
@@ -205,7 +206,7 @@
// can't change the objectType
String oldObjectTypeCode = measurementFile.getObjectType().getCode();
- if (ObjectUtils.notEqual(attachment.getObjectType().getFieldValue(),
+ if (ObjectUtils.notEqual(attachment.getObjectType().getValue(),
oldObjectTypeCode)) {
throw new InvalidDataAccessResourceUsageException(
"Can't change objectType, was before " + oldObjectTypeCode);
@@ -244,8 +245,7 @@
}
@Override
- public void deleteAllAttachment(AttachementObjectTypeEnum objectType,
- Integer... objectIds) {
+ public void deleteAllAttachment(ObjectTypeCode2 objectType, Integer... objectIds) {
for (Integer objectId : objectIds) {
List<Attachment> attachments = getAllAttachments(objectType, objectId);
for (Attachment attachment : attachments) {
@@ -261,7 +261,7 @@
protected void loadAttachment(Object[] source,
Attachment target) {
- target.setObjectType(AttachementObjectTypeEnum.valueOf((String) source[0]));
+ target.setObjectType(ObjectTypeCode2.valueOf((String) source[0]));
target.setObjectId((Integer) source[1]);
target.setId(String.valueOf(source[2]));
target.setPath((String) source[3]);
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -35,7 +35,9 @@
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
import fr.ifremer.adagio.core.dao.referential.QualityFlag;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
@@ -414,7 +416,7 @@
}
QualityFlag qualityFlag = source.getQualityFlag();
- target.setSpeciesToConfirm(qualityFlag != null && enumeration.QUALITY_FLAG_CODE_DOUBTFUL.equals(qualityFlag.getCode()));
+ target.setSpeciesToConfirm(qualityFlag != null && QualityFlagCode.DOUBTFUL.getValue().equals(qualityFlag.getCode()));
return target;
}
@@ -516,7 +518,7 @@
if (source.getSampleCategoryId() != null && source.getSampleCategoryValue() != null) {
Integer pmfmId = source.getSampleCategoryId();
// Do not store sorting measurement if pmfm = SORTED (already store in an ancestor batch)
- if (!pmfmId.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ if (!pmfmId.equals(PmfmId2.SORTED_UNSORTED.getValue())) {
SortingMeasurement sortingMeasurement = measurementPersistenceHelper.setSortingMeasurement(
target,
pmfmId,
@@ -540,9 +542,9 @@
// QualityFlag
String qualityFlag;
if (source.isSpeciesToConfirm()) {
- qualityFlag = enumeration.QUALITY_FLAG_CODE_DOUBTFUL;
+ qualityFlag = QualityFlagCode.DOUBTFUL.getValue();
} else {
- qualityFlag = enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED;
+ qualityFlag = QualityFlagCode.NOTQUALIFIED.getValue();
}
target.setQualityFlag(load(QualityFlagImpl.class, qualityFlag));
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -31,6 +31,7 @@
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
@@ -266,7 +267,7 @@
Integer fishingOperationId = source.getFishingOperation().getIdAsInt();
target.setFishingOperation(load(FishingOperationImpl.class, fishingOperationId));
- target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ target.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
target.setRankOrder((short) 1);
// SynchronizationStatus
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -32,7 +32,6 @@
import java.util.Collection;
import java.util.List;
-import java.util.Set;
/**
* CRUD of {@link Cruise} entity.
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -32,6 +32,7 @@
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramDao;
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramImpl;
import fr.ifremer.adagio.core.dao.administration.user.PersonDao;
+import fr.ifremer.adagio.core.dao.administration.user.PersonId;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.measure.GearPhysicalMeasurement;
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
@@ -43,14 +44,17 @@
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.referential.QualityFlag;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagDao;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleId;
import fr.ifremer.adagio.core.dao.referential.gear.GearDao;
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.location.LocationImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao;
import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti;
@@ -179,7 +183,7 @@
Object[] source = queryUnique(
"cruise",
"cruiseId", IntegerType.INSTANCE, Integer.valueOf(id),
- "pmfmIdSurveyPart", IntegerType.INSTANCE, enumeration.PMFM_ID_SURVEY_PART);
+ "pmfmIdSurveyPart", IntegerType.INSTANCE, PmfmId2.SURVEY_PART.getValue());
if (source == null) {
throw new DataRetrievalFailureException("Could not retrieve cruise with id=" + id);
@@ -242,7 +246,7 @@
Iterator<Object[]> list = queryList(
"allCruiseGears",
"cruiseId", IntegerType.INSTANCE, Integer.valueOf(id),
- "pmfmIdTrawlNet", IntegerType.INSTANCE, enumeration.PMFM_ID_MULTIRIG_NUMBER);
+ "pmfmIdTrawlNet", IntegerType.INSTANCE, PmfmId2.MULTIRIG_NUMBER.getValue());
List<GearWithOriginalRankOrder> gears = Lists.newArrayList();
int maxMultirigNumberFound = 0;
@@ -272,10 +276,10 @@
Integer personId = (Integer) vesselPersonFeatures[0];
Person person = referentialService.getPerson(personId);
Integer roleId = (Integer) vesselPersonFeatures[1];
- if (enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER.equals(roleId)) {
+ if (VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER.getValue().equals(roleId)) {
headOfMissions.add(person);
- } else if (enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER.equals(roleId)) {
+ } else if (VesselPersonRoleId.SORT_ROOM_MANAGER.getValue().equals(roleId)) {
headOfSortRoom.add(person);
}
}
@@ -399,7 +403,7 @@
GearPhysicalMeasurement measurement = list.next();
Integer pmfmId = measurement.getPmfm().getId();
- if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) {
+ if (!PmfmId2.MULTIRIG_NUMBER.getValue().equals(pmfmId)) {
Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
Serializable value = null;
@@ -462,7 +466,7 @@
if (gpf.getGearPhysicalMeasurements() != null) {
for (GearPhysicalMeasurement measurement : gpf.getGearPhysicalMeasurements()) {
Integer pmfmId = measurement.getPmfm().getId();
- if (!enumeration.PMFM_ID_MULTIRIG_NUMBER.equals(pmfmId)) {
+ if (!PmfmId2.MULTIRIG_NUMBER.getValue().equals(pmfmId)) {
measurementsToRemove.add(pmfmId);
}
}
@@ -554,7 +558,7 @@
protected void cruiseToEntity(Cruise source, ScientificCruise target) {
QualityFlag qualityFlagNotQualified = load(
- QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
+ QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue());
// Retrieve entities : FishingTrip
ObservedFishingTrip fishingTrip;
@@ -593,7 +597,7 @@
// Optional values in UI, but mandatory in DB
if (target.getManagerPerson() == null) {
- target.setManagerPerson(load(PersonImpl.class, enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON));
+ target.setManagerPerson(load(PersonImpl.class, PersonId.UNKNOWN_RECORDER_PERSON.getValue()));
}
// Default values :
@@ -629,11 +633,11 @@
if (StringUtils.isEmpty(source.getSurveyPart())) {
// remove surveyMeasurement if exists
- measurementPersistenceHelper.removeSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART);
+ measurementPersistenceHelper.removeSurveyMeasurement(fishingTrip, PmfmId2.SURVEY_PART.getValue());
} else {
// update it or create it
- measurementPersistenceHelper.setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
+ measurementPersistenceHelper.setSurveyMeasurement(fishingTrip, PmfmId2.SURVEY_PART.getValue(), null, source.getSurveyPart(), null);
}
// Gear
@@ -687,9 +691,9 @@
// Trawl net (store in Gear Physical features)
if (source.getMultirigNumber() == null) {
- gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(guf, enumeration.PMFM_ID_MULTIRIG_NUMBER);
+ gearPhysicalFeaturesDao.removeGearPhysicalMeasurement(guf, PmfmId2.MULTIRIG_NUMBER.getValue());
} else {
- gearPhysicalFeaturesDao.setGearPhysicalMeasurement(target, guf, enumeration.PMFM_ID_MULTIRIG_NUMBER, Float.valueOf(source.getMultirigNumber()), null, null);
+ gearPhysicalFeaturesDao.setGearPhysicalMeasurement(target, guf, PmfmId2.MULTIRIG_NUMBER.getValue(), Float.valueOf(source.getMultirigNumber()), null, null);
}
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -53,16 +53,21 @@
import fr.ifremer.adagio.core.dao.data.vessel.feature.use.VesselUseFeatures;
import fr.ifremer.adagio.core.dao.data.vessel.feature.use.isActive;
import fr.ifremer.adagio.core.dao.data.vessel.position.VesselPosition;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleId;
import fr.ifremer.adagio.core.dao.referential.gear.GearImpl;
import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao;
import fr.ifremer.adagio.core.dao.referential.location.LocationImpl;
+import fr.ifremer.adagio.core.dao.referential.location.LocationLevelId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
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.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;
@@ -199,8 +204,8 @@
Iterator<Object[]> list = queryList(
"allFishingOperations",
"cruiseId", IntegerType.INSTANCE, Integer.valueOf(cruiseId),
- "pmfmIdStationNumber", IntegerType.INSTANCE, enumeration.PMFM_ID_STATION_NUMBER,
- "pmfmIdMultirigAggregation", IntegerType.INSTANCE, enumeration.PMFM_ID_MULTIRIG_AGGREGATION
+ "pmfmIdStationNumber", IntegerType.INSTANCE, PmfmId2.STATION_NUMBER.getValue(),
+ "pmfmIdMultirigAggregation", IntegerType.INSTANCE, PmfmId2.MULTIRIG_AGGREGATION.getValue()
);
List<FishingOperation> result = Lists.newArrayList();
@@ -261,9 +266,9 @@
Object[] source = queryUnique(
"fishingOperation",
"fishingOperationId", IntegerType.INSTANCE, Integer.valueOf(id),
- "locationLevelIdStrata", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_STRATA,
- "locationLevelIdSubStrata", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_SUB_STRATA,
- "locationLevelIdLocalite", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_LOCALITE
+ "locationLevelIdStrata", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_STRATA.getValue(),
+ "locationLevelIdSubStrata", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_SUB_STRATA.getValue(),
+ "locationLevelIdLocalite", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_LOCALITE.getValue()
);
if (source == null) {
@@ -314,7 +319,7 @@
Integer personId = (Integer) vesselPersonFeatures[0];
Person person = referentialService.getPerson(personId);
Integer roleId = (Integer) vesselPersonFeatures[1];
- if (enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON.equals(roleId)) {
+ if (VesselPersonRoleId.RECORDER_PERSON.getValue().equals(roleId)) {
result.addRecorderPerson(person);
}
}
@@ -608,7 +613,7 @@
getCurrentSession().flush();
attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.OPERATION,
+ ObjectTypeCode2.OPERATION,
fishingOperationId);
}
@@ -633,26 +638,26 @@
Integer qualitativeValueId = (Integer) source[colIndex];
// Trawl distance
- if (enumeration.PMFM_ID_TRAWL_DISTANCE.equals(pmfmId)) {
+ if (PmfmId2.TRAWL_DISTANCE.getValue().equals(pmfmId)) {
result.setTrawlDistance(numericalValue);
}
// Rectilinear operation ?
- else if (enumeration.PMFM_ID_RECTILINEAR_OPERATION.equals(pmfmId)) {
- result.setFishingOperationRectiligne(enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES.equals(qualitativeValueId));
+ else if (PmfmId2.RECTILINEAR_OPERATION.getValue().equals(pmfmId)) {
+ result.setFishingOperationRectiligne(QualitativeValueId.RECTILINEAR_OPERATION_YES.getValue().equals(qualitativeValueId));
}
// Haul valid ?
- else if (enumeration.PMFM_ID_HAUL_VALID.equals(pmfmId)) {
+ else if (PmfmId2.HAUL_VALID.getValue().equals(pmfmId)) {
if (qualitativeValueId != null) {
- result.setFishingOperationValid(enumeration.QUALITATIVE_HAUL_VALID_YES.equals(qualitativeValueId));
+ result.setFishingOperationValid(QualitativeValueId.HAUL_VALID_YES.getValue().equals(qualitativeValueId));
} else {
result.setFishingOperationValid(null);
}
}
// Station Number :
- else if (enumeration.PMFM_ID_STATION_NUMBER.equals(pmfmId)) {
+ else if (PmfmId2.STATION_NUMBER.getValue().equals(pmfmId)) {
result.setStationNumber(alphanumericalValue);
}
@@ -699,7 +704,7 @@
Integer qualitativeValueId = (Integer) source[colIndex];
// Trawl net number
- if (enumeration.PMFM_ID_MULTIRIG_AGGREGATION.equals(pmfmId)
+ if (PmfmId2.MULTIRIG_AGGREGATION.getValue().equals(pmfmId)
&& alphanumericalValue != null
&& alphanumericalValue.matches("\\d+")) {
result.setMultirigAggregation(alphanumericalValue);
@@ -870,7 +875,7 @@
// Retrieve multirig number, from Gear physical features
int cruiseMultirigCount = 1; // default value
if (gearPhysicalFeatures != null) {
- GearPhysicalMeasurement gpmMultirigCount = gearPhysicalFeaturesDao.getGearPhysicalMeasurement(gearPhysicalFeatures, enumeration.PMFM_ID_MULTIRIG_NUMBER);
+ GearPhysicalMeasurement gpmMultirigCount = gearPhysicalFeaturesDao.getGearPhysicalMeasurement(gearPhysicalFeatures, PmfmId2.MULTIRIG_NUMBER.getValue());
if (gpmMultirigCount != null && gpmMultirigCount.getNumericalValue() != null) {
cruiseMultirigCount = gpmMultirigCount.getNumericalValue().intValue();
}
@@ -878,7 +883,7 @@
// StationNumber
if (source.getStationNumber() != null) {
- VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, PmfmId2.STATION_NUMBER.getValue(), null, source.getStationNumber(), null);
notChangedVesselUseMeasurements.remove(vum);
}
@@ -897,7 +902,7 @@
}
// Store into Gear Use Features
- GearUseMeasurement gum = measurementPersistenceHelper.setGearUseMeasurement(scientificCruise, gearUseFeatures, enumeration.PMFM_ID_MULTIRIG_AGGREGATION, null, source.getMultirigAggregation(), null);
+ GearUseMeasurement gum = measurementPersistenceHelper.setGearUseMeasurement(scientificCruise, gearUseFeatures, PmfmId2.MULTIRIG_AGGREGATION.getValue(), null, source.getMultirigAggregation(), null);
notChangedGearUseMeasurements.remove(gum);
}
@@ -925,19 +930,19 @@
// Trawl distance
if (source.getTrawlDistance() != null) {
- VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, PmfmId2.TRAWL_DISTANCE.getValue(), source.getTrawlDistance(), null, null);
notChangedVesselUseMeasurements.remove(vum);
}
// Rectilinear operation
{
- VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_RECTILINEAR_OPERATION, null, null, source.isFishingOperationRectiligne() ? enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES : enumeration.QUALITATIVE_RECTILINEAR_OPERATION_NO);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, PmfmId2.RECTILINEAR_OPERATION.getValue(), null, null, source.isFishingOperationRectiligne() ? QualitativeValueId.RECTILINEAR_OPERATION_YES.getValue() : QualitativeValueId.RECTILINEAR_OPERATION_NO.getValue());
notChangedVesselUseMeasurements.remove(vum);
}
// Operation is valid ?
if (source.getFishingOperationValid() != null) {
- VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid() ? enumeration.QUALITATIVE_HAUL_VALID_YES : enumeration.QUALITATIVE_HAUL_VALID_NO);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, PmfmId2.HAUL_VALID.getValue(), null, null, source.getFishingOperationValid() ? QualitativeValueId.HAUL_VALID_YES.getValue() : QualitativeValueId.HAUL_VALID_NO.getValue());
notChangedVesselUseMeasurements.remove(vum);
}
@@ -955,7 +960,7 @@
// Quality Flag :
if (target.getQualityFlag() == null) {
- target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ target.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
}
// Settings not null properties :
@@ -980,7 +985,7 @@
vesselUseFeatures.setCreationDate(d);
}
if (vesselUseFeatures.getQualityFlag() == null) {
- vesselUseFeatures.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ vesselUseFeatures.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
}
// GearUseFeatures :
@@ -996,7 +1001,7 @@
gearUseFeatures.setCreationDate(d);
}
if (gearUseFeatures.getQualityFlag() == null) {
- gearUseFeatures.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ gearUseFeatures.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
}
// GearUseFeatures.Gear
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,14 +27,18 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import fr.ifremer.adagio.core.dao.administration.programStrategy.Program;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentId;
import fr.ifremer.adagio.core.dao.administration.user.DepartmentImpl;
+import fr.ifremer.adagio.core.dao.administration.user.PersonId;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Matrix;
+import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixId2;
import fr.ifremer.adagio.core.dao.referential.pmfm.MatrixImpl;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
@@ -231,14 +235,14 @@
target.setLabel(label);
// Matrix (product / batch)
- Matrix matrix = load(MatrixImpl.class, enumeration.MATRIX_ID_PRODUCT_BATCH);
+ Matrix matrix = load(MatrixImpl.class, MatrixId2.PRODUCT_BATCH.getValue());
target.setMatrix(matrix);
// IndividualCount
target.setIndividualCount((short) 1);
// Quality Flag
- target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ target.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
// Sample Date
if (target.getSampleDate() == null) {
@@ -250,11 +254,11 @@
// Recorder Departement
target.setRecorderDepartment(load(DepartmentImpl.class,
- enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT));
+ DepartmentId.UNKOWN_RECODER_DEPARTMENT.getValue()));
// Recorder Person
target.setRecorderPerson(load(PersonImpl.class,
- enumeration.PERSON_ID_UNKNOWN_RECORDER_PERSON));
+ PersonId.UNKNOWN_RECORDER_PERSON.getValue()));
// Program
Program program = fishingOperation.getFishingTrip().getProgram();
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -31,6 +31,7 @@
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -288,7 +289,7 @@
target.setIndividualCount(source.getNumber());
// QualityFlag
- QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
+ QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue());
target.setQualityFlag(qualityFlag);
// Comments
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProgramPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,10 +26,15 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramCode;
import fr.ifremer.adagio.core.dao.administration.programStrategy.ProgramDao;
+import fr.ifremer.adagio.core.dao.referential.gear.GearClassificationId;
import fr.ifremer.adagio.core.dao.referential.gear.GearClassificationImpl;
import fr.ifremer.adagio.core.dao.referential.location.Location;
+import fr.ifremer.adagio.core.dao.referential.location.LocationClassificationId;
import fr.ifremer.adagio.core.dao.referential.location.LocationDao;
+import fr.ifremer.adagio.core.dao.referential.location.LocationLevelId;
+import fr.ifremer.adagio.core.dao.referential.taxon.TaxonGroupTypeCode;
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonGroupTypeImpl;
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.data.Programs;
@@ -72,14 +77,14 @@
@Override
public List<Program> getAllProgram() {
String codePattern = "%";
- if (enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX != null) {
- codePattern = enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX + codePattern;
+ if (ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue() != null) {
+ codePattern = ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue() + codePattern;
}
Iterator<Object[]> list = queryList(
"allPrograms",
"codePattern", StringType.INSTANCE, codePattern,
- "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_PROGRAM,
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR
+ "locationLevelId", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue(),
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.SECTOR.getValue()
);
List<Program> result = Lists.newArrayList();
@@ -97,8 +102,8 @@
Iterator<Object[]> list = queryList(
"program",
"programCode", StringType.INSTANCE, id,
- "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_PROGRAM,
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR);
+ "locationLevelId", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue(),
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.SECTOR.getValue());
Program result;
@@ -178,8 +183,8 @@
// Compute a program code (remove spaces, and capitalize the name)
String programCode = source.getName().toUpperCase().replaceAll(" ", "_");
// Add a prefix
- if (enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX != null) {
- programCode = enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX + programCode;
+ if (ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue() != null) {
+ programCode = ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue() + programCode;
}
// Trunc the code if too long
if (programCode.length() > maxCodeLengthInDatabase) {
@@ -189,10 +194,10 @@
// Mandatory properties :
// Gear classification :
- target.setGearClassification(load(GearClassificationImpl.class, enumeration.GEAR_CLASSIFICIATION_ID_SCIENTIFIC));
+ target.setGearClassification(load(GearClassificationImpl.class, GearClassificationId.SCIENTIFIC_CRUISE.getValue()));
// taxon group type
- target.setTaxonGroupType(load(TaxonGroupTypeImpl.class, enumeration.TAXON_GROUP_TYPE_ID_COMMERCIAL_SPECIES));
+ target.setTaxonGroupType(load(TaxonGroupTypeImpl.class, TaxonGroupTypeCode.COMMERCIAL_SPECIES.getValue()));
// Creation date
target.setCreationDate(newCreateDate());
@@ -237,10 +242,10 @@
public int getProgramNameMaxLength() {
int maxCodeLengthInDatabase = 40;
- if (enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX == null
- || enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX.trim().isEmpty()) {
+ if (ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue() == null
+ || ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue().trim().isEmpty()) {
return maxCodeLengthInDatabase;
}
- return (maxCodeLengthInDatabase - enumeration.PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX.length());
+ return (maxCodeLengthInDatabase - ProgramCode.SCIENTIFIC_CRUISE_PREFIX.getValue().length());
}
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols;
@@ -62,8 +63,8 @@
public static TuttiProtocol sharedProtocol;
- @Resource(name = "technicalPersistenceService")
- protected TechnicalPersistenceService technicalService;
+ @Resource(name = "cacheService")
+ protected CacheService cacheService;
public TuttiProtocol getProtocol() {
return sharedProtocol;
@@ -76,10 +77,10 @@
sharedProtocol = protocol;
try {
- technicalService.clearCache("species");
- technicalService.clearCache("referentSpecies");
- technicalService.clearCache("referentSpeciesById");
- technicalService.clearCache("referentSpeciesByIdVernacula");
+ cacheService.clearCache("species");
+ cacheService.clearCache("referentSpecies");
+ cacheService.clearCache("referentSpeciesById");
+ cacheService.clearCache("referentSpeciesByIdVernacula");
} catch (Exception e) {
//FIXME This
@@ -137,7 +138,7 @@
@Override
public TuttiProtocol getProtocol(String id) {
File file = getProtocolFile(id);
- TuttiProtocol result = TuttiProtocols.fromFile(enumeration, file);
+ TuttiProtocol result = TuttiProtocols.fromFile(file);
return result;
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -28,14 +28,27 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentId;
import fr.ifremer.adagio.core.dao.administration.user.PersonExtendDao;
+import fr.ifremer.adagio.core.dao.administration.user.UserProfilId;
import fr.ifremer.adagio.core.dao.data.vessel.VesselExtendDao;
+import fr.ifremer.adagio.core.dao.referential.StatusCode;
import fr.ifremer.adagio.core.dao.referential.StatusDao;
+import fr.ifremer.adagio.core.dao.referential.VesselTypeId;
import fr.ifremer.adagio.core.dao.referential.gear.FishingGearExtendDao;
import fr.ifremer.adagio.core.dao.referential.gear.GearClassification;
+import fr.ifremer.adagio.core.dao.referential.gear.GearClassificationId;
+import fr.ifremer.adagio.core.dao.referential.location.LocationClassificationId;
import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao;
+import fr.ifremer.adagio.core.dao.referential.location.LocationLabel;
+import fr.ifremer.adagio.core.dao.referential.location.LocationLevelId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.UnitId;
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao;
import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO;
+import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeId;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
@@ -76,6 +89,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
/**
* Implementation of the {@link ReferentialPersistenceService} using a adagio
@@ -118,15 +132,39 @@
protected Predicate<SpeciesAbleBatch> batchVracPredicate;
+ protected Set<Integer> propertedPmfmIds;
+
@Override
public void init() {
super.init();
batchVracPredicate = TuttiEntities.newSpeciesAbleBatchCategoryPredicate(
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_VRAC_ID);
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_VRAC.getValue());
+
+ // init protected pmfm ids
+ propertedPmfmIds = Sets.newHashSet(
+ PmfmId2.MULTIRIG_AGGREGATION.getValue(),
+ PmfmId2.MULTIRIG_NUMBER.getValue(),
+ PmfmId2.STATION_NUMBER.getValue(),
+ PmfmId2.RECTILINEAR_OPERATION.getValue(),
+ PmfmId2.HAUL_VALID.getValue(),
+ PmfmId2.TRAWL_DISTANCE.getValue(),
+ PmfmId2.SURVEY_PART.getValue(),
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ PmfmId2.ID_PSFM.getValue()
+ );
}
+ /**
+ * @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)
+ */
+ protected boolean isProtectedCaracteristic(Integer pmfmId) {
+ return propertedPmfmIds.contains(pmfmId);
+ }
+
//------------------------------------------------------------------------//
//-- ReferentialPersistenceService implentation --//
//------------------------------------------------------------------------//
@@ -135,8 +173,8 @@
public List<TuttiLocation> getAllProgramZone() {
Iterator<Object[]> list = queryListWithStatus(
"allLocationsByLevelAndClassificiation",
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR,
- "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_PROGRAM);
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.SECTOR.getValue(),
+ "locationLevelId", IntegerType.INSTANCE, LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue());
List<TuttiLocation> result = Lists.newArrayList();
while (list.hasNext()) {
@@ -151,8 +189,8 @@
public List<TuttiLocation> getAllCountry() {
Iterator<Object[]> list = queryListWithStatus(
"allLocationsByLevelAndClassificiation",
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_TERRITORIAL,
- "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_COUNTRY);
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.TERRITORIAL.getValue(),
+ "locationLevelId", IntegerType.INSTANCE, LocationLevelId.PAYS_ISO3.getValue());
List<TuttiLocation> result = Lists.newArrayList();
while (list.hasNext()) {
@@ -167,8 +205,8 @@
public List<TuttiLocation> getAllHarbour() {
Iterator<Object[]> list = queryListWithStatus(
"allLocationsByLevelAndClassificiation",
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_TERRITORIAL,
- "locationLevelId", IntegerType.INSTANCE, enumeration.LOCATION_LEVEL_ID_HARBOUR);
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.TERRITORIAL.getValue(),
+ "locationLevelId", IntegerType.INSTANCE, LocationLevelId.PORT.getValue());
List<TuttiLocation> result = Lists.newArrayList();
while (list.hasNext()) {
@@ -183,9 +221,9 @@
public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) {
Preconditions.checkNotNull(zoneId);
List<TuttiLocation> result = getFishingOperationLocationsByParent(
- enumeration.LOCATION_LEVEL_ID_STRATA,
+ LocationLevelId.SCIENTIFIC_CRUISE_STRATA.getValue(),
Integer.valueOf(zoneId),
- enumeration.LOCATION_LEVEL_ID_PROGRAM);
+ LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue());
return Collections.unmodifiableList(result);
}
@@ -200,18 +238,18 @@
// use strata as parent
parentId = strataId;
- parentLocationLevelId = enumeration.LOCATION_LEVEL_ID_STRATA;
+ parentLocationLevelId = LocationLevelId.SCIENTIFIC_CRUISE_STRATA.getValue();
} else {
// use zoneId as parent
parentId = zoneId;
- parentLocationLevelId = enumeration.LOCATION_LEVEL_ID_PROGRAM;
+ parentLocationLevelId = LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue();
}
Preconditions.checkNotNull(parentId);
List<TuttiLocation> result = getFishingOperationLocationsByParent(
- enumeration.LOCATION_LEVEL_ID_SUB_STRATA,
+ LocationLevelId.SCIENTIFIC_CRUISE_SUB_STRATA.getValue(),
Integer.valueOf(parentId),
parentLocationLevelId);
return Collections.unmodifiableList(result);
@@ -229,24 +267,24 @@
// use substrata as parent
parentId = subStrataId;
- parentLocationLevelId = enumeration.LOCATION_LEVEL_ID_SUB_STRATA;
+ parentLocationLevelId = LocationLevelId.SCIENTIFIC_CRUISE_SUB_STRATA.getValue();
} else if (strataId != null) {
// use strata as parent
parentId = strataId;
- parentLocationLevelId = enumeration.LOCATION_LEVEL_ID_STRATA;
+ parentLocationLevelId = LocationLevelId.SCIENTIFIC_CRUISE_STRATA.getValue();
} else {
// use zoneId as parent
parentId = zoneId;
- parentLocationLevelId = enumeration.LOCATION_LEVEL_ID_PROGRAM;
+ parentLocationLevelId = LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM.getValue();
}
Preconditions.checkNotNull(parentId);
List<TuttiLocation> result = getFishingOperationLocationsByParent(
- enumeration.LOCATION_LEVEL_ID_LOCALITE,
+ LocationLevelId.SCIENTIFIC_CRUISE_LOCALITE.getValue(),
Integer.valueOf(parentId),
parentLocationLevelId);
return Collections.unmodifiableList(result);
@@ -271,7 +309,7 @@
Iterator<Object[]> list = queryListWithStatus(
"allVessels",
"refDate", DateType.INSTANCE, new Date(),
- "vesselTypeId", IntegerType.INSTANCE, enumeration.VESSEL_TYPE_ID_SCIENTIFIC);
+ "vesselTypeId", IntegerType.INSTANCE, VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL.getValue());
List<Vessel> result = Lists.newArrayList();
Cache vesselByCodeCache = cacheService.getCache("vesselByCode");
@@ -291,7 +329,7 @@
Iterator<Object[]> list = queryListWithStatus(
"allVessels",
"refDate", DateType.INSTANCE, new Date(),
- "vesselTypeId", IntegerType.INSTANCE, enumeration.VESSEL_TYPE_ID_FISHING
+ "vesselTypeId", IntegerType.INSTANCE, VesselTypeId.FISHING_VESSEL.getValue()
);
List<Vessel> result = Lists.newArrayList();
@@ -334,7 +372,7 @@
Iterator<Object[]> sources = queryListWithStatus(
"allGears",
- "gearClassificiationId", IntegerType.INSTANCE, enumeration.GEAR_CLASSIFICIATION_ID_SCIENTIFIC);
+ "gearClassificiationId", IntegerType.INSTANCE, GearClassificationId.SCIENTIFIC_CRUISE.getValue());
List<Gear> result = Lists.newArrayList();
while (sources.hasNext()) {
Object[] source = sources.next();
@@ -348,7 +386,7 @@
public List<Gear> getAllFishingGear() {
Iterator<Object[]> sources = queryListWithStatus(
"allGears",
- "gearClassificiationId", IntegerType.INSTANCE, enumeration.GEAR_CLASSIFICIATION_ID_FISHING);
+ "gearClassificiationId", IntegerType.INSTANCE, GearClassificationId.FAO.getValue());
List<Gear> result = Lists.newArrayList();
while (sources.hasNext()) {
Object[] source = sources.next();
@@ -362,10 +400,11 @@
public List<Person> getAllPerson() {
Iterator<Object[]> list = queryListWithStatus(
"allPersons",
- "observerProfilId", IntegerType.INSTANCE, enumeration.USER_PROFIL_ID_OBSERVER,
- "projectMemberProfilId", IntegerType.INSTANCE, enumeration.USER_PROFIL_ID_PROJECT_MEMBER,
- "userProfilId", IntegerType.INSTANCE, enumeration.USER_PROFIL_ID_USER,
- "departementPrefixCode", StringType.INSTANCE, enumeration.USER_PROFIL_ID_DEPARTEMENT_PREFIX
+ "observerProfilId", IntegerType.INSTANCE, UserProfilId.OBSERVER.getValue(),
+ "projectMemberProfilId", IntegerType.INSTANCE, UserProfilId.PROJECT_MEMBER.getValue(),
+ "userProfilId", IntegerType.INSTANCE, UserProfilId.USER.getValue(),
+ "departementPrefixCode", StringType.INSTANCE, "PDG-" //FIXME Use the Departement enum when it will exists in adagio
+// "departementPrefixCode", StringType.INSTANCE, enumeration.USER_PROFIL_ID_DEPARTEMENT_PREFIX
);
List<Person> result = Lists.newArrayList();
@@ -401,7 +440,7 @@
public List<Species> getAllSpecies() {
TaxonRefVO[] sources = taxonNameDao.getAllTaxonNames(
- true, enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
+ true, TranscribingItemTypeId.TAXON_NAME_REFTAX_CODE.getValue());
List<Species> result = Lists.newArrayListWithCapacity(sources.length);
List<Species> referenceTaxonsOnly = Lists.newArrayList();
@@ -433,7 +472,7 @@
public List<Species> getAllReferentSpecies() {
TaxonRefVO[] sources = taxonNameDao.getAllTaxonNames(
- false, enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
+ false, TranscribingItemTypeId.TAXON_NAME_REFTAX_CODE.getValue());
List<Species> result = Lists.newArrayListWithCapacity(sources.length);
Cache referentSpeciesByIdCache = cacheService.getCache("referentSpeciesById");
for (TaxonRefVO source : sources) {
@@ -454,7 +493,7 @@
public Species getSpeciesByReferenceTaxonId(Integer referenceTaxonId) {
Species result = getSpeciesByReferenceTaxonId(
referenceTaxonId,
- enumeration.TRANSCRIBING_TYPE_ID_REFTAX);
+ TranscribingItemTypeId.TAXON_NAME_REFTAX_CODE.getValue());
if (result != null) {
result.setRefTaxCode(result.getExternalCode());
}
@@ -465,7 +504,7 @@
public Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId) {
Species result = getSpeciesByReferenceTaxonId(
referenceTaxonId,
- enumeration.TRANSCRIBING_TYPE_ID_VERNACULAIRE);
+ TranscribingItemTypeId.TAXON_NAME_LOCAL_NAME.getValue());
if (result != null) {
result.setVernacularCode(result.getExternalCode());
}
@@ -506,7 +545,7 @@
protected List<Caracteristic> getAllCaracteristics(boolean withProtected) {
Iterator<Object[]> sources = queryListWithStatus(
"allPmfm",
- "unitIdNone", IntegerType.INSTANCE, enumeration.UNIT_ID_NONE);
+ "unitIdNone", IntegerType.INSTANCE, UnitId.NONE.getValue());
List<Caracteristic> result = Lists.newArrayList();
Cache pmfmByIdCache = cacheService.getCache("pmfmById");
while (sources.hasNext()) {
@@ -514,7 +553,7 @@
Integer pmfmId = (Integer) source[0];
Caracteristic target = loadCaracteristic(source);
// Skip some protected PSFM
- if (withProtected || !enumeration.isProtectedCaracteristic(pmfmId)) {
+ if (withProtected || !isProtectedCaracteristic(pmfmId)) {
result.add(target);
}
pmfmByIdCache.put(pmfmId, target);
@@ -559,21 +598,21 @@
@Override
public Caracteristic getSizeCategoryCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_SIZE_CATEGORY;
+ Integer pmfmId = PmfmId2.SIZE_CATEGORY.getValue();
Caracteristic result = getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getSexCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_SEX;
+ Integer pmfmId = PmfmId2.SEX.getValue();
Caracteristic result = getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getSortedUnsortedCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_SORTED_UNSORTED;
+ Integer pmfmId = PmfmId2.SORTED_UNSORTED.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
// Search the qualitative value to skip
@@ -583,7 +622,7 @@
Iterator<CaracteristicQualitativeValue> iterator = qualitativeValue.iterator();
while (iterator.hasNext()) {
CaracteristicQualitativeValue qv = iterator.next();
- if (enumeration.QUALITATIVE_UNSORTED_ID.equals(Integer.valueOf(qv.getId()))) {
+ if (QualitativeValueId.UNSORTED.getValue().equals(Integer.valueOf(qv.getId()))) {
iterator.remove();
break;
}
@@ -594,70 +633,70 @@
@Override
public Caracteristic getMaturityCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_MATURITY;
+ Integer pmfmId = PmfmId2.MATURITY.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getAgeCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_AGE;
+ Integer pmfmId = PmfmId2.AGE.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getMarineLitterCategoryCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_MARINE_LITTER_TYPE;
+ Integer pmfmId = PmfmId2.MARINE_LITTER_TYPE.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getMarineLitterSizeCategoryCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_MARINE_LITTER_SIZE_CATEGORY;
+ Integer pmfmId = PmfmId2.MARINE_LITTER_SIZE_CATEGORY.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getVerticalOpeningCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_VERTICAL_OPENING;
+ Integer pmfmId = PmfmId2.VERTICAL_OPENING.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getHorizontalOpeningWingsCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_HORIZONTAL_OPENING_WINGS;
+ Integer pmfmId = PmfmId2.HORIZONTAL_OPENING_WINGS.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getHorizontalOpeningDoorCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_HORIZONTAL_OPENING_DOOR;
+ Integer pmfmId = PmfmId2.HORIZONTAL_OPENING_DOOR.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getDeadOrAliveCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_DEAD_OR_ALIVE;
+ Integer pmfmId = PmfmId2.DEAD_OR_ALIVE.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getPmfmIdCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_ID_PSFM;
+ Integer pmfmId = PmfmId2.ID_PSFM.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@Override
public Caracteristic getWeightMeasuredCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_WEIGHT_MEASURED;
+ Integer pmfmId = PmfmId2.WEIGHT_MEASURED.getValue();
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@@ -666,7 +705,7 @@
public boolean isTemporary(TuttiReferentialEntity entity) {
Preconditions.checkNotNull(entity);
Preconditions.checkNotNull(entity.getStatus());
- return enumeration.STATUS_TEMPORARY_CODE.equals(
+ return StatusCode.TEMPORARY.getValue().equals(
entity.getStatus().getId());
}
@@ -674,7 +713,7 @@
public Caracteristic getCaracteristic(Integer pmfmId) {
Object[] source = queryUniqueWithStatus("pmfmById",
"pmfmId", IntegerType.INSTANCE, pmfmId,
- "unitIdNone", IntegerType.INSTANCE, enumeration.UNIT_ID_NONE);
+ "unitIdNone", IntegerType.INSTANCE, UnitId.NONE.getValue());
Caracteristic target = loadCaracteristic(source);
return target;
}
@@ -704,13 +743,13 @@
List<Vessel> result = Lists.newArrayList();
fr.ifremer.adagio.core.dao.referential.Status status =
- statusDao.load(enumeration.STATUS_TEMPORARY_CODE);
+ statusDao.load(StatusCode.TEMPORARY.getValue());
Integer countryLocationId =
locationDao.getLocationIdByLabelAndLocationLevel(
- enumeration.LOCATION_LABEL_DEFAULT_COUNTRY,
- new Integer[]{enumeration.LOCATION_LEVEL_ID_COUNTRY});
+ LocationLabel.FRANCE.getValue(),
+ new Integer[]{LocationLevelId.PAYS_ISO3.getValue()});
if (countryLocationId == null) {
- throw new DataIntegrityViolationException("Default country location not found, with label=" + enumeration.LOCATION_LABEL_DEFAULT_COUNTRY);
+ throw new DataIntegrityViolationException("Default country location not found, with label=" + LocationLabel.FRANCE.getValue());
}
for (Vessel source : vessels) {
@@ -725,7 +764,7 @@
List<Person> result = Lists.newArrayList();
fr.ifremer.adagio.core.dao.referential.Status status =
- statusDao.load(enumeration.STATUS_TEMPORARY_CODE);
+ statusDao.load(StatusCode.TEMPORARY.getValue());
for (Person source : persons) {
source = importTemporaryPerson(source, status);
result.add(source);
@@ -738,7 +777,7 @@
List<Gear> result = Lists.newArrayList();
fr.ifremer.adagio.core.dao.referential.Status status =
- statusDao.load(enumeration.STATUS_TEMPORARY_CODE);
+ statusDao.load(StatusCode.TEMPORARY.getValue());
for (Gear source : gears) {
source = importTemporaryGear(source, status);
result.add(source);
@@ -762,9 +801,9 @@
Integer vesselTypeId;
if (source.isScientificVessel()) {
- vesselTypeId = enumeration.VESSEL_TYPE_ID_SCIENTIFIC;
+ vesselTypeId = VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL.getValue();
} else {
- vesselTypeId = enumeration.VESSEL_TYPE_ID_FISHING;
+ vesselTypeId = VesselTypeId.FISHING_VESSEL.getValue();
}
fr.ifremer.adagio.core.dao.data.vessel.Vessel target =
@@ -791,7 +830,7 @@
Preconditions.checkNotNull(source.getFirstName());
Preconditions.checkNotNull(source.getLastName());
- fr.ifremer.adagio.core.dao.administration.user.Person target = personDao.createAsTemporary(source.getLastName(), source.getFirstName(), enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT);
+ fr.ifremer.adagio.core.dao.administration.user.Person target = personDao.createAsTemporary(source.getLastName(), source.getFirstName(), DepartmentId.UNKOWN_RECODER_DEPARTMENT.getValue());
// Fill the result bean
Person result = Persons.newPerson();
@@ -830,9 +869,9 @@
Integer gearClassificationId;
if (source.isScientificGear()) {
- gearClassificationId = enumeration.GEAR_CLASSIFICIATION_ID_SCIENTIFIC;
+ gearClassificationId = GearClassificationId.SCIENTIFIC_CRUISE.getValue();
} else {
- gearClassificationId = enumeration.GEAR_CLASSIFICIATION_ID_FISHING;
+ gearClassificationId = GearClassificationId.FAO.getValue();
}
fr.ifremer.adagio.core.dao.referential.gear.Gear target = fishingGearDao.createAsTemporary(source.getLabel(), source.getName(), gearClassificationId);
@@ -852,7 +891,7 @@
"allFishingOperationLocationByParent",
"parentId", IntegerType.INSTANCE, parentId,
"parentLocationLevelId", IntegerType.INSTANCE, parentLocationLevelId,
- "locationClassificationId", IntegerType.INSTANCE, enumeration.LOCATION_CLASSIFICATION_ID_SECTOR,
+ "locationClassificationId", IntegerType.INSTANCE, LocationClassificationId.SECTOR.getValue(),
"locationLevelId", IntegerType.INSTANCE, locationLevelId
);
List<TuttiLocation> result = Lists.newArrayList();
@@ -957,7 +996,7 @@
GearClassification classification = (GearClassification) source[3];
boolean scientific = false;
if (classification != null) {
- scientific = classification.getId().equals(enumeration.GEAR_CLASSIFICIATION_ID_SCIENTIFIC);
+ scientific = classification.getId().equals(GearClassificationId.SCIENTIFIC_CRUISE.getValue());
}
result.setScientificGear(scientific);
@@ -977,8 +1016,8 @@
protected Iterator<Object[]> queryListWithStatus(String queryName,
Object... params) {
Query query = createQuery(queryName, params);
- query.setString("statusValidCode", enumeration.STATUS_VALID_CODE);
- query.setString("statusTemporaryCode", enumeration.STATUS_TEMPORARY_CODE);
+ query.setString("statusValidCode", StatusCode.ENABLE.getValue());
+ query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
Iterator<Object[]> result = query.iterate();
return result;
@@ -987,8 +1026,8 @@
protected Object[] queryUniqueWithStatus(String queryName, Object... params) {
Query query = createQuery(queryName, params);
- query.setString("statusValidCode", enumeration.STATUS_VALID_CODE);
- query.setString("statusTemporaryCode", enumeration.STATUS_TEMPORARY_CODE);
+ query.setString("statusValidCode", StatusCode.ENABLE.getValue());
+ query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
Object result = query.uniqueResult();
return (Object[]) result;
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -35,7 +35,9 @@
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
import fr.ifremer.adagio.core.dao.referential.QualityFlag;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
@@ -452,7 +454,7 @@
}
QualityFlag qualityFlag = source.getQualityFlag();
- target.setSpeciesToConfirm(qualityFlag != null && enumeration.QUALITY_FLAG_CODE_DOUBTFUL.equals(qualityFlag.getCode()));
+ target.setSpeciesToConfirm(qualityFlag != null && QualityFlagCode.DOUBTFUL.getValue().equals(qualityFlag.getCode()));
return target;
}
@@ -556,7 +558,7 @@
if (source.getSampleCategoryId() != null && source.getSampleCategoryValue() != null) {
Integer pmfmId = source.getSampleCategoryId();
// Do not store sorting measurement if pmfm = SORTED (already store in an ancestor batch)
- if (!pmfmId.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ if (!pmfmId.equals(PmfmId2.SORTED_UNSORTED.getValue())) {
SortingMeasurement sortingMeasurement = measurementPersistenceHelper.setSortingMeasurement(
target,
pmfmId,
@@ -580,9 +582,9 @@
// QualityFlag
String qualityFlag;
if (source.isSpeciesToConfirm()) {
- qualityFlag = enumeration.QUALITY_FLAG_CODE_DOUBTFUL;
+ qualityFlag = QualityFlagCode.DOUBTFUL.getValue();
} else {
- qualityFlag = enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED;
+ qualityFlag = QualityFlagCode.NOTQUALIFIED.getValue();
}
target.setQualityFlag(load(QualityFlagImpl.class, qualityFlag));
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -18,20 +18,12 @@
public interface TechnicalPersistenceService extends TuttiPersistenceServiceImplementor {
/**
- * @return the enumeration file (where all constant mapping are defined).
- * @since 2.4
- */
- TuttiEnumerationFile getEnumerationFile();
-
- /**
* To clear all caches.
*
* @since 1.0.1
*/
void clearAllCaches();
- void clearCache(String cacheName);
-
/**
* To invoke the given call code.
* <p/>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -5,14 +5,11 @@
import fr.ifremer.adagio.core.dao.technical.VersionNotFoundException;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.adagio.core.service.technical.sanity.DatabaseSanityService;
-import net.sf.ehcache.Ehcache;
-import net.sf.ehcache.Status;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.jaxx.application.ApplicationTechnicalException;
import org.nuiton.util.Version;
import org.nuiton.util.VersionUtil;
-import org.springframework.cache.Cache;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -40,11 +37,6 @@
protected DatabaseSchemaDao databaseSchemaDao;
@Override
- public TuttiEnumerationFile getEnumerationFile() {
- return enumeration;
- }
-
- @Override
public <V> V invoke(Callable<V> call) {
try {
@@ -101,14 +93,4 @@
cacheService.clearAllCaches();
}
- @Override
- public void clearCache(String cacheName) {
- Cache cache = cacheService.getCache(cacheName);
- if (cache != null) {
- Ehcache nativeCache = (Ehcache) cache.getNativeCache();
- if (Status.STATUS_ALIVE.equals(nativeCache.getStatus())) {
- cacheService.clearCache(cacheName);
- }
- }
- }
}
Deleted: 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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -1,373 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%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.Preconditions;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import fr.ifremer.tutti.persistence.entities.TuttiEnumerable;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.util.ReflectionUtils;
-
-import java.lang.reflect.Field;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Contains all constants usable via the enumeration file.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class TuttiEnumerationFile {
-
- @Value("${adagio.enumeration.GearClassificationId.SCIENTIFIC_CRUISE}")
- public final Integer GEAR_CLASSIFICIATION_ID_SCIENTIFIC = null;
-
- @Value("${adagio.enumeration.GearClassificationId.FAO}")
- public final Integer GEAR_CLASSIFICIATION_ID_FISHING = null;
-
- @Value("${adagio.enumeration.LocationClassificationId.TERRITORIAL}")
- public final Integer LOCATION_CLASSIFICATION_ID_TERRITORIAL = null;
-
- @Value("${adagio.enumeration.LocationClassificationId.SECTOR}")
- public final Integer LOCATION_CLASSIFICATION_ID_SECTOR = null;
-
- @Value("${adagio.enumeration.LocationLabel.FRANCE}")
- public final String LOCATION_LABEL_DEFAULT_COUNTRY = null;
-
- @Value("${adagio.enumeration.LocationLevelId.PAYS_ISO3}")
- public final Integer LOCATION_LEVEL_ID_COUNTRY = null;
-
- @Value("${adagio.enumeration.LocationLevelId.PORT}")
- public final Integer LOCATION_LEVEL_ID_HARBOUR = null;
-
- @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_LOCALITE}")
- public final Integer LOCATION_LEVEL_ID_LOCALITE = null;
-
- @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM}")
- public final Integer LOCATION_LEVEL_ID_PROGRAM = null;
-
- @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_STRATA}")
- public final Integer LOCATION_LEVEL_ID_STRATA = null;
-
- @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_SUB_STRATA}")
- public final Integer LOCATION_LEVEL_ID_SUB_STRATA = null;
-
- @Value("${adagio.enumeration.ParameterCode.AGE}")
- public final String PARAMETER_CODE_AGE = null;
-
- @Value("${adagio.enumeration.ParameterCode.WEIGHT}")
- public final String PARAMETER_CODE_WEIGHT = null;
-
- @Value("${adagio.enumeration.PmfmId.SIZE_CATEGORY}")
- public final Integer PMFM_ID_SIZE_CATEGORY = null;
-
- @Value("${adagio.enumeration.PmfmId.SEX}")
- public final Integer PMFM_ID_SEX = null;
-
- @Value("${adagio.enumeration.PmfmId.SORTED_UNSORTED}")
- public final Integer PMFM_ID_SORTED_UNSORTED = null;
-
- @Value("${adagio.enumeration.PmfmId.MATURITY}")
- public final Integer PMFM_ID_MATURITY = null;
-
- @Value("${adagio.enumeration.PmfmId.MARINE_LITTER_TYPE}")
- public final Integer PMFM_ID_MARINE_LITTER_TYPE = null;
-
- @Value("${adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY}")
- public final Integer PMFM_ID_MARINE_LITTER_SIZE_CATEGORY = null;
-
- @Value("${adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE}")
- public final Integer PMFM_ID_SORTING_TYPE = null;
-
- @Value("${adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE_2}")
- public final Integer PMFM_ID_SORTING_TYPE_2 = null;
-
- @Value("${adagio.enumeration.UnitId.NONE}")
- public final Integer UNIT_ID_NONE = null;
-
- @Value("${adagio.enumeration.UserProfilId.OBSERVER}")
- public final Integer USER_PROFIL_ID_OBSERVER = null;
-
- @Value("${adagio.enumeration.UserProfilId.PROJECT_MEMBER}")
- public final Integer USER_PROFIL_ID_PROJECT_MEMBER = null;
-
- @Value("${adagio.enumeration.UserProfilId.USER}")
- public final Integer USER_PROFIL_ID_USER = null;
-
- @Value("${adagio.enumeration.UserProfilId.DEPARTEMENT_PREFIX}")
- public final String USER_PROFIL_ID_DEPARTEMENT_PREFIX = null;
-
- @Value("${adagio.enumeration.VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL}")
- public final Integer VESSEL_TYPE_ID_SCIENTIFIC = null;
-
- @Value("${adagio.enumeration.VesselTypeId.FISHING_VESSEL}")
- public final Integer VESSEL_TYPE_ID_FISHING = null;
-
-// @Value("${adagio.enumeration.LocationLevelId.RECTANGLE_STATISTIQUE_MED}")
-// public final Integer RECTANGLE_STATISTIQUE_MED = null;
-
- @Value("${adagio.enumeration.LocationLevelId.RECTANGLE_STATISTIQUE}")
- public final Integer RECTANGLE_STATISTIQUE = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTED_VRAC}")
- public final Integer QUALITATIVE_VRAC_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTED_HORS_VRAC}")
- public final Integer QUALITATIVE_HORS_VRAC_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.UNSORTED}")
- public final Integer QUALITATIVE_UNSORTED_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SEX_MALE}")
- public final Integer QUALITATIVE_SEX_MALE_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SEX_FEMALE}")
- public final Integer QUALITATIVE_SEX_FEMALE_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SEX_UNDEFINED}")
- public final Integer QUALITATIVE_SEX_UNDEFINED_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.MATURITY_1}")
- public final Integer QUALITATIVE_MATURITY_1_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.MATURITY_2}")
- public final Integer QUALITATIVE_MATURITY_2_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.MATURITY_3}")
- public final Integer QUALITATIVE_MATURITY_3_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.MATURITY_4}")
- public final Integer QUALITATIVE_MATURITY_4_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.MATURITY_5}")
- public final Integer QUALITATIVE_MATURITY_5_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SIZE_SMALL}")
- public final Integer QUALITATIVE_SIZE_SMALL_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SIZE_MEDIUM}")
- public final Integer QUALITATIVE_SIZE_MEDIUM_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SIZE_BIG}")
- public final Integer QUALITATIVE_SIZE_BIG_ID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_SPECIES}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_SPECIES = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_BENTHOS}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_BENTHOS = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_MARINE_LITTER}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_ALIVE_NOT_ITEMIZED}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_INERT}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_2_INERT = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_ALIVE_ITEMIZED}")
- public final Integer QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED = null;
-
- @Value("${adagio.enumeration.StatusCode.ENABLE}")
- public final String STATUS_VALID_CODE = null;
-
- @Value("${adagio.enumeration.StatusCode.TEMPORARY}")
- public final String STATUS_TEMPORARY_CODE = null;
-
- @Value("${adagio.enumeration.PersonId.UNKNOWN_RECORDER_PERSON}")
- public final Integer PERSON_ID_UNKNOWN_RECORDER_PERSON = null;
-
- @Value("${adagio.enumeration.QualityFlagCode.NOTQUALIFIED}")
- public final String QUALITY_FLAG_CODE_NOT_QUALIFIED = null;
-
- @Value("${adagio.enumeration.QualityFlagCode.DOUBTFUL}")
- public final String QUALITY_FLAG_CODE_DOUBTFUL = null;
-
- @Value("${adagio.enumeration.PmfmId.STATION_NUMBER}")
- public final Integer PMFM_ID_STATION_NUMBER = null;
-
- @Value("${adagio.enumeration.PmfmId.TRAWL_DISTANCE}")
- public final Integer PMFM_ID_TRAWL_DISTANCE = null;
-
- @Value("${adagio.enumeration.PmfmId.RECTILINEAR_OPERATION}")
- public final Integer PMFM_ID_RECTILINEAR_OPERATION = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.RECTILINEAR_OPERATION_YES}")
- public final Integer QUALITATIVE_RECTILINEAR_OPERATION_YES = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.RECTILINEAR_OPERATION_NO}")
- public final Integer QUALITATIVE_RECTILINEAR_OPERATION_NO = null;
-
- @Value("${adagio.enumeration.PmfmId.HAUL_VALID}")
- public final Integer PMFM_ID_HAUL_VALID = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.HAUL_VALID_YES}")
- public final Integer QUALITATIVE_HAUL_VALID_YES = null;
-
- @Value("${adagio.enumeration.QualitativeValueId.HAUL_VALID_NO}")
- public final Integer QUALITATIVE_HAUL_VALID_NO = null;
-
- @Value("${adagio.enumeration.PmfmId.MULTIRIG_NUMBER}")
- public final Integer PMFM_ID_MULTIRIG_NUMBER = null;
-
- @Value("${adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION}")
- public final Integer PMFM_ID_MULTIRIG_AGGREGATION = null;
-
- @Value("${adagio.enumeration.PmfmId.WEIGHT_MEASURED}")
- public final Integer PMFM_ID_WEIGHT_MEASURED = null;
-
- @Value("${adagio.enumeration.DepartmentId.UNKNOWN_RECORDER_DEPARTMENT}")
- public final Integer DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT = null;
-
- @Value("${adagio.enumeration.PmfmId.AGE}")
- public final Integer PMFM_ID_AGE = null;
-
- @Value("${adagio.enumeration.PmfmId.SURVEY_PART}")
- public final Integer PMFM_ID_SURVEY_PART = null;
-
- @Value("${adagio.enumeration.PmfmId.VERTICAL_OPENING}")
- public final Integer PMFM_ID_VERTICAL_OPENING = null;
-
- @Value("${adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS}")
- public final Integer PMFM_ID_HORIZONTAL_OPENING_WINGS = null;
-
- @Value("${adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR}")
- public final Integer PMFM_ID_HORIZONTAL_OPENING_DOOR = null;
-
- @Value("${adagio.enumeration.PmfmId.DEAD_OR_ALIVE}")
- public final Integer PMFM_ID_DEAD_OR_ALIVE = null;
-
- @Value("${adagio.enumeration.ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
- public final String PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX = null;
-
- @Value("${adagio.enumeration.TaxonGroupTypeCode.COMMERCIAL_SPECIES}")
- public final String TAXON_GROUP_TYPE_ID_COMMERCIAL_SPECIES = null;
-
- @Value("${adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE}")
- public final String OBJECT_TYPE_SCIENTIFIC_CRUISE = null;
-
- @Value("${adagio.enumeration.ObjectTypeCode.CATCH_BATCH}")
- public final String OBJECT_TYPE_CATCH_BATCH = null;
-
- @Value("${adagio.enumeration.ObjectTypeCode.BATCH}")
- public final String OBJECT_TYPE_BATCH = null;
-
- @Value("${adagio.enumeration.ObjectTypeCode.OPERATION}")
- public final String OBJECT_TYPE_OPERATION = null;
-
- @Value("${adagio.enumeration.ObjectTypeCode.SAMPLE}")
- public final String OBJECT_TYPE_SAMPLE = null;
-
- @Value("${adagio.enumeration.VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER}")
- public final Integer VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER = null;
-
- @Value("${adagio.enumeration.VesselPersonRoleId.SORT_ROOM_MANAGER}")
- public final Integer VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER = null;
-
- @Value("${adagio.enumeration.VesselPersonRoleId.RECORDER_PERSON}")
- public final Integer VESSEL_PERSON_ROLE_ID_RECORDER_PERSON = null;
-
- @Value("${adagio.enumeration.TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE}")
- public final Integer TRANSCRIBING_TYPE_ID_REFTAX = null;
-
- @Value("${adagio.enumeration.TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE}")
- public final Integer TRANSCRIBING_TYPE_ID_VERNACULAIRE = null;
-
- @Value("${adagio.enumeration.MatrixId.PRODUCT_BATCH}")
- public final Integer MATRIX_ID_PRODUCT_BATCH = null;
-
- @Value("${adagio.enumeration.PmfmId.ID_PSFM}")
- public final Integer PMFM_ID_ID_PSFM = null;
-
- protected Set<Integer> propertedPmfmIds;
-
- public void init() {
-
- Map<String, Object> annotatedFieldValues = Maps.newTreeMap();
-
- Field[] declaredFields = getClass().getDeclaredFields();
- for (Field declaredField : declaredFields) {
- Value annotation = declaredField.getAnnotation(Value.class);
- if (annotation != null) {
-
- // check on that field that his value is here
- Object fieldValue = ReflectionUtils.getField(declaredField, this);
- String fieldName = declaredField.getName();
- Preconditions.checkNotNull(
- fieldValue,
- annotation.value() + " constant not found (field " +
- fieldName + ")");
- annotatedFieldValues.put(fieldName, fieldValue);
- }
- }
-
- // init enums
- initEnum(AttachementObjectTypeEnum.class, annotatedFieldValues);
-
- //FIXME Should also add the one from sample category model ?
- // init protected pmfm ids
- propertedPmfmIds = Sets.newHashSet(
- PMFM_ID_MULTIRIG_AGGREGATION,
- PMFM_ID_MULTIRIG_NUMBER,
- PMFM_ID_STATION_NUMBER,
- PMFM_ID_RECTILINEAR_OPERATION,
- PMFM_ID_HAUL_VALID,
- PMFM_ID_TRAWL_DISTANCE,
- PMFM_ID_SURVEY_PART,
- PMFM_ID_SORTED_UNSORTED,
- PMFM_ID_ID_PSFM
- );
- }
-
- /**
- * @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)
- */
- public boolean isProtectedCaracteristic(Integer pmfmId) {
- return propertedPmfmIds.contains(pmfmId);
- }
-
- protected <O, E extends Enum<E> & TuttiEnumerable<O>> void initEnum(
- Class<E> enumType,
- Map<String, Object> annotatedFieldValues) {
- for (E e : enumType.getEnumConstants()) {
- if (!e.isInit()) {
- String fieldName = e.getFieldName();
- Object field = annotatedFieldValues.get(fieldName);
- Preconditions.checkNotNull(
- field,
- "Could not find field " + fieldName + ")");
- e.setFieldValue((O) field);
- e.setInit(true);
- }
-
- }
- }
-}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -51,11 +51,6 @@
instance().init(beanFactoryReferenceLocation, beanRefFactoryReferenceId);
}
- public static TuttiEnumerationFile getTuttiEnumerationFile() {
- return instance().getService("tuttiEnumerationFile",
- TuttiEnumerationFile.class);
- }
-
public static TuttiPersistence getPersistenceService() {
return getPersistenceService("tuttiPersistence",
TuttiPersistence.class);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,6 +27,7 @@
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentId;
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
@@ -35,10 +36,12 @@
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationError;
import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.entities.TuttiEntity;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
@@ -168,7 +171,7 @@
getCurrentSession().flush();
attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
+ ObjectTypeCode2.BATCH,
ids.toArray(new Integer[ids.size()]));
}
@@ -184,7 +187,7 @@
catchBatchDao.removeWithChildren(batchId);
attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
+ ObjectTypeCode2.BATCH,
ids.toArray(new Integer[ids.size()]));
}
@@ -194,7 +197,7 @@
catchBatchDao.removeWithChildren(batchId, parentCatchBatch);
attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
+ ObjectTypeCode2.BATCH,
ids.toArray(new Integer[ids.size()]));
}
@@ -315,16 +318,16 @@
// Or retrieve parent batch, from pmfm id
// Retrieve category type
- if (!sampleCategoryId.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ if (!sampleCategoryId.equals(PmfmId2.SORTED_UNSORTED.getValue())) {
throw new DataIntegrityViolationException(MessageFormat.format(
"A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
sampleCategoryId,
- enumeration.PMFM_ID_SORTED_UNSORTED));
+ PmfmId2.SORTED_UNSORTED.getValue()));
}
Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
- if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
+ if (QualitativeValueId.SORTED_VRAC.getValue().equals(qualitativeValueId)) {
// -- Vrac > Species > Alive itemized
parentBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(catchBatch);
@@ -349,7 +352,7 @@
parentBatch = batchTreeHelper.getOrCreateSpeciesVracAliveItemizedRootBatch(catchBatch, vracSpeciesBatch);
}
- } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
+ } else if (QualitativeValueId.SORTED_HORS_VRAC.getValue().equals(qualitativeValueId)) {
// -- Hors Vrac > Species
parentBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(catchBatch);
@@ -394,16 +397,16 @@
// Or retrieve parent batch, from pmfm id
// Retrieve category type
- if (!sampleCategoryType.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ if (!sampleCategoryType.equals(PmfmId2.SORTED_UNSORTED.getValue())) {
throw new DataIntegrityViolationException(MessageFormat.format(
"A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
sampleCategoryType,
- enumeration.PMFM_ID_SORTED_UNSORTED));
+ PmfmId2.SORTED_UNSORTED.getValue()));
}
Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
- if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
+ if (QualitativeValueId.SORTED_VRAC.getValue().equals(qualitativeValueId)) {
// -- Vrac > Benthos > Alive Itemized
parentBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(catchBatch);
@@ -428,7 +431,7 @@
parentBatch = batchTreeHelper.getOrCreateBenthosVracAliveItemizedRootBatch(catchBatch, vracBenthosBatch);
}
- } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
+ } else if (QualitativeValueId.SORTED_HORS_VRAC.getValue().equals(qualitativeValueId)) {
// -- Hors Vrac > Benthos
parentBatch = batchTreeHelper.getBenthosHorsVracRootBatch(catchBatch);
@@ -512,6 +515,9 @@
}
}
+// protected Integer getSortingTypeId() {
+// return Integer.valueOf(PmfmId2.SCIENTIFIC_CRUISE_SORTING_TYPE.getValue());
+// }
public <S extends SpeciesAbleBatch> void setSampleCategoryQualitative(S target,
Integer pmfmId,
@@ -519,7 +525,7 @@
String alphanumericalValue,
Integer qualitativeValueId) {
// skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
- if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
+ if (pmfmId == null || pmfmId.equals(BatchTreeHelper.SORTING_TYPE_ID)) {
return;
}
SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
@@ -593,7 +599,7 @@
protected Integer getRecorderDepartmentId() {
// TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
- return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
+ return DepartmentId.UNKOWN_RECODER_DEPARTMENT.getValue();
}
/**
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -9,7 +9,10 @@
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
@@ -40,6 +43,10 @@
@Component("batchTreeHelper")
public class BatchTreeHelper extends AbstractPersistenceService {
+ public static final Integer SORTING_TYPE_ID = PmfmId2.SCIENTIFIC_CRUISE_SORTING_TYPE.getValue();
+
+ public static final Integer SORTING_TYPE2_ID = PmfmId2.SCIENTIFIC_CRUISE_SORTING_TYPE2.getValue();
+
/** Logger. */
private static final Log log = LogFactory.getLog(BatchTreeHelper.class);
@@ -59,9 +66,9 @@
return getSortingBatch(
batch,
"Vrac > Species > Alive Itemized",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
- enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.SORTED_VRAC.getValue(),
+ SORTING_TYPE_ID, QualitativeValueId.SORTING_TYPE_SPECIES.getValue(),
+ SORTING_TYPE2_ID, QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue()
);
}
@@ -69,9 +76,9 @@
return getSortingBatch(
batch,
"Vrac > Benthos > Alive itemized",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.SORTED_VRAC.getValue(),
+ SORTING_TYPE_ID, QualitativeValueId.SORTING_TYPE_BENTHOS.getValue(),
+ SORTING_TYPE2_ID, QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue()
);
}
@@ -79,8 +86,8 @@
return getSortingBatch(
batch,
"Hors Vrac > Species",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.SORTED_HORS_VRAC.getValue(),
+ SORTING_TYPE_ID, QualitativeValueId.SORTING_TYPE_SPECIES.getValue()
);
}
@@ -88,8 +95,8 @@
return getSortingBatch(
batch,
"Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.SORTED_HORS_VRAC.getValue(),
+ SORTING_TYPE_ID, QualitativeValueId.SORTING_TYPE_BENTHOS.getValue()
);
}
@@ -97,10 +104,10 @@
return getSortingBatch(
batch,
"Hors Vrac > Marine Litter",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_HORS_VRAC.getValue(),
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_MARINE_LITTER.getValue()
);
}
@@ -108,8 +115,8 @@
return getSortingBatch(
batch,
"Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_VRAC_ID
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_VRAC.getValue()
);
}
@@ -117,8 +124,8 @@
return getSortingBatch(
batch,
"Hors Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_HORS_VRAC.getValue()
);
}
@@ -126,8 +133,8 @@
return getSortingBatch(
batch,
"Unsorted",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_UNSORTED_ID
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.UNSORTED.getValue()
);
}
@@ -139,8 +146,8 @@
return getSortingBatch(
batch,
"Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_SPECIES.getValue()
);
}
@@ -148,8 +155,8 @@
return getSortingBatch(
batch,
"Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_BENTHOS.getValue()
);
}
@@ -157,8 +164,8 @@
return getSortingBatch(
batch,
"Vrac > Species > Alive not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_NOT_ITEMIZED.getValue()
);
}
@@ -166,8 +173,8 @@
return getSortingBatch(
batch,
"Vrac > Benthos > Alive not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_NOT_ITEMIZED.getValue()
);
}
@@ -175,8 +182,8 @@
return getSortingBatch(
batch,
"Vrac > Species > Inert (not alive)",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_INERT.getValue()
);
}
@@ -184,8 +191,8 @@
return getSortingBatch(
batch,
"Vrac > Benthos > Inert (not alive)",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_INERT.getValue()
);
}
@@ -193,8 +200,8 @@
return getSortingBatch(
batch,
"Vrac > Species > Alive itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue()
);
}
@@ -202,8 +209,8 @@
return getSortingBatch(
batch,
"Vrac > Benthos > Alive itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue()
);
}
@@ -211,8 +218,8 @@
return getSortingBatch(
batch,
"Hors Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_SPECIES.getValue()
);
}
@@ -220,8 +227,8 @@
return getSortingBatch(
batch,
"Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_BENTHOS.getValue()
);
}
@@ -229,8 +236,8 @@
return getSortingBatch(
batch,
"Hors Vrac > MarineLitter",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_MARINE_LITTER.getValue()
);
}
@@ -245,8 +252,8 @@
batch,
batch,
"Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_VRAC_ID,
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_VRAC.getValue(),
weight,
weightBeforeSampling,
(short) 1
@@ -260,8 +267,8 @@
target,
batch,
"Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_SPECIES.getValue(),
totalWeight,
(short) 1
);
@@ -274,8 +281,8 @@
target,
batch,
"Vrac > Species > Alive Not Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_NOT_ITEMIZED.getValue(),
totalWeight,
(short) 1
);
@@ -288,8 +295,8 @@
target,
batch,
"Vrac > Species > Inert",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_INERT.getValue(),
totalWeight,
(short) 2
);
@@ -301,8 +308,8 @@
target,
batch,
"Vrac > Benthos > Alive Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue(),
null,
(short) 3
);
@@ -315,8 +322,8 @@
target,
batch,
"Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_BENTHOS.getValue(),
totalWeight,
(short) 2
);
@@ -329,8 +336,8 @@
target,
batch,
"Vrac > Benthos > Alive Not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_NOT_ITEMIZED.getValue(),
totalWeight,
(short) 1
);
@@ -343,8 +350,8 @@
target,
batch,
"Vrac > Benthos > Inert",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_INERT.getValue(),
totalWeight,
(short) 2
);
@@ -356,8 +363,8 @@
target,
batch,
"Vrac > Benthos > Alive Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
+ SORTING_TYPE2_ID,
+ QualitativeValueId.SORTING_TYPE2_ALIVE_ITEMIZED.getValue(),
null,
(short) 3
);
@@ -368,8 +375,8 @@
batch,
batch,
"Hors Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID,
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.SORTED_HORS_VRAC.getValue(),
null,
(short) 2
);
@@ -381,8 +388,8 @@
target,
batch,
"Hors Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_SPECIES.getValue(),
null,
(short) 1
);
@@ -394,8 +401,8 @@
target,
batch,
"Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_BENTHOS.getValue(),
null,
(short) 2
);
@@ -408,8 +415,8 @@
target,
batch,
"Hors Vrac > Marine Litter",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER,
+ SORTING_TYPE_ID,
+ QualitativeValueId.SORTING_TYPE_MARINE_LITTER.getValue(),
totalWeight,
(short) 3
);
@@ -422,8 +429,8 @@
batch,
batch,
"Unsorted",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_UNSORTED_ID,
+ PmfmId2.SORTED_UNSORTED.getValue(),
+ QualitativeValueId.UNSORTED.getValue(),
weight,
(short) 3
);
@@ -522,7 +529,7 @@
}
// Some mandatory properties :
- QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
+ QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue());
result.setQualityFlag(qualityFlag);
result.setRootBatch(rootBatch);
result.setParentBatch(batch);
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.administration.user.DepartmentId;
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
@@ -39,8 +40,10 @@
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
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.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
@@ -116,16 +119,16 @@
}
public QuantificationMeasurement setWeightMeasurementQuantificationMeasurement(Batch batch, Float weightValue) {
- return catchBatchDao.setQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), weightValue, true);
+ return catchBatchDao.setQuantificationMeasurement(batch, PmfmId2.WEIGHT_MEASURED.getValue(), getRecorderDepartmentId(), weightValue, true);
}
public QuantificationMeasurement getWeightMeasurementQuantificationMeasurement(Batch batch) {
- QuantificationMeasurement quantificationMeasurement = catchBatchDao.getQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), false);
+ QuantificationMeasurement quantificationMeasurement = catchBatchDao.getQuantificationMeasurement(batch, PmfmId2.WEIGHT_MEASURED.getValue(), getRecorderDepartmentId(), false);
return quantificationMeasurement;
}
public SortingMeasurement getInheritedSortingMeasurement(SortingBatch sortingBatch) {
- return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, enumeration.PMFM_ID_SORTED_UNSORTED);
+ return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, PmfmId2.SORTED_UNSORTED.getValue());
}
//------------------------------------------------------------------------//
@@ -133,10 +136,10 @@
//------------------------------------------------------------------------//
public VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
if (alphanumericalValue != null) {
@@ -179,7 +182,7 @@
} else {
vesselUseFeatures.getVesselUseMeasurements().add(vesselUseMeasurement);
}
- vesselUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ vesselUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
vesselUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
vesselUseMeasurement.setPmfm(load(PmfmImpl.class, pmfmId));
}
@@ -208,10 +211,10 @@
//------------------------------------------------------------------------//
public GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
if (alphanumericalValue != null) {
@@ -255,7 +258,7 @@
} else {
gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
}
- gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
gearUseMeasurement.setPmfm(pmfm);
@@ -328,7 +331,7 @@
Integer qualitativevalueId) {
SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
result.setDepartment(fishingTrip.getRecorderDepartment());
Pmfm pmfm = load(PmfmImpl.class, pmfmId);
result.setPmfm(pmfm);
@@ -369,6 +372,6 @@
protected Integer getRecorderDepartmentId() {
// TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
- return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
+ return DepartmentId.UNKOWN_RECODER_DEPARTMENT.getValue();
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -28,11 +28,12 @@
import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
import fr.ifremer.adagio.core.dao.data.sample.Sample;
import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagCode;
import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
@@ -85,7 +86,7 @@
sample.getSampleMeasurements().clear();
sampleDao.remove(sample);
attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.SAMPLE,
+ ObjectTypeCode2.SAMPLE,
sampleId);
}
}
@@ -169,7 +170,7 @@
} else {
sample.getSampleMeasurements().add(result);
}
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setQualityFlag(load(QualityFlagImpl.class, QualityFlagCode.NOTQUALIFIED.getValue()));
result.setDepartment(sample.getRecorderDepartment());
result.setPmfm(load(PmfmImpl.class, pmfmId));
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -30,6 +30,7 @@
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleId;
import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleImpl;
import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
import org.apache.commons.logging.Log;
@@ -56,15 +57,15 @@
}
public VesselPersonRole getScientificCruiseManagerRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER);
+ return load(VesselPersonRoleImpl.class, VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER.getValue());
}
public VesselPersonRole getSortRoomManagerRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER);
+ return load(VesselPersonRoleImpl.class, VesselPersonRoleId.SORT_ROOM_MANAGER.getValue());
}
public VesselPersonRole getRecorderPersonRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON);
+ return load(VesselPersonRoleImpl.class, VesselPersonRoleId.RECORDER_PERSON.getValue());
}
public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseFixtures.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -73,7 +73,7 @@
public class DatabaseFixtures {
public Version lastAdagioSchemaVersion() {
- return VersionUtil.valueOf("3.4.1");
+ return VersionUtil.valueOf("3.5.0");
}
public Version currentAdagioSchemaVersion() {
Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2014-04-24 10:17:09 UTC (rev 1725)
@@ -36,9 +36,6 @@
<bean id="tuttiPersistence"
class="fr.ifremer.tutti.persistence.TuttiPersistenceImpl"/>
- <bean id="tuttiEnumerationFile" init-method="init"
- class="fr.ifremer.tutti.persistence.service.TuttiEnumerationFile"/>
-
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Caches management for tutti (not defined in adagio-core files) -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
@@ -47,26 +44,18 @@
<bean id="tuttiProgramsCache" parent="abstractEternalCache">
<property name="cacheName" value="programs" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiProgramZonesCache" parent="abstractEternalCache">
<property name="cacheName" value="programZones" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="countriesCache" parent="abstractEternalCache">
<property name="cacheName" value="countries" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="harboursCache" parent="abstractEternalCache">
<property name="cacheName" value="harbours" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPmfmsCache" parent="abstractEternalCache">
@@ -90,56 +79,38 @@
<bean id="tuttiFishingVesselsCache" parent="abstractEternalCache">
<property name="cacheName" value="fishingVessels" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiFishingVesselByCodeCache" parent="abstractEternalCache">
<property name="cacheName" value="vesselByCode" />
- <!--<property name="maxElementsInMemory" value="40000"/>-->
- <!--<property name="maxElementsOnDisk" value="40000"/>-->
</bean>
<bean id="tuttiSpeciesCache" parent="abstractEternalCache">
<property name="cacheName" value="species" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiReferentSpeciesCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpecies" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiReferentSpeciesByIdCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpeciesById" />
- <!--<property name="maxElementsInMemory" value="20000"/>-->
- <!--<property name="maxElementsOnDisk" value="20000"/>-->
</bean>
<bean id="tuttiReferentSpeciesByIdVenacularCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpeciesByIdVernacular" />
- <!--<property name="maxElementsInMemory" value="20000"/>-->
- <!--<property name="maxElementsOnDisk" value="20000"/>-->
</bean>
<bean id="tuttiGearsCache" parent="abstractEternalCache">
<property name="cacheName" value="gears" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPersonsCache" parent="abstractEternalCache">
<property name="cacheName" value="persons" />
- <!--<property name="maxElementsInMemory" value="1"/>-->
- <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPersonByIdCache" parent="abstractEternalCache">
<property name="cacheName" value="personById" />
- <!--<property name="maxElementsInMemory" value="1000"/>-->
- <!--<property name="maxElementsOnDisk" value="1000"/>-->
</bean>
</beans>
\ No newline at end of file
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-04-24 10:17:09 UTC (rev 1725)
@@ -1,3 +1,43 @@
+adagio.enumeration.MatrixId.PRODUCT_BATCH.description=
+adagio.enumeration.ObjectTypeCode.ACTIVITY_CALENDAR.description=
+adagio.enumeration.ObjectTypeCode.BATCH.description=
+adagio.enumeration.ObjectTypeCode.CATCH_BATCH.description=
+adagio.enumeration.ObjectTypeCode.DAILY_ACTIVITY_CALENDAR.description=
+adagio.enumeration.ObjectTypeCode.FISHING_TRIP.description=
+adagio.enumeration.ObjectTypeCode.LANDING.description=
+adagio.enumeration.ObjectTypeCode.OPERATION.description=
+adagio.enumeration.ObjectTypeCode.SALE.description=
+adagio.enumeration.ObjectTypeCode.SAMPLE.description=
+adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE.description=
+adagio.enumeration.PmfmId.AGE.description=
+adagio.enumeration.PmfmId.DEAD_OR_ALIVE.description=
+adagio.enumeration.PmfmId.HAUL_VALID.description=
+adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR.description=
+adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS.description=
+adagio.enumeration.PmfmId.ID_PSFM.description=
+adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY.description=
+adagio.enumeration.PmfmId.MARINE_LITTER_TYPE.description=
+adagio.enumeration.PmfmId.MATURITY.description=
+adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION.description=
+adagio.enumeration.PmfmId.MULTIRIG_NUMBER.description=
+adagio.enumeration.PmfmId.RECTILINEAR_OPERATION.description=
+adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE.description=
+adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2.description=
+adagio.enumeration.PmfmId.SEX.description=
+adagio.enumeration.PmfmId.SIZE_CATEGORY.description=
+adagio.enumeration.PmfmId.SORTED_UNSORTED.description=
+adagio.enumeration.PmfmId.SORTING_TYPE_TCC.description=
+adagio.enumeration.PmfmId.STATION_NUMBER.description=
+adagio.enumeration.PmfmId.SURVEY_PART.description=
+adagio.enumeration.PmfmId.TRAWL_DISTANCE.description=
+adagio.enumeration.PmfmId.VERTICAL_OPENING.description=
+adagio.enumeration.PmfmId.WEIGHT_MEASURED.description=
+adagio.enumeration.QualitativeValueId.MATURITY_1.description=
+adagio.enumeration.QualitativeValueId.MATURITY_2.description=
+adagio.enumeration.QualitativeValueId.MATURITY_3.description=
+adagio.enumeration.QualitativeValueId.MATURITY_4.description=
+adagio.enumeration.QualitativeValueId.MATURITY_5.description=
+adagio.enumeration.QualitativeValueId.SEX_UNDEFINED.description=
application.common.unit=Unit
application.common.unit.g=Gram
application.common.unit.kg=Kilogram
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-04-24 10:17:09 UTC (rev 1725)
@@ -1,3 +1,43 @@
+adagio.enumeration.MatrixId.PRODUCT_BATCH.description=
+adagio.enumeration.ObjectTypeCode.ACTIVITY_CALENDAR.description=
+adagio.enumeration.ObjectTypeCode.BATCH.description=
+adagio.enumeration.ObjectTypeCode.CATCH_BATCH.description=
+adagio.enumeration.ObjectTypeCode.DAILY_ACTIVITY_CALENDAR.description=
+adagio.enumeration.ObjectTypeCode.FISHING_TRIP.description=
+adagio.enumeration.ObjectTypeCode.LANDING.description=
+adagio.enumeration.ObjectTypeCode.OPERATION.description=
+adagio.enumeration.ObjectTypeCode.SALE.description=
+adagio.enumeration.ObjectTypeCode.SAMPLE.description=
+adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE.description=
+adagio.enumeration.PmfmId.AGE.description=
+adagio.enumeration.PmfmId.DEAD_OR_ALIVE.description=
+adagio.enumeration.PmfmId.HAUL_VALID.description=
+adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR.description=
+adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS.description=
+adagio.enumeration.PmfmId.ID_PSFM.description=
+adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY.description=
+adagio.enumeration.PmfmId.MARINE_LITTER_TYPE.description=
+adagio.enumeration.PmfmId.MATURITY.description=
+adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION.description=
+adagio.enumeration.PmfmId.MULTIRIG_NUMBER.description=
+adagio.enumeration.PmfmId.RECTILINEAR_OPERATION.description=
+adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE.description=
+adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE2.description=
+adagio.enumeration.PmfmId.SEX.description=
+adagio.enumeration.PmfmId.SIZE_CATEGORY.description=
+adagio.enumeration.PmfmId.SORTED_UNSORTED.description=
+adagio.enumeration.PmfmId.SORTING_TYPE_TCC.description=
+adagio.enumeration.PmfmId.STATION_NUMBER.description=
+adagio.enumeration.PmfmId.SURVEY_PART.description=
+adagio.enumeration.PmfmId.TRAWL_DISTANCE.description=
+adagio.enumeration.PmfmId.VERTICAL_OPENING.description=
+adagio.enumeration.PmfmId.WEIGHT_MEASURED.description=
+adagio.enumeration.QualitativeValueId.MATURITY_1.description=
+adagio.enumeration.QualitativeValueId.MATURITY_2.description=
+adagio.enumeration.QualitativeValueId.MATURITY_3.description=
+adagio.enumeration.QualitativeValueId.MATURITY_4.description=
+adagio.enumeration.QualitativeValueId.MATURITY_5.description=
+adagio.enumeration.QualitativeValueId.SEX_UNDEFINED.description=
application.common.unit=Unité
application.common.unit.g=Gramme
application.common.unit.kg=Kilogramme
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2014-04-24 10:17:09 UTC (rev 1725)
@@ -22,130 +22,24 @@
# #L%
###
-#MatrixId.SUPPORT_WITH_GEAR=17
-#MatrixId.SUPPORT_WITH_METIER=18
-#LocationLevelId.RECTANGLE_STATISTIQUE_MED=145
-
################################################################################
### Ajout pour Tutti ###########################################################
################################################################################
-# zone d'étude SCIENTIFIC_CRUISE_PROGRAM
-#LocationLevelId.PROGRAM=301
-# strate SCIENTIFIC_CRUISE_STRATA
-#LocationLevelId.STRATA=302
-# sous strate SCIENTIFIC_CRUISE_SUB_STRATA
-#LocationLevelId.SUB_STRATA=303
-# localité SCIENTIFIC_CRUISE_LOCALITE
-#LocationLevelId.LOCALITE=304
-# radiale SCIENTIFIC_CRUISE_RADIALE
-#LocationLevelId.RADIALE=305
+# PSFM "Pour référencer un autre id de pmfm"
+PmfmId.ID_PSFM=1433
-# Catégorie Sex
-#PmfmId.SEX=196
-QualitativeValueId.SEX_UNDEFINED=299
-#QualitativeValueId.SEX_MALE=300
-#QualitativeValueId.SEX_FEMALE=301
+MatrixId.PRODUCT_BATCH=1
-# Catégorie classe de tri
-#PmfmId.SIZE_CATEGORY=198
-#QualitativeValueId.SIZE_SMALL=307
-#QualitativeValueId.SIZE_MEDIUM=306
-#QualitativeValueId.SIZE_BIG=305
+ObjectTypeCode.CATCH_BATCH=CATCH_BATCH
-# Catégorie Age
-#PmfmId.AGE=1430
-# Catégorie maturité
-#PmfmId.MATURITY=174
+QualitativeValueId.SEX_UNDEFINED=299
QualitativeValueId.MATURITY_1=272
QualitativeValueId.MATURITY_2=273
QualitativeValueId.MATURITY_3=274
QualitativeValueId.MATURITY_4=275
QualitativeValueId.MATURITY_5=276
-
-# Catégorie macro-déchet
-#PmfmId.MARINE_LITTER_TYPE=1421
-# Classe de taille macro-déchet
-#PmfmId.MARINE_LITTER_SIZE_CATEGORY=1422
-
-# Pour stocker Cruise.surveyPart
-#PmfmId.SURVEY_PART=1432
-
-#PmfmId.STATION_NUMBER=1243
-#PmfmId.TRAWL_DISTANCE=113
-
-#PmfmId.HAUL_VALID=1163
-#QualitativeValueId.HAUL_VALID_YES=1575
-#QualitativeValueId.HAUL_VALID_NO=1576
-
-#PmfmId.RECTILINEAR_OPERATION=192
-#QualitativeValueId.RECTILINEAR_OPERATION_YES=277
-#QualitativeValueId.RECTILINEAR_OPERATION_NO=278
-
-# PSFM "Nombre de poche" d'un chalut (écran campagne)
-#PmfmId.MULTIRIG_NUMBER=1420
-# PSFM "Liste des poches observées" (écran opération)
-#PmfmId.MULTIRIG_AGGREGATION=1424
-
-# PSFM "Poids - observation par une observateur" (écran captures, onglet espèce, benthos, etc)
-#PmfmId.WEIGHT_MEASURED=220
-
-# PSFM "Vrac/Hors Vrac" - "Organisation des données campagnes"
-#PmfmId.SORTED_UNSORTED=1428
-#QualitativeValueId.SORTED_VRAC=311
-#QualitativeValueId.SORTED_HORS_VRAC=310
-#QualitativeValueId.UNSORTED=2146
-
-#PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE=1429
-#QualitativeValueId.SORTING_TYPE_SPECIES=2147
-#QualitativeValueId.SORTING_TYPE_BENTHOS=2148
-#QualitativeValueId.SORTING_TYPE_PLANCTON=2149
-#QualitativeValueId.SORTING_TYPE_MARINE_LITTER=2150
-#QualitativeValueId.SORTING_TYPE_ACCIDENTAL_CATCH=2151
-
-PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE_2=1431
QualitativeValueId.SORTING_TYPE_2_ALIVE_NOT_ITEMIZED=2161
QualitativeValueId.SORTING_TYPE_2_INERT=2162
QualitativeValueId.SORTING_TYPE_2_ALIVE_ITEMIZED=2160
-
-# PSFM "Ouverture verticale (chalut ou drague)" (pour export operation)
-#PmfmId.VERTICAL_OPENING=832
-# PSFM "Ouverture Horizontale aux pointes d'ailes" (pour export operation)
-#PmfmId.HORIZONTAL_OPENING_WING=827
-# PSFM "Ouverture horizontale aux panneaux" (pour export operation)
-#PmfmId.HORIZONTAL_OPENING_DOOR=830
-
-#PSFM "Remis à l'eau mort ou vivant"
-#PmfmId.DEAD_OR_ALIVE=1393
-
-# PSFM "Pour référencer un autre id de pmfm"
-PmfmId.ID_PSFM=1433
-
-PmfmId.SAMPLE_ID=1435
-
-PmfmId.OTOLITHE_ID=1436
-
-# (20=observateur volant, 95=Administrateur SIH) -> L'avantage du 20 est qu'il est inactif (=20), donc plus facilement detectable
-#PersonId.UNKNOWN_RECORDER_PERSON=20
-
UserProfilId.DEPARTEMENT_PREFIX=PDG-
-
-# 181=PDG-RBE (à confirmer par Vincent)
-#DepartmentId.UNKNOWN_RECORDER_DEPARTMENT=181
-
-#ProgramCode.SCIENTIFIC_CRUISE_PREFIX=CAM-
-
-#ObjectTypeCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
-#ObjectTypeCode.OPERATION=OPERATION
-ObjectTypeCode.CATCH_BATCH=CATCH_BATCH
-#ObjectTypeCode.BATCH=BATCH
-#ObjectTypeCode.SAMPLE=SAMPLE
-
-#VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER=2
-#VesselPersonRoleId.SORT_ROOM_MANAGER=3
-#VesselPersonRoleId.RECORDER_PERSON=4
-
-TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE=55
-TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE=56
-
-MatrixId.PRODUCT_BATCH=1
\ No newline at end of file
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: 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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,7 +27,6 @@
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;
@@ -168,16 +167,16 @@
Files.write(PROTOCOL_FILE_CONTENT, file, Charsets.UTF_8);
- TuttiEnumerationFile enumeration = new TuttiEnumerationFile();
+// 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);
- 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(file);
- TuttiProtocol protocol = TuttiProtocols.fromFile(enumeration, file);
-
Assert.assertNotNull(protocol);
Assert.assertEquals("1", protocol.getId());
Assert.assertEquals("protocolName", protocol.getName());
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Attachments;
import fr.ifremer.tutti.persistence.test.DatabaseResource;
@@ -62,7 +62,7 @@
Integer cruiseId = Integer.valueOf(dbResource.getFixtures().cruiseId());
allAttachments = service.getAllAttachments(
- AttachementObjectTypeEnum.SCIENTIFIC_CRUISE, cruiseId);
+ ObjectTypeCode2.SCIENTIFIC_CRUISE, cruiseId);
Assert.assertTrue(allAttachments.isEmpty());
//
@@ -70,7 +70,7 @@
//
Attachment attachment = Attachments.newAttachment();
- attachment.setObjectType(AttachementObjectTypeEnum.SCIENTIFIC_CRUISE);
+ attachment.setObjectType(ObjectTypeCode2.SCIENTIFIC_CRUISE);
attachment.setObjectId(cruiseId);
long buildTime = System.nanoTime();
attachment.setName("AttachmentName-" + buildTime);
@@ -93,7 +93,7 @@
//
allAttachments = service.getAllAttachments(
- AttachementObjectTypeEnum.SCIENTIFIC_CRUISE, cruiseId);
+ ObjectTypeCode2.SCIENTIFIC_CRUISE, cruiseId);
Assert.assertFalse(allAttachments.isEmpty());
Assert.assertEquals(1, allAttachments.size());
@@ -115,7 +115,7 @@
//
allAttachments = service.getAllAttachments(
- AttachementObjectTypeEnum.SCIENTIFIC_CRUISE, cruiseId);
+ ObjectTypeCode2.SCIENTIFIC_CRUISE, cruiseId);
Assert.assertFalse(allAttachments.isEmpty());
Assert.assertEquals(1, allAttachments.size());
@@ -128,7 +128,7 @@
service.deleteAttachment(attachment.getId());
allAttachments = service.getAllAttachments(
- AttachementObjectTypeEnum.SCIENTIFIC_CRUISE, cruiseId);
+ ObjectTypeCode2.SCIENTIFIC_CRUISE, cruiseId);
Assert.assertTrue(allAttachments.isEmpty());
Assert.assertFalse(attachmentFile.exists());
}
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -63,11 +64,8 @@
protected FishingOperation fishingOperation;
- protected TuttiEnumerationFile enumerationFile;
-
@Before
public void setUp() throws Exception {
- enumerationFile = TuttiPersistenceServiceLocator.getTechnicalPersistenceService().getEnumerationFile();
service = TuttiPersistenceServiceLocator.getBenthosBatchPersistenceService();
fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
@@ -120,7 +118,7 @@
// Check species only if Vrac/HorsVrac or if batch has been load throw getAllxxx method
// (Because getBenthosBatch(id) could not always retrieve the species)
if (expectedBatch.getSpecies() != null && (
- enumerationFile.PMFM_ID_SORTED_UNSORTED.equals(expectedBatch.getSampleCategoryId())
+ PmfmId2.SORTED_UNSORTED.getValue().equals(expectedBatch.getSampleCategoryId())
|| actualBatch.getSpecies() != null)) {
assertNotNull(actualBatch.getSpecies());
assertEquals(expectedBatch.getSpecies().getId(), actualBatch.getSpecies().getId());
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,6 +26,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequencys;
@@ -114,8 +115,6 @@
protected Caracteristic frequencyPMFM;
- protected TuttiEnumerationFile enumerationFile;
-
@Before
public void setUp() throws Exception {
@@ -124,7 +123,6 @@
catchBatchService = TuttiPersistenceServiceLocator.getCatchBatchPersistenceService();
fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
referentialService = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
- enumerationFile = TuttiPersistenceServiceLocator.getTechnicalPersistenceService().getEnumerationFile();
species = referentialService.getAllSpecies();
assertNotNull(species);
@@ -221,7 +219,7 @@
batch.setParentBatch(null);
batch.setFishingOperation(fishingOperationNoCatchBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(5f);
@@ -239,7 +237,7 @@
batch.setParentBatch(esp1Batch);
batch.setSpecies(taxon1);
batch.setComment("ESP1 - Vrac/5 Male/2 ss-ech/1 Nombre/7");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(maleQualitativeValue);
batch.setSampleCategoryWeight(2f);
batch.setWeight(1f);
@@ -256,7 +254,7 @@
batch.setParentBatch(esp1Batch);
batch.setSpecies(taxon1);
batch.setComment("ESP1 - Vrac/5 Female/3 Nombre/14");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(femaleQualitativeValue);
batch.setSampleCategoryWeight(3f);
batch.setWeight(null);
@@ -272,7 +270,7 @@
batch = BenthosBatchs.newBenthosBatch();
batch.setParentBatch(null);
batch.setSpecies(taxon2);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(7f);
@@ -285,7 +283,7 @@
batch.setParentBatch(esp2Batch);
batch.setSpecies(taxon2);
batch.setComment("ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_MATURITY);
+ batch.setSampleCategoryId(PmfmId2.MATURITY.getValue());
batch.setSampleCategoryValue(firstMaturityQualitativeValue);
batch.setSampleCategoryWeight(2f);
batch.setWeight(1f);
@@ -298,7 +296,7 @@
// -----------------------------------------------------------------------------
// Batch : ESP2 - Vrac/7 UNK/1.75 ss-ech/1.11 Nombre/99
batch.setComment("ESP2 - Vrac/7 UNK/1.75 ss-ech/1.11 Nombre/99");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(unkQualitativeValue);
batch.setSampleCategoryWeight(1.75f);
batch.setWeight(1.11f);
@@ -384,7 +382,7 @@
batch.setParentBatch(null);
batch.setFishingOperation(fishingOperationWithEmptyBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(5f);
assertCreateAndReloadBenthosBatch(batch, null);
@@ -395,7 +393,7 @@
batch.setParentBatch(esp1Batch);
batch.setFishingOperation(fishingOperationWithEmptyBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(maleQualitativeValue);
batch.setSampleCategoryWeight(2f);
assertCreateAndReloadBenthosBatch(batch, esp1Batch.getId());
@@ -458,7 +456,7 @@
// Check species only if Vrac/HorsVrac or if batch has been load throw getAllxxx method
// (Because getBenthosBatch(id) could not always retrieve the species)
if (expectedBatch.getSpecies() != null && (
- enumerationFile.PMFM_ID_SORTED_UNSORTED.equals(expectedBatch.getSampleCategoryId())
+ PmfmId2.SORTED_UNSORTED.getValue().equals(expectedBatch.getSampleCategoryId())
|| actualBatch.getSpecies() != null)) {
assertNotNull(actualBatch.getSpecies());
assertEquals(expectedBatch.getSpecies().getId(), actualBatch.getSpecies().getId());
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -62,11 +63,8 @@
protected FishingOperation fishingOperation;
- protected TuttiEnumerationFile enumerationFile;
-
@Before
public void setUp() throws Exception {
- enumerationFile = TuttiPersistenceServiceLocator.getTechnicalPersistenceService().getEnumerationFile();
service = TuttiPersistenceServiceLocator.getSpeciesBatchPersistenceService();
fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
@@ -124,7 +122,7 @@
// Check species only if Vrac/HorsVrac or if batch has been load throw getAllxxx method
// (Because getSpeciesBatch(id) could not always retrieve the species)
if (expectedBatch.getSpecies() != null && (
- enumerationFile.PMFM_ID_SORTED_UNSORTED.equals(expectedBatch.getSampleCategoryId())
+ PmfmId2.SORTED_UNSORTED.getValue().equals(expectedBatch.getSampleCategoryId())
|| actualBatch.getSpecies() != null)) {
assertNotNull(actualBatch.getSpecies());
assertEquals(expectedBatch.getSpecies().getId(), actualBatch.getSpecies().getId());
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,6 +26,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatchs;
@@ -105,8 +106,6 @@
protected Caracteristic frequencyPMFM;
- protected TuttiEnumerationFile enumerationFile;
-
@Before
public void setUp() throws Exception {
@@ -116,7 +115,6 @@
CatchBatchPersistenceService catchBatchService = TuttiPersistenceServiceLocator.getCatchBatchPersistenceService();
FishingOperationPersistenceService fishingOperationService = TuttiPersistenceServiceLocator.getFishingOperationPersistenceService();
ReferentialPersistenceService referentialService = TuttiPersistenceServiceLocator.getReferentialPersistenceService();
- enumerationFile = TuttiPersistenceServiceLocator.getTechnicalPersistenceService().getEnumerationFile();
species = referentialService.getAllSpecies();
assertNotNull(species);
@@ -213,7 +211,7 @@
batch.setParentBatch(null);
batch.setFishingOperation(fishingOperationNoCatchBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(5f);
@@ -231,7 +229,7 @@
batch.setParentBatch(esp1Batch);
batch.setSpecies(taxon1);
batch.setComment("ESP1 - Vrac/5 Male/2 ss-ech/1 Nombre/7");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(maleQualitativeValue);
batch.setSampleCategoryWeight(2f);
batch.setWeight(1f);
@@ -248,7 +246,7 @@
batch.setParentBatch(esp1Batch);
batch.setSpecies(taxon1);
batch.setComment("ESP1 - Vrac/5 Female/3 Nombre/14");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(femaleQualitativeValue);
batch.setSampleCategoryWeight(3f);
batch.setWeight(null);
@@ -264,7 +262,7 @@
batch = SpeciesBatchs.newSpeciesBatch();
batch.setParentBatch(null);
batch.setSpecies(taxon2);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(7f);
@@ -277,7 +275,7 @@
batch.setParentBatch(esp2Batch);
batch.setSpecies(taxon2);
batch.setComment("ESP2 - Vrac/7 UNK/2 ss-ech/1 Nombre/11");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_MATURITY);
+ batch.setSampleCategoryId(PmfmId2.MATURITY.getValue());
batch.setSampleCategoryValue(firstMaturityQualitativeValue);
batch.setSampleCategoryWeight(2f);
batch.setWeight(1f);
@@ -290,7 +288,7 @@
// -----------------------------------------------------------------------------
// Batch : ESP2 - Vrac/7 UNK/1.75 ss-ech/1.11 Nombre/99
batch.setComment("ESP2 - Vrac/7 UNK/1.75 ss-ech/1.11 Nombre/99");
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(unkQualitativeValue);
batch.setSampleCategoryWeight(1.75f);
batch.setWeight(1.11f);
@@ -318,7 +316,7 @@
// -----------------------------------------------------------------------------
// 7. Test get all root species
// -----------------------------------------------------------------------------
- BatchContainer<SpeciesBatch> rootSpeciesBatc = service.getRootSpeciesBatch(fishingOperationWithEmptyBatch.getId(),false );
+ BatchContainer<SpeciesBatch> rootSpeciesBatc = service.getRootSpeciesBatch(fishingOperationWithEmptyBatch.getId(), false);
List<SpeciesBatch> rootSpeciesBatch = rootSpeciesBatc.getChildren();
assertNotNull(rootSpeciesBatch);
assertEquals(2, rootSpeciesBatch.size());
@@ -377,7 +375,7 @@
batch.setParentBatch(null);
batch.setFishingOperation(fishingOperationWithEmptyBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SORTED_UNSORTED);
+ batch.setSampleCategoryId(PmfmId2.SORTED_UNSORTED.getValue());
batch.setSampleCategoryValue(vracQualitativeValue);
batch.setSampleCategoryWeight(5f);
assertCreateAndReloadSpeciesBatch(batch, null);
@@ -388,7 +386,7 @@
batch.setParentBatch(esp1Batch);
batch.setFishingOperation(fishingOperationWithEmptyBatch);
batch.setSpecies(taxon1);
- batch.setSampleCategoryId(enumerationFile.PMFM_ID_SEX);
+ batch.setSampleCategoryId(PmfmId2.SEX.getValue());
batch.setSampleCategoryValue(maleQualitativeValue);
batch.setSampleCategoryWeight(2f);
assertCreateAndReloadSpeciesBatch(batch, esp1Batch.getId());
@@ -451,7 +449,7 @@
// Check species only if Vrac/HorsVrac or if batch has been load throw getAllxxx method
// (Because getSpeciesBatch(id) could not always retrieve the species)
if (expectedBatch.getSpecies() != null && (
- enumerationFile.PMFM_ID_SORTED_UNSORTED.equals(expectedBatch.getSampleCategoryId())
+ PmfmId2.SORTED_UNSORTED.getValue().equals(expectedBatch.getSampleCategoryId())
|| actualBatch.getSpecies() != null)) {
assertNotNull(actualBatch.getSpecies());
assertEquals(expectedBatch.getSpecies().getId(), actualBatch.getSpecies().getId());
Deleted: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFileTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFileTest.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFileTest.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -1,53 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%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 fr.ifremer.tutti.persistence.test.DatabaseResource;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-/**
- * This test load the {@link TuttiEnumerationFile} via Spring and then
- * validates that we miss not constant.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @see TuttiEnumerationFile#init()
- * @since 1.0
- */
-public class TuttiEnumerationFileTest {
-
- @ClassRule
- public static final DatabaseResource dbResource = DatabaseResource.noDb();
-
- @Test
- public void init() {
-
- TuttiEnumerationFile file =
- TuttiPersistenceServiceLocator.getTuttiEnumerationFile();
- Assert.assertNotNull(file);
- }
-
-}
Modified: trunk/tutti-service/pom.xml
===================================================================
--- trunk/tutti-service/pom.xml 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/pom.xml 2014-04-24 10:17:09 UTC (rev 1725)
@@ -48,6 +48,12 @@
<version>${project.version}</version>
</dependency>
+ <!-- Adagio -->
+ <dependency>
+ <groupId>fr.ifremer.adagio</groupId>
+ <artifactId>adagio-core-allegro</artifactId>
+ </dependency>
+
<!-- JAXX -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -30,6 +30,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.TuttiPersistence;
@@ -37,7 +38,6 @@
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.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
@@ -62,7 +62,6 @@
import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.IOUtils;
@@ -190,11 +189,6 @@
}
@Override
- public TuttiEnumerationFile getEnumerationFile() {
- return driver.getEnumerationFile();
- }
-
- @Override
public <V> V invoke(Callable<V> call) {
return driver.invoke(call);
}
@@ -219,11 +213,6 @@
driver.sanityDb();
}
- @Override
- public void clearCache(String cacheName) {
- driver.clearCache(cacheName);
- }
-
public static final DateFormat EXPORT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
public static final String EXPORT_DIRECTORY_FORMAT = "tutti-%s-%s";
@@ -950,7 +939,7 @@
//------------------------------------------------------------------------//
@Override
- public List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
+ public List<Attachment> getAllAttachments(ObjectTypeCode2 objectType,
Integer objectId) {
return driver.getAllAttachments(objectType, objectId);
}
@@ -976,7 +965,7 @@
}
@Override
- public void deleteAllAttachment(AttachementObjectTypeEnum objectType, Integer... objectIds) {
+ public void deleteAllAttachment(ObjectTypeCode2 objectType, Integer... objectIds) {
driver.deleteAllAttachment(objectType, objectIds);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,9 +27,9 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
@@ -246,7 +246,7 @@
addAttachments(id,
batch.getIdAsInt(),
- AttachementObjectTypeEnum.BATCH,
+ ObjectTypeCode2.BATCH,
attachmentRows);
}
@@ -331,7 +331,7 @@
caracteristicRows.add(caracteristicRow);
}
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.SAMPLE, attachmentRows);
+ addAttachments(id, batch.getIdAsInt(), ObjectTypeCode2.SAMPLE, attachmentRows);
}
File directory = Files.createTempDir();
@@ -420,7 +420,7 @@
caracteristicRows.add(caracteristicRow);
}
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.SAMPLE, attachmentRows);
+ addAttachments(id, batch.getIdAsInt(), ObjectTypeCode2.SAMPLE, attachmentRows);
}
// export accidental catches
@@ -538,7 +538,7 @@
rows.add(row);
addFrequencies(id, batch.getId(), frequencyRows);
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.BATCH, attachmentRows);
+ addAttachments(id, batch.getIdAsInt(), ObjectTypeCode2.BATCH, attachmentRows);
for (SpeciesBatch child : batch.getChildBatchs()) {
createSpeciesRow(child, id, rows, frequencyRows, attachmentRows);
@@ -568,7 +568,7 @@
rows.add(row);
addFrequencies(id, batch.getId(), frequencyRows);
- addAttachments(id, batch.getIdAsInt(), AttachementObjectTypeEnum.BATCH, attachmentRows);
+ addAttachments(id, batch.getIdAsInt(), ObjectTypeCode2.BATCH, attachmentRows);
for (BenthosBatch child : batch.getChildBatchs()) {
createBenthosRow(child, id, rows, frequencyRows, attachmentRows);
@@ -600,7 +600,7 @@
protected void addAttachments(String batchId,
int objectId,
- AttachementObjectTypeEnum objectType,
+ ObjectTypeCode2 objectType,
List<AttachmentRow> attachmentRows) {
List<Attachment> attachments =
persistenceService.getAllAttachments(objectType, objectId);
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -29,14 +29,12 @@
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Maps;
-import org.nuiton.jaxx.application.ApplicationBusinessException;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
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;
@@ -70,6 +68,8 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.nuiton.csv.Import;
+import org.nuiton.jaxx.application.ApplicationBusinessException;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
import java.io.File;
import java.io.Reader;
@@ -81,8 +81,8 @@
import java.util.Map;
import java.util.concurrent.Callable;
+import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
-import static org.nuiton.i18n.I18n.n;
/**
* Service to export batches from a satellite post or import batches
@@ -211,7 +211,7 @@
importAttachments(tempDir,
batches,
notImportedBatches,
- AttachementObjectTypeEnum.BATCH);
+ ObjectTypeCode2.BATCH);
// Import weights
@@ -477,7 +477,7 @@
importAttachments(tempDir,
batches,
notImportedBatches,
- AttachementObjectTypeEnum.BATCH);
+ ObjectTypeCode2.BATCH);
// Import weights
@@ -736,7 +736,7 @@
importAttachments(tempDir,
batches,
notImportedBatches,
- AttachementObjectTypeEnum.BATCH);
+ ObjectTypeCode2.BATCH);
// Import weights
@@ -904,7 +904,7 @@
// Import attachments
- importAttachments(tempDir, batches, AttachementObjectTypeEnum.SAMPLE);
+ importAttachments(tempDir, batches, ObjectTypeCode2.SAMPLE);
return null;
}
};
@@ -1061,7 +1061,7 @@
// Import attachments
- importAttachments(tempDir, batches, AttachementObjectTypeEnum.SAMPLE);
+ importAttachments(tempDir, batches, ObjectTypeCode2.SAMPLE);
return null;
}
};
@@ -1214,7 +1214,8 @@
throw new ApplicationBusinessException(t("tutti.service.multipost.import.wrongOperation.error",
decoratorService.getDecoratorByType(FishingOperation.class)
- .toString(operation)));
+ .toString(operation)
+ ));
}
}
} finally {
@@ -1228,7 +1229,7 @@
protected <R extends TuttiEntity> void importAttachments(File directory,
final Map<String, R> data,
final Map<String, R> notImportedData,
- AttachementObjectTypeEnum objectType) {
+ ObjectTypeCode2 objectType) {
Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
@Override
@@ -1292,7 +1293,7 @@
protected <R extends TuttiEntity> void importAttachments(File directory,
final Map<String, R> data,
- AttachementObjectTypeEnum objectType) {
+ ObjectTypeCode2 objectType) {
Function<AttachmentRow, Integer> getObjetcIdFunction = new Function<AttachmentRow, Integer>() {
@Override
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -38,7 +38,6 @@
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.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
@@ -75,21 +74,12 @@
private static final Log log =
LogFactory.getLog(ProtocolImportExportService.class);
- protected TuttiEnumerationFile enumerationFile;
-
- @Override
- public void setServiceContext(TuttiServiceContext context) {
- super.setServiceContext(context);
- PersistenceService service = getService(PersistenceService.class);
- enumerationFile = service.getEnumerationFile();
- }
-
public void exportProtocol(TuttiProtocol protocol, File file) {
TuttiProtocols.toFile(protocol, file);
}
public TuttiProtocol importProtocol(File file) {
- TuttiProtocol result = TuttiProtocols.fromFile(enumerationFile, file);
+ TuttiProtocol result = TuttiProtocols.fromFile(file);
return result;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -31,8 +31,11 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.common.io.Files;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId2;
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;
@@ -48,7 +51,6 @@
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.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
@@ -111,8 +113,6 @@
protected PersistenceService persistenceService;
- protected TuttiEnumerationFile enumerationFile;
-
protected CaracteristicQualitativeValue sortedCaracteristic;
protected CaracteristicQualitativeValue unsortedCaracteristic;
@@ -128,14 +128,12 @@
super.setServiceContext(context);
persistenceService = getService(PersistenceService.class);
- enumerationFile = persistenceService.getEnumerationFile();
-
{ // sorted/unsorted caracteristic
Caracteristic caracteristic =
persistenceService.getSortedUnsortedCaracteristic();
- sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, enumerationFile.QUALITATIVE_VRAC_ID);
- unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, enumerationFile.QUALITATIVE_HORS_VRAC_ID);
+ sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue());
+ unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue());
}
{ // sex caracteristic
@@ -147,13 +145,13 @@
List<CaracteristicQualitativeValue> qualitativeValues = caracteristic.getQualitativeValue();
Map<Integer, CaracteristicQualitativeValue> sexById = TuttiEntities.splitByIdAsInt(qualitativeValues);
- CaracteristicQualitativeValue femaleCaracteristic = sexById.get(enumerationFile.QUALITATIVE_SEX_FEMALE_ID);
+ CaracteristicQualitativeValue femaleCaracteristic = sexById.get(QualitativeValueId.SEX_FEMALE.getValue());
sexCaracteristicValues.put("F", femaleCaracteristic);
sexCaracteristicValues.put("f", femaleCaracteristic);
- CaracteristicQualitativeValue maleCaracteristic = sexById.get(enumerationFile.QUALITATIVE_SEX_MALE_ID);
+ CaracteristicQualitativeValue maleCaracteristic = sexById.get(QualitativeValueId.SEX_MALE.getValue());
sexCaracteristicValues.put("M", maleCaracteristic);
sexCaracteristicValues.put("m", maleCaracteristic);
- CaracteristicQualitativeValue unkownCaracteristic = sexById.get(enumerationFile.QUALITATIVE_SEX_UNDEFINED_ID);
+ CaracteristicQualitativeValue unkownCaracteristic = sexById.get(QualitativeValueId2.SEX_UNDEFINED.getValue());
sexCaracteristicValues.put("I", unkownCaracteristic);
sexCaracteristicValues.put("i", unkownCaracteristic);
}
@@ -167,11 +165,11 @@
List<CaracteristicQualitativeValue> qualitativeValues = caracteristic.getQualitativeValue();
Map<Integer, CaracteristicQualitativeValue> byIds = TuttiEntities.splitByIdAsInt(qualitativeValues);
- maturityCaracteristicValues.put("1", byIds.get(enumerationFile.QUALITATIVE_MATURITY_1_ID));
- maturityCaracteristicValues.put("2", byIds.get(enumerationFile.QUALITATIVE_MATURITY_2_ID));
- maturityCaracteristicValues.put("3", byIds.get(enumerationFile.QUALITATIVE_MATURITY_3_ID));
- maturityCaracteristicValues.put("4", byIds.get(enumerationFile.QUALITATIVE_MATURITY_4_ID));
- maturityCaracteristicValues.put("5", byIds.get(enumerationFile.QUALITATIVE_MATURITY_5_ID));
+ maturityCaracteristicValues.put("1", byIds.get(QualitativeValueId2.MATURITY_1.getValue()));
+ maturityCaracteristicValues.put("2", byIds.get(QualitativeValueId2.MATURITY_2.getValue()));
+ maturityCaracteristicValues.put("3", byIds.get(QualitativeValueId2.MATURITY_3.getValue()));
+ maturityCaracteristicValues.put("4", byIds.get(QualitativeValueId2.MATURITY_4.getValue()));
+ maturityCaracteristicValues.put("5", byIds.get(QualitativeValueId2.MATURITY_5.getValue()));
}
}
@@ -492,8 +490,6 @@
// insert all imported species batches
- TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile();
-
Set<Species> species = importModel.getSpecies();
for (Species specy : species) {
@@ -509,7 +505,7 @@
batchModel.getSpecies(),
batchModel.getWeight(),
batchModel.getSampleWeight(),
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ PmfmId2.SORTED_UNSORTED.getValue(),
sortedCaracteristic);
batch = persistenceService.createSpeciesBatch(batch, null);
@@ -524,7 +520,7 @@
specy,
null,
null,
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ PmfmId2.SORTED_UNSORTED.getValue(),
sortedCaracteristic);
rootBatch = persistenceService.createSpeciesBatch(rootBatch, null);
@@ -610,7 +606,7 @@
if (SEX_VALUES.contains(categoryCode)) {
// sex caracteristic
- caracteristicId = enumerationFile.PMFM_ID_SEX;
+ caracteristicId = PmfmId2.SEX.getValue();
caracteristicQualitativeValue = sexCaracteristicValues.get(categoryCode);
result = new PsionImportBatchModel.SampleCategory(caracteristicId, caracteristicQualitativeValue);
@@ -618,7 +614,7 @@
} else if (MATURITY_VALUES.contains(categoryCode)) {
// maturity caracteristic
- caracteristicId = enumerationFile.PMFM_ID_MATURITY;
+ caracteristicId = PmfmId2.MATURITY.getValue();
caracteristicQualitativeValue = maturityCaracteristicValues.get(categoryCode);
result = new PsionImportBatchModel.SampleCategory(caracteristicId, caracteristicQualitativeValue);
@@ -677,7 +673,7 @@
protected void addFileAsAttachment(File f, CatchBatch catchBatch) {
Attachment attachment = Attachments.newAttachment();
- attachment.setObjectType(AttachementObjectTypeEnum.CATCH_BATCH);
+ attachment.setObjectType(ObjectTypeCode2.CATCH_BATCH);
attachment.setObjectId(Integer.valueOf(catchBatch.getId()));
attachment.setName(f.getName());
String date = DateFormat.getDateTimeInstance().format(context.currentDate());
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriCatch.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriCatch.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriCatch.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,11 +25,13 @@
*/
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId2;
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.Species;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import org.apache.commons.lang3.mutable.MutableFloat;
import java.io.Serializable;
@@ -46,68 +48,68 @@
public static enum Signs {
DEFAULT("0") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SEX;
+ public Integer getCategory() {
+ return PmfmId2.SEX.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SEX_UNDEFINED_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId2.SEX_UNDEFINED.getValue();
}
},
MALE("1") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SEX;
+ public Integer getCategory() {
+ return PmfmId2.SEX.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SEX_MALE_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId.SEX_MALE.getValue();
}
},
FEMALE("2") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SEX;
+ public Integer getCategory() {
+ return PmfmId2.SEX.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SEX_FEMALE_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId.SEX_FEMALE.getValue();
}
},
SMALL("P") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SIZE_CATEGORY;
+ public Integer getCategory() {
+ return PmfmId2.SIZE_CATEGORY.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SIZE_SMALL_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId.SIZE_SMALL.getValue();
}
},
MEDIUM("M") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SIZE_CATEGORY;
+ public Integer getCategory() {
+ return PmfmId2.SIZE_CATEGORY.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SIZE_MEDIUM_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId.SIZE_MEDIUM.getValue();
}
},
BIG("G") {
@Override
- public Integer getCategory(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.PMFM_ID_SIZE_CATEGORY;
+ public Integer getCategory() {
+ return PmfmId2.SIZE_CATEGORY.getValue();
}
@Override
- public Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile) {
- return enumerationFile.QUALITATIVE_SIZE_BIG_ID;
+ public Integer getQualitativeValueId() {
+ return QualitativeValueId.SIZE_BIG.getValue();
}
};
@@ -128,14 +130,13 @@
return result;
}
- public abstract Integer getCategory(TuttiEnumerationFile enumerationFile);
+ public abstract Integer getCategory();
- public abstract Integer getQualitativeValueId(TuttiEnumerationFile enumerationFile);
+ public abstract Integer getQualitativeValueId();
- public void registerSign(TuttiEnumerationFile enumerationFile,
- Caracteristic caracteristic,
+ public void registerSign(Caracteristic caracteristic,
Map<Signs, CaracteristicQualitativeValue> map) {
- Integer valueId = getQualitativeValueId(enumerationFile);
+ Integer valueId = getQualitativeValueId();
CaracteristicQualitativeValue result = TuttiEntities.getQualitativeValue(caracteristic, valueId);
map.put(this, result);
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -32,8 +32,10 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
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;
@@ -44,7 +46,6 @@
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.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
@@ -105,32 +106,29 @@
decoratorService = getService(DecoratorService.class);
dataContext = context.getDataContext();
- TuttiEnumerationFile enumerationFile =
- persistenceService.getEnumerationFile();
-
signsToCaracteristicValue = Maps.newEnumMap(PupitriCatch.Signs.class);
{ // sorted/unsorted caracteristic
Caracteristic caracteristic =
persistenceService.getSortedUnsortedCaracteristic();
- sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, enumerationFile.QUALITATIVE_VRAC_ID);
- unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, enumerationFile.QUALITATIVE_HORS_VRAC_ID);
+ sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue());
+ unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue());
}
{ // sex category
Caracteristic caracteristic = persistenceService.getSexCaracteristic();
- PupitriCatch.Signs.DEFAULT.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
- PupitriCatch.Signs.FEMALE.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
- PupitriCatch.Signs.MALE.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.DEFAULT.registerSign(caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.FEMALE.registerSign(caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.MALE.registerSign(caracteristic, signsToCaracteristicValue);
}
{ // size category
Caracteristic caracteristic = persistenceService.getSizeCategoryCaracteristic();
- PupitriCatch.Signs.SMALL.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
- PupitriCatch.Signs.MEDIUM.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
- PupitriCatch.Signs.BIG.registerSign(enumerationFile, caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.SMALL.registerSign(caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.MEDIUM.registerSign(caracteristic, signsToCaracteristicValue);
+ PupitriCatch.Signs.BIG.registerSign(caracteristic, signsToCaracteristicValue);
}
}
@@ -194,7 +192,7 @@
protected void addFileAsAttachment(File f, CatchBatch catchBatch) {
Attachment attachment = Attachments.newAttachment();
- attachment.setObjectType(AttachementObjectTypeEnum.CATCH_BATCH);
+ attachment.setObjectType(ObjectTypeCode2.CATCH_BATCH);
attachment.setObjectId(Integer.valueOf(catchBatch.getId()));
attachment.setName(f.getName());
String date = DateFormat.getDateTimeInstance().format(context.currentDate());
@@ -391,7 +389,6 @@
// insert all imported species batches
- TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile();
Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
for (PupitriCatch pupitriCatch : result.getCatches()) {
@@ -413,7 +410,7 @@
SpeciesBatch batch = createSpeciesBatch(operation,
species,
null,
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ PmfmId2.SORTED_UNSORTED.getValue(),
cqv);
batch = persistenceService.createSpeciesBatch(batch, null);
@@ -425,7 +422,7 @@
PupitriCatch.Signs signs = entry.getKey();
float catchWeight = entry.getValue().floatValue();
- Integer categoryId = signs.getCategory(enumerationFile);
+ Integer categoryId = signs.getCategory();
CaracteristicQualitativeValue splitCqv = signsToCaracteristicValue.get(signs);
SpeciesBatch childBatch = createSpeciesBatch(
operation,
@@ -453,7 +450,7 @@
SpeciesBatch batch = createSpeciesBatch(operation,
species,
totalWeight,
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ PmfmId2.SORTED_UNSORTED.getValue(),
cqv);
persistenceService.createSpeciesBatch(batch, null);
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/pom.xml 2014-04-24 10:17:09 UTC (rev 1725)
@@ -111,6 +111,16 @@
<version>${project.version}</version>
</dependency>
+ <!-- Adagio -->
+ <dependency>
+ <groupId>fr.ifremer.adagio</groupId>
+ <artifactId>adagio-core-shared</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>fr.ifremer.adagio</groupId>
+ <artifactId>adagio-core-allegro</artifactId>
+ </dependency>
+
<!-- Nuiton -->
<dependency>
<groupId>org.nuiton</groupId>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPupitriAction.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPupitriAction.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,10 +26,11 @@
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.pupitri.PupitriImportExportService;
import fr.ifremer.tutti.service.pupitri.PupitriImportResult;
@@ -89,14 +90,13 @@
// must check that sample category model is compatible for pupitri import
// means need some categories
- TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile();
SampleCategoryModel sampleCategoryModel = getDataContext().getSampleCategoryModel();
List<String> missingCategories = Lists.newArrayList();
- if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_SIZE_CATEGORY)) {
+ if (!sampleCategoryModel.containsCategoryId(PmfmId2.SIZE_CATEGORY.getValue())) {
missingCategories.add("<li>" + persistenceService.getSizeCategoryCaracteristic().getParameterName() + "</li>");
}
- if (!sampleCategoryModel.containsCategoryId(enumerationFile.PMFM_ID_SEX)) {
+ if (!sampleCategoryModel.containsCategoryId(PmfmId2.SEX.getValue())) {
missingCategories.add("<li>" + persistenceService.getSexCaracteristic().getParameterName() + "</li>");
}
if (!missingCategories.isEmpty()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -228,7 +228,6 @@
getDataContext().getSampleCategoryModel();
EditSampleCategoryModelUIModel model = new EditSampleCategoryModelUIModel(
- getPersistenceService().getEnumerationFile(),
sampleCategoryModel.getCategory(),
caracteristics);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIModel.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/category/EditSampleCategoryModelUIModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,10 +26,10 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.service.TuttiEnumerationFile;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -71,19 +71,17 @@
private boolean moveDownEntryEnabled;
- public EditSampleCategoryModelUIModel(TuttiEnumerationFile enumerationFile,
- List<SampleCategoryModelEntry> category,
+ public EditSampleCategoryModelUIModel(List<SampleCategoryModelEntry> category,
List<Caracteristic> caracteristicList) {
super(SampleCategoryModel.class, fromBeanBinder, toBeanBinder);
Preconditions.checkNotNull(caracteristicList, "need a not null caracteristicList");
- Preconditions.checkNotNull(enumerationFile, "need a not null enumerationFile");
Preconditions.checkNotNull(category, "need a not null category list");
Preconditions.checkArgument(!category.isEmpty(), "need at least one first category (sorted-unsorted)");
this.caracteristicList = caracteristicList;
this.firstCategory = category.get(0);
- Preconditions.checkArgument(enumerationFile.PMFM_ID_SORTED_UNSORTED.equals(firstCategory.getCategoryId()), "first category must be sorted-unsorted caracteristic but was: " + firstCategory.getCategoryId());
+ Preconditions.checkArgument(PmfmId2.SORTED_UNSORTED.getValue().equals(firstCategory.getCategoryId()), "first category must be sorted-unsorted caracteristic but was: " + firstCategory.getCategoryId());
List<EditSampleCategoryModelRowModel> rows = Lists.newArrayList();
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,7 +25,7 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Cruises;
@@ -192,8 +192,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.SCIENTIFIC_CRUISE;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.SCIENTIFIC_CRUISE;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUI.jaxx 2014-04-24 10:17:09 UTC (rev 1725)
@@ -65,8 +65,7 @@
</JXTitledPanel>
- <FishingOperationsUI id='operationPanel'
- constructorParams='this'>
+ <FishingOperationsUI id='operationPanel' constructorParams='this'>
</FishingOperationsUI>
</JSplitPane>
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -248,7 +248,7 @@
}
}
- protected class OperationTreeNode extends DefaultMutableTreeNode {
+ protected static class OperationTreeNode extends DefaultMutableTreeNode {
private static final long serialVersionUID = 1L;
@@ -282,7 +282,7 @@
}
}
- protected class MessageTreeNode extends DefaultMutableTreeNode {
+ protected static class MessageTreeNode extends DefaultMutableTreeNode {
private static final long serialVersionUID = 1L;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/ValidateCruiseUIModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -48,10 +48,14 @@
public static final String PROPERTY_VALIDATOR = "validator";
+ public static final String PROPERTY_CAN_SYNCH = "canSynch";
+
protected FishingOperation selectedFishingOperation;
protected Map<FishingOperation, NuitonValidatorResult> validator;
+ protected boolean canSynch;
+
public FishingOperation getSelectedFishingOperation() {
return selectedFishingOperation;
}
@@ -71,4 +75,14 @@
this.validator = validator;
firePropertyChange(PROPERTY_VALIDATOR, oldValue, validator);
}
+
+ public boolean isCanSynch() {
+ return canSynch;
+ }
+
+ public void setCanSynch(boolean canSynch) {
+ Object oldValue = isCanSynch();
+ this.canSynch = canSynch;
+ firePropertyChange(PROPERTY_CAN_SYNCH, oldValue, canSynch);
+ }
}
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,11 +25,9 @@
*/
import com.google.common.collect.Lists;
-import org.nuiton.jaxx.application.swing.tab.TabContentModel;
-import fr.ifremer.tutti.type.CoordinateEditorType;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
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;
@@ -38,12 +36,14 @@
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.type.CoordinateEditorType;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import jaxx.runtime.swing.editor.gis.DmdCoordinate;
import jaxx.runtime.swing.editor.gis.DmsCoordinate;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.nuiton.jaxx.application.swing.tab.TabContentModel;
import org.nuiton.util.DateUtil;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -965,8 +965,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.OPERATION;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.OPERATION;
}
@Override
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -28,7 +28,7 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatchs;
@@ -762,8 +762,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.CATCH_BATCH;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.CATCH_BATCH;
}
@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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,16 +25,16 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.type.WeightUnit;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
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.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapColumnRowModel;
@@ -259,8 +259,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.SAMPLE;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.SAMPLE;
}
@Override
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,10 +26,8 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.ui.swing.util.computable.ComputableData;
-import fr.ifremer.tutti.type.WeightUnit;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
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.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency;
@@ -39,12 +37,13 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryAble;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyRowModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import fr.ifremer.tutti.ui.swing.util.computable.ComputableData;
import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.ObjectUtils;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -445,8 +444,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.BATCH;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.BATCH;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataTableCell;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
import fr.ifremer.tutti.type.WeightUnit;
@@ -674,8 +675,7 @@
super.beforeInit(ui);
- qualitative_unsorted_id =
- getContext().getPersistenceService().getEnumerationFile().QUALITATIVE_UNSORTED_ID;
+ qualitative_unsorted_id = QualitativeValueId.UNSORTED.getValue();
weightUnit = getConfig().getBenthosWeightUnit();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import org.nuiton.jaxx.application.swing.util.Cancelable;
import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
@@ -174,7 +175,7 @@
SampleCategoryModelEntry caracteristic = sampleCategoryModel.getCategoryById(sampleCategoryModel.getFirstCategoryId());
- Integer vracId = getPersistenceService().getEnumerationFile().QUALITATIVE_VRAC_ID;
+ Integer vracId = QualitativeValueId.SORTED_VRAC.getValue();
CaracteristicQualitativeValue vracValue = null;
for (CaracteristicQualitativeValue caracteristicQualitativeValue : caracteristic.getCaracteristic().getQualitativeValue()) {
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -23,8 +23,8 @@
*/
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-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;
@@ -271,8 +271,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.SAMPLE;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.SAMPLE;
}
@Override
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchRowModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -25,14 +25,14 @@
*/
import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
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.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
-import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -206,8 +206,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.BATCH;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.BATCH;
}
@Override
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 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -26,8 +26,8 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
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.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
@@ -547,8 +547,8 @@
//------------------------------------------------------------------------//
@Override
- public AttachementObjectTypeEnum getObjectType() {
- return AttachementObjectTypeEnum.BATCH;
+ public ObjectTypeCode2 getObjectType() {
+ return ObjectTypeCode2.BATCH;
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataTableCell;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
import fr.ifremer.tutti.type.WeightUnit;
@@ -632,8 +633,7 @@
log.debug("beforeInit: " + ui);
}
- qualitative_unsorted_id =
- getContext().getPersistenceService().getEnumerationFile().QUALITATIVE_UNSORTED_ID;
+ qualitative_unsorted_id = QualitativeValueId.UNSORTED.getValue();
weightUnit = getConfig().getSpeciesWeightUnit();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIHandler.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId;
import org.nuiton.jaxx.application.swing.util.Cancelable;
import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
@@ -175,7 +176,7 @@
SampleCategoryModelEntry caracteristic = sampleCategoryModel.getCategoryById(sampleCategoryModel.getFirstCategoryId());
- Integer vracId = getPersistenceService().getEnumerationFile().QUALITATIVE_VRAC_ID;
+ Integer vracId = QualitativeValueId.SORTED_VRAC.getValue();
CaracteristicQualitativeValue vracValue = null;
for (CaracteristicQualitativeValue caracteristicQualitativeValue : caracteristic.getCaracteristic().getQualitativeValue()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentModelAware.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentModelAware.java 2014-04-24 10:05:12 UTC (rev 1724)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentModelAware.java 2014-04-24 10:17:09 UTC (rev 1725)
@@ -24,7 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import java.io.Serializable;
@@ -43,7 +43,7 @@
String PROPERTY_OBJECT_ID = "objectId";
- AttachementObjectTypeEnum getObjectType();
+ ObjectTypeCode2 getObjectType();
Integer getObjectId();
1
0
r1724 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation
by tchemit@users.forge.codelutin.com 24 Apr '14
by tchemit@users.forge.codelutin.com 24 Apr '14
24 Apr '14
Author: tchemit
Date: 2014-04-24 12:05:12 +0200 (Thu, 24 Apr 2014)
New Revision: 1724
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1724
Log:
fixes #4991
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
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 2014-04-23 08:11:03 UTC (rev 1723)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2014-04-24 10:05:12 UTC (rev 1724)
@@ -649,7 +649,13 @@
@Override
public void onShowTab(int currentIndex, int newIndex) {
- registerValidators(ui.getValidator());
+ // validation if no operation
+ // see http://forge.codelutin.com/issues/4991
+ if (getModel().getFishingOperation() == null) {
+ clearValidators();
+ } else {
+ registerValidators(ui.getValidator());
+ }
}
//------------------------------------------------------------------------//
1
0
r1723 - in trunk: . 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/util tutti-ui-swing/src/main/filtered-resources
by tchemit@users.forge.codelutin.com 23 Apr '14
by tchemit@users.forge.codelutin.com 23 Apr '14
23 Apr '14
Author: tchemit
Date: 2014-04-23 10:11:03 +0200 (Wed, 23 Apr 2014)
New Revision: 1723
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1723
Log:
introduce util package
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SynchronizationStatusHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java
Removed:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.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/BatchTreeHelper.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/BenthosBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.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/SpeciesBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/pom.xml 2014-04-23 08:11:03 UTC (rev 1723)
@@ -138,7 +138,7 @@
<!-- libraries version -->
<nuitonI18nVersion>3.0</nuitonI18nVersion>
<nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion>
- <eugenePluginVersion>2.7.4</eugenePluginVersion>
+ <eugenePluginVersion>2.9-SNAPSHOT</eugenePluginVersion>
<!--<hibernateVersion>3.6.10.Final</hibernateVersion>-->
<jaxxVersion>2.8.4</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -43,6 +43,8 @@
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.persistence.service.util.SamplePersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -46,8 +46,9 @@
import fr.ifremer.tutti.persistence.entities.data.BenthosBatchs;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper;
-import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.MeasurementPersistenceHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
@@ -207,30 +208,6 @@
@Override
public void deleteBenthosSubBatch(String id) {
batchHelper.deleteSpeciesSubBatch(id);
-
-// Preconditions.checkNotNull(id);
-//
-// Integer benthosBatchId = Integer.valueOf(id);
-//
-// CatchBatch catchBatch = batchHelper.getRootCatchBatchByBatchId(benthosBatchId);
-// SortingBatch sortingBatch = batchHelper.getSortingBatchById(catchBatch, benthosBatchId);
-//
-// // get his children
-// Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
-//
-// if (CollectionUtils.isNotEmpty(childBatchs)) {
-//
-// for (Batch childBatch : childBatchs) {
-//
-// // delete this child and all his children
-// Integer childBatchId = childBatch.getId();
-//
-// if (log.isDebugEnabled()) {
-// log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
-// }
-// batchHelper.removeWithChildren(childBatchId);
-// }
-// }
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -35,8 +35,10 @@
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatchBean;
-import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper;
-import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.MeasurementPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.FlushMode;
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -53,7 +53,6 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao;
-import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -69,6 +68,9 @@
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.service.util.MeasurementPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper;
+import fr.ifremer.tutti.persistence.service.util.VesselPersonFeaturesPersistenceHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -765,83 +767,4 @@
fishingTrip.getVesselPersonFeatures().clear();
fishingTrip.getVesselPersonFeatures().addAll(vesselPersonFeaturesMap.values());
}
-
-// public SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip,
-// Integer pmfmId) {
-// SurveyMeasurement result = null;
-//
-// for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
-// if (pmfmId.equals(vum.getPmfm().getId())) {
-// result = vum;
-// break;
-// }
-// }
-//
-// return result;
-// }
-//
-// protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
-// Integer pmfmId,
-// Float numericalValue,
-// String alphanumericalValue,
-// Integer qualitativevalueId) {
-//
-// SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
-// result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
-// result.setDepartment(fishingTrip.getRecorderDepartment());
-// Pmfm pmfm = load(PmfmImpl.class, pmfmId);
-// result.setPmfm(pmfm);
-// result.setFishingTrip(fishingTrip);
-//
-// if (alphanumericalValue != null) {
-// result.setAlphanumericalValue(alphanumericalValue);
-// } else if (numericalValue != null) {
-// result.setNumericalValue(numericalValue);
-// } else if (qualitativevalueId != null) {
-// result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
-// }
-//
-// // add it to fishingTrip
-// if (fishingTrip.getSurveyMeasurements() == null) {
-//
-// //create new set of measurements
-// fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
-// }
-//
-// fishingTrip.getSurveyMeasurements().add(result);
-//
-// return result;
-// }
-//
-// protected SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
-// Integer pmfmId,
-// Float numericalValue,
-// String alphanumericalValue,
-// Integer qualitativevalueId) {
-// SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-//
-// if (result == null) {
-// result = createSurveyMeasurement(fishingTrip,
-// pmfmId,
-// numericalValue,
-// alphanumericalValue,
-// qualitativevalueId);
-// }
-//
-// return result;
-// }
-//
-// protected SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
-// Integer pmfmId) {
-// SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-//
-// if (result != null) {
-//
-// // measurement found, remove it
-// result.setFishingTrip(null);
-// fishingTrip.getSurveyMeasurements().remove(result);
-// }
-//
-// return result;
-// }
}
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -58,10 +58,6 @@
import fr.ifremer.adagio.core.dao.referential.gear.GearImpl;
import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao;
import fr.ifremer.adagio.core.dao.referential.location.LocationImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.adagio.core.service.referential.location.LocationService;
import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti;
@@ -77,6 +73,9 @@
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.service.util.MeasurementPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper;
+import fr.ifremer.tutti.persistence.service.util.VesselPersonFeaturesPersistenceHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
@@ -223,7 +222,7 @@
}
// SynchronizationStatus
- fishingOperation.setSynchronizationStatus((String)source[colIndex++]);
+ fishingOperation.setSynchronizationStatus((String) source[colIndex++]);
// If not found, compute it using a counter (see "order by startDateTime" in HQL query)
if (fishingOperation.getFishingOperationNumber() == null) {
@@ -285,7 +284,7 @@
}
// SynchronizationStatus
- result.setSynchronizationStatus((String)source[colIndex++]);
+ result.setSynchronizationStatus((String) source[colIndex++]);
Short rankOrder = (Short) source[colIndex++];
@@ -879,7 +878,7 @@
// StationNumber
if (source.getStationNumber() != null) {
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_STATION_NUMBER, null, source.getStationNumber(), null);
notChangedVesselUseMeasurements.remove(vum);
}
@@ -926,19 +925,19 @@
// Trawl distance
if (source.getTrawlDistance() != null) {
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_TRAWL_DISTANCE, source.getTrawlDistance(), null, null);
notChangedVesselUseMeasurements.remove(vum);
}
// Rectilinear operation
{
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_RECTILINEAR_OPERATION, null, null, source.isFishingOperationRectiligne() ? enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES : enumeration.QUALITATIVE_RECTILINEAR_OPERATION_NO);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_RECTILINEAR_OPERATION, null, null, source.isFishingOperationRectiligne() ? enumeration.QUALITATIVE_RECTILINEAR_OPERATION_YES : enumeration.QUALITATIVE_RECTILINEAR_OPERATION_NO);
notChangedVesselUseMeasurements.remove(vum);
}
// Operation is valid ?
if (source.getFishingOperationValid() != null) {
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid() ? enumeration.QUALITATIVE_HAUL_VALID_YES : enumeration.QUALITATIVE_HAUL_VALID_NO);
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, enumeration.PMFM_ID_HAUL_VALID, null, null, source.getFishingOperationValid() ? enumeration.QUALITATIVE_HAUL_VALID_YES : enumeration.QUALITATIVE_HAUL_VALID_NO);
notChangedVesselUseMeasurements.remove(vum);
}
@@ -1074,7 +1073,7 @@
CaracteristicMap vesselUseCaracteristics = source.getVesselUseFeatures();
if (MapUtils.isNotEmpty(vesselUseCaracteristics)) {
for (Caracteristic caracteristic : vesselUseCaracteristics.keySet()) {
- VesselUseMeasurement vum = setVesselUseMeasurement(scientificCruise, vesselUseFeatures, caracteristic, vesselUseCaracteristics.get(caracteristic));
+ VesselUseMeasurement vum = measurementPersistenceHelper.setVesselUseMeasurement(scientificCruise, vesselUseFeatures, caracteristic, vesselUseCaracteristics.get(caracteristic));
notChangedVesselUseMeasurements.remove(vum);
}
}
@@ -1263,135 +1262,6 @@
return DEFAULT_EMPTY_LONGITUDE.equals(databaseValue) ? null : databaseValue;
}
-
- protected VesselUseMeasurement getVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
- Integer pmfmId, boolean createIfNotExists) {
- VesselUseMeasurement vesselUseMeasurement = null;
- if (vesselUseFeatures.getVesselUseMeasurements() != null) {
- for (VesselUseMeasurement vum : vesselUseFeatures.getVesselUseMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- vesselUseMeasurement = vum;
- break;
- }
- }
- }
- if (vesselUseMeasurement == null) {
- if (!createIfNotExists) {
- return null;
- }
- vesselUseMeasurement = VesselUseMeasurement.Factory.newInstance();
- vesselUseMeasurement.setVesselUseFeatures(vesselUseFeatures);
- if (vesselUseFeatures.getVesselUseMeasurements() == null) {
- vesselUseFeatures.setVesselUseMeasurements(Sets.newHashSet(vesselUseMeasurement));
- } else {
- vesselUseFeatures.getVesselUseMeasurements().add(vesselUseMeasurement);
- }
- vesselUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- vesselUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
- vesselUseMeasurement.setPmfm(load(PmfmImpl.class, pmfmId));
- }
-
- return vesselUseMeasurement;
- }
-
- protected VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
-
- if (alphanumericalValue != null) {
- vesselUseMeasurement.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- vesselUseMeasurement.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- vesselUseMeasurement.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
- }
-
- return vesselUseMeasurement;
- }
-
- protected VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
- Integer pmfmId,
- Serializable value) {
- VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
-
- if (value instanceof String) {
- vesselUseMeasurement.setAlphanumericalValue((String) value);
- } else if (value instanceof Float) {
- vesselUseMeasurement.setNumericalValue((Float) value);
- } else if (value instanceof Integer) {
- vesselUseMeasurement.setQualitativeValue(load(QualitativeValueImpl.class, value));
- }
-
- return vesselUseMeasurement;
- }
-
- protected VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
- Caracteristic caracteristic, Serializable value) {
- VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, Integer.valueOf(caracteristic.getId()), true);
- measurementPersistenceHelper.setMeasurement(vesselUseMeasurement, caracteristic, value);
- return vesselUseMeasurement;
- }
-
-// protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
-// Integer pmfmId,
-// Float numericalValue,
-// String alphanumericalValue,
-// Integer qualitativevalueId) {
-// GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
-//
-// if (alphanumericalValue != null) {
-// gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
-// } else if (numericalValue != null) {
-// gearUseMeasurement.setNumericalValue(numericalValue);
-// } else if (qualitativevalueId != null) {
-// QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
-// gearUseMeasurement.setQualitativeValue(qv);
-// }
-//
-// return gearUseMeasurement;
-// }
-
-// protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
-// Caracteristic caracteristic, Serializable value) {
-// GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
-// measurementPersistenceHelper.setMeasurement(gearUseMeasurement, caracteristic, value);
-// return gearUseMeasurement;
-// }
-//
-// protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
-// Integer pmfmId, boolean createIfNotExists) {
-// GearUseMeasurement gearUseMeasurement = null;
-// if (gearUseFeatures.getGearUseMeasurements() != null) {
-// for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
-// if (pmfmId.equals(vum.getPmfm().getId())) {
-// gearUseMeasurement = vum;
-// break;
-// }
-// }
-// }
-// if (gearUseMeasurement == null) {
-// if (!createIfNotExists) {
-// return null;
-// }
-// gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
-// gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
-// if (gearUseFeatures.getGearUseMeasurements() == null) {
-// gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
-// } else {
-// gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
-// }
-// gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
-// gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
-// Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
-// gearUseMeasurement.setPmfm(pmfm);
-// }
-//
-// return gearUseMeasurement;
-// }
-
protected void setOperationVesselAssociation(Operation target, List<String> vesselCodes) {
boolean noOperationVesselAssociations =
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -45,7 +45,9 @@
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;
+import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SamplePersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.SynchronizationStatusHelper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -140,8 +142,6 @@
Preconditions.checkNotNull(bean);
Preconditions.checkState(TuttiEntities.isNew(bean));
Preconditions.checkNotNull(bean.getSpecies());
-// Preconditions.checkNotNull(bean.getSize());
-// Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
FishingOperation fishingOperation = bean.getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
@@ -162,8 +162,6 @@
Preconditions.checkNotNull(bean);
Preconditions.checkState(!TuttiEntities.isNew(bean));
Preconditions.checkNotNull(bean.getSpecies());
-// Preconditions.checkNotNull(bean.getSize());
-// Preconditions.checkNotNull(bean.getLengthStepCaracteristic());
FishingOperation fishingOperation = bean.getFishingOperation();
Preconditions.checkNotNull(fishingOperation);
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -39,8 +39,9 @@
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;
-import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.MeasurementPersistenceHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
@@ -304,21 +305,4 @@
sortingMeasurements.removeAll(notChangedSortingMeasurements);
}
}
-
-// public void setMarineLitterBatchParents(SortingBatch target, CatchBatch catchBatch) {
-//
-// Preconditions.checkNotNull(target);
-//
-// SortingBatch parentBatch = batchTreeHelper.getMarineLitterRootBatch(catchBatch);
-//
-// if (parentBatch == null) {
-//
-// SortingBatch horsVracBatch = batchHelper.getOrCreateHorsVracBatch(catchBatch);
-//
-// parentBatch = batchHelper.getOrCreateMarineLitterRootBatch(catchBatch, horsVracBatch, null);
-// }
-//
-// target.setParentBatch(parentBatch);
-// target.setRootBatch(catchBatch);
-// }
}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,295 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%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.base.Preconditions;
-import com.google.common.collect.Sets;
-import fr.ifremer.adagio.core.dao.data.batch.Batch;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
-import fr.ifremer.adagio.core.dao.data.measure.GearUseMeasurement;
-import fr.ifremer.adagio.core.dao.data.measure.Measurement;
-import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
-import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
-import fr.ifremer.adagio.core.dao.data.measure.SurveyMeasurement;
-import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
-import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
-import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures;
-import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.io.Serializable;
-
-/**
- * Helper around {@link Measurement}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 2.0
- */
-@Component("measurementPersistenceHelper")
-public class MeasurementPersistenceHelper extends AbstractPersistenceService {
-
- @Resource(name = "referentialPersistenceService")
- protected ReferentialPersistenceService referentialService;
-
- @Resource(name = "catchBatchDao")
- protected CatchBatchExtendDao catchBatchDao;
-
- public void setMeasurement(Measurement measurement,
- Caracteristic caracteristic,
- Serializable value) {
- if (value == null) {
- return;
- }
- switch (caracteristic.getCaracteristicType()) {
-
- case NUMBER:
- measurement.setNumericalValue((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 qv = load(QualitativeValueImpl.class, qvId);
- measurement.setQualitativeValue(qv);
- break;
- case TEXT:
- measurement.setAlphanumericalValue((String) value);
- break;
- }
- }
-
- //------------------------------------------------------------------------//
- //-- SortingMeasurement --//
- //------------------------------------------------------------------------//
-
- public SortingMeasurement setSortingMeasurement(
- SortingBatch sortingBatch,
- Integer pmfmId,
- Serializable value) {
- Preconditions.checkNotNull(pmfmId);
- Preconditions.checkNotNull(value);
-
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
- SortingMeasurement sortingMeasurement = catchBatchDao.getSortingMeasurement(
- sortingBatch, pmfmId, getRecorderDepartmentId(), true);
- setMeasurement(sortingMeasurement,
- caracteristic,
- value);
- return sortingMeasurement;
- }
-
- public QuantificationMeasurement setWeightMeasurementQuantificationMeasurement(Batch batch, Float weightValue) {
- return catchBatchDao.setQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), weightValue, true);
- }
-
- public QuantificationMeasurement getWeightMeasurementQuantificationMeasurement(Batch batch) {
- QuantificationMeasurement quantificationMeasurement = catchBatchDao.getQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), false);
- return quantificationMeasurement;
- }
-
- public SortingMeasurement getInheritedSortingMeasurement(SortingBatch sortingBatch) {
- return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, enumeration.PMFM_ID_SORTED_UNSORTED);
- }
-
- //------------------------------------------------------------------------//
- //-- GearUseMeasurement --//
- //------------------------------------------------------------------------//
-
- public GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
-
- if (alphanumericalValue != null) {
- gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- gearUseMeasurement.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
- gearUseMeasurement.setQualitativeValue(qv);
- }
-
- return gearUseMeasurement;
- }
-
- protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Caracteristic caracteristic, Serializable value) {
- GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
- setMeasurement(gearUseMeasurement, caracteristic, value);
- return gearUseMeasurement;
- }
-
- protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Integer pmfmId, boolean createIfNotExists) {
- GearUseMeasurement gearUseMeasurement = null;
- if (gearUseFeatures.getGearUseMeasurements() != null) {
- for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- gearUseMeasurement = vum;
- break;
- }
- }
- }
- if (gearUseMeasurement == null) {
- if (!createIfNotExists) {
- return null;
- }
- gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
- gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
- if (gearUseFeatures.getGearUseMeasurements() == null) {
- gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
- } else {
- gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
- }
- gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
- Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
- gearUseMeasurement.setPmfm(pmfm);
- }
-
- return gearUseMeasurement;
- }
-
-
- //------------------------------------------------------------------------//
- //-- Misc --//
- //------------------------------------------------------------------------//
-
- public String toString(Measurement measurement) {
- Pmfm pmfm = load(PmfmImpl.class, measurement.getPmfm().getId());
- String value = null;
- if (measurement.getQualitativeValue() != null) {
- QualitativeValue qualitativeValue = measurement.getQualitativeValue();
- String qualitativeName = load(QualitativeValueImpl.class, qualitativeValue.getId()).getName();
-
- value = qualitativeName + " (" + qualitativeValue.getId() + ")";
- } else if (measurement.getNumericalValue() != null) {
- value = "" + measurement.getNumericalValue();
- } else if (measurement.getAlphanumericalValue() != null) {
- value = measurement.getAlphanumericalValue();
- }
- return pmfm.getParameter().getName() + " (" + pmfm.getId() + ") / " + value;
- }
-
- //------------------------------------------------------------------------//
- //-- SurveyMeasurement --//
- //------------------------------------------------------------------------//
-
- public SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-
- if (result == null) {
- result = createSurveyMeasurement(fishingTrip,
- pmfmId,
- numericalValue,
- alphanumericalValue,
- qualitativevalueId);
- }
-
- return result;
- }
-
- public SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId) {
- SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-
- if (result != null) {
-
- // measurement found, remove it
- result.setFishingTrip(null);
- fishingTrip.getSurveyMeasurements().remove(result);
- }
-
- return result;
- }
-
- protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
-
- SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- result.setDepartment(fishingTrip.getRecorderDepartment());
- Pmfm pmfm = load(PmfmImpl.class, pmfmId);
- result.setPmfm(pmfm);
- result.setFishingTrip(fishingTrip);
-
- if (alphanumericalValue != null) {
- result.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- result.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
- }
-
- // add it to fishingTrip
- if (fishingTrip.getSurveyMeasurements() == null) {
-
- //create new set of measurements
- fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
- }
-
- fishingTrip.getSurveyMeasurements().add(result);
-
- return result;
- }
-
- protected SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip, Integer pmfmId) {
- SurveyMeasurement result = null;
-
- for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- result = vum;
- break;
- }
- }
-
- return result;
- }
-
- protected Integer getRecorderDepartmentId() {
- // TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
- return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
- }
-}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,177 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%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.Sets;
-import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
-import fr.ifremer.adagio.core.dao.data.sample.Sample;
-import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
-import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
-import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
-import org.hibernate.type.IntegerType;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * Helper around {@link Sample}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.6
- */
-@Component("samplePersistenceHelper")
-public class SamplePersistenceHelper extends AbstractPersistenceService {
-
- @Resource(name = "referentialPersistenceService")
- protected ReferentialPersistenceService referentialService;
-
- @Resource(name = "measurementPersistenceHelper")
- protected MeasurementPersistenceHelper measurementPersistenceHelper;
-
- @Resource(name = "attachmentPersistenceService")
- protected AttachmentPersistenceService attachmentPersistenceService;
-
- @Resource(name = "sampleDao")
- protected SampleDao sampleDao;
-
- public Sample create(Sample sample) {
- return sampleDao.create(sample);
- }
-
- public void update(Sample sample) {
- sampleDao.update(sample);
- }
-
- public Sample load(Integer id) {
- return sampleDao.load(id);
- }
-
- public void deleteSample(Integer sampleId) {
-
- Sample sample = sampleDao.load(sampleId);
- if (sample != null) {
- sample.getSampleMeasurements().clear();
- sampleDao.remove(sample);
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.SAMPLE,
- sampleId);
- }
- }
-
- public void setSampleMeasurements(Sample target,
- CaracteristicMap caracteristics) {
-
- Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
- if (target.getSampleMeasurements() != null) {
- notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
- }
-
- for (Caracteristic caracteristic : caracteristics.keySet()) {
- SampleMeasurement vum = setSampleMeasurement(
- target,
- caracteristic,
- caracteristics.get(caracteristic));
- notChangedSampleMeasurements.remove(vum);
- }
-
- if (target.getSampleMeasurements() != null &&
- notChangedSampleMeasurements.size() > 0) {
- target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
- }
- }
-
- public void fillSampleMeasurements(CaracteristicMap result,
- Integer sampleId) {
- Iterator<Object[]> list = queryList(
- "sampleMeasurements",
- "sampleId", IntegerType.INSTANCE, sampleId);
- while (list.hasNext()) {
- int colIndex = 0;
- Object[] source = list.next();
- Integer pmfmId = (Integer) source[colIndex++];
- Float numericalValue = (Float) source[colIndex++];
- String alphanumericalValue = (String) source[colIndex++];
- Integer qualitativeValueId = (Integer) source[colIndex];
-
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
- Serializable value = null;
- switch (caracteristic.getCaracteristicType()) {
-
- case NUMBER:
- value = numericalValue;
- break;
- case QUALITATIVE:
- value = TuttiEntities.getQualitativeValue(caracteristic,
- qualitativeValueId);
- break;
- case TEXT:
- value = alphanumericalValue;
- break;
- }
- result.put(caracteristic, value);
- }
- }
-
- protected SampleMeasurement setSampleMeasurement(Sample sample,
- Caracteristic caracteristic,
- Serializable value) {
-
- Integer pmfmId = caracteristic.getIdAsInt();
-
- SampleMeasurement result = null;
- if (sample.getSampleMeasurements() != null) {
- for (SampleMeasurement vum : sample.getSampleMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- result = vum;
- break;
- }
- }
- }
- if (result == null) {
-
- result = SampleMeasurement.Factory.newInstance();
-
- result.setSample(sample);
- if (sample.getSampleMeasurements() == null) {
- sample.setSampleMeasurements(Sets.newHashSet(result));
- } else {
- sample.getSampleMeasurements().add(result);
- }
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- result.setDepartment(sample.getRecorderDepartment());
- result.setPmfm(load(PmfmImpl.class, pmfmId));
- }
- measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
- return result;
- }
-
-}
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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -46,8 +46,9 @@
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper;
-import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper;
+import fr.ifremer.tutti.persistence.service.util.BatchTreeHelper;
+import fr.ifremer.tutti.persistence.service.util.MeasurementPersistenceHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,85 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-import fr.ifremer.adagio.core.dao.data.batch.Batch;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
-import fr.ifremer.adagio.core.dao.data.sample.Sample;
-import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
-import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
-import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
-import org.hibernate.type.IntegerType;
-import org.hibernate.type.StringType;
-import org.springframework.stereotype.Component;
-
-/**
- * Helper around SynchronizationStatus.
- * <p/>
- * Created on 4/22/14.
- *
- * @author Tony Chemit <chemit(a)codelutin.com>
- * @since 3.5
- */
-@Component("synchronizationStatusHelper")
-public class SynchronizationStatusHelper extends AbstractPersistenceService {
-
- public void setDirty(ScientificCruise scientificCruise) {
- String synchronizationStatus = getDirtyValue();
- scientificCruise.setSynchronizationStatus(synchronizationStatus);
- }
-
- public void setDirty(FishingTrip fishingTrip) {
- String synchronizationStatus = getDirtyValue();
- fishingTrip.setSynchronizationStatus(synchronizationStatus);
- setDirty(fishingTrip.getScientificCruise());
- }
-
- public void setDirty(CatchBatch catchBatch) {
- String synchronizationStatus = getDirtyValue();
- catchBatch.setSynchronizationStatus(synchronizationStatus);
- setDirty(catchBatch.getFishingOperation().getFishingTrip());
- }
-
- public void setDirty(Sample sample) {
- String synchronizationStatus = getDirtyValue();
- sample.setSynchronizationStatus(synchronizationStatus);
- Batch batch = sample.getBatch();
- if (batch != null && batch instanceof CatchBatch) {
- setDirty((CatchBatch) batch);
- } else {
- setDirty(sample.getFishingOperation().getFishingTrip());
- }
- }
-
- public void setReadyToSynch(String cruiseId) {
-
- String oldStatus = getDirtyValue();
- String newStatus = SynchronizationStatus.READY_TO_SYNCHRONIZE.getValue();
-
- // update scientificCruise
- queryUpdate("updateScientificCruiseSynchronizationStatus",
- "cruiseId", IntegerType.INSTANCE, cruiseId,
- "oldStatus", StringType.INSTANCE, oldStatus,
- "newStatus", StringType.INSTANCE, newStatus);
-
- // update fishingTrip
- queryUpdate("updateFishingTripSynchronizationStatus",
- "cruiseId", IntegerType.INSTANCE, cruiseId,
- "oldStatus", StringType.INSTANCE, oldStatus,
- "newStatus", StringType.INSTANCE, newStatus);
-
- // update catchBatch
- queryUpdate("updateCatchBatchSynchronizationStatus",
- "cruiseId", IntegerType.INSTANCE, cruiseId,
- "oldStatus", StringType.INSTANCE, oldStatus,
- "newStatus", StringType.INSTANCE, newStatus);
-
- // update sample
- queryUpdate("updateSampleSynchronizationStatus",
- "cruiseId", IntegerType.INSTANCE, cruiseId,
- "oldStatus", StringType.INSTANCE, oldStatus,
- "newStatus", StringType.INSTANCE, newStatus);
- }
-
- protected String getDirtyValue() {
- return SynchronizationStatus.DIRTY.getValue();
- }
-}
Deleted: 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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,153 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%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.administration.user.Person;
-import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
-import fr.ifremer.adagio.core.dao.data.operation.FishingOperation;
-import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
-import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
-import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
-import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.Map;
-
-/**
- * Helper around {@link VesselPersonFeatures}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 2.0
- */
-@Component("vesselPersonFeaturesPersistenceHelper")
-public class VesselPersonFeaturesPersistenceHelper extends AbstractPersistenceService {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(VesselPersonFeaturesPersistenceHelper.class);
-
- public VesselPersonFeaturesPersistenceHelper() {
- }
-
- public VesselPersonRole getScientificCruiseManagerRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER);
- }
-
- public VesselPersonRole getSortRoomManagerRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER);
- }
-
- public VesselPersonRole getRecorderPersonRole() {
- return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON);
- }
-
- public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
- Integer personId,
- FishingTrip fishingTrip,
- VesselPersonRole role,
- short rankOrder) {
-
- VesselPersonFeatures vesselPersonFeatures =
- vesselPersonFeaturesPerPerson.get(personId);
- if (vesselPersonFeatures == null) {
-
- PersonImpl person = load(PersonImpl.class, personId);
-
- if (log.isDebugEnabled()) {
- log.debug("Create an new vesselPersonFeatures for person: [" + personId + "]" + person.getFirstname() + " - " + person.getLastname());
- }
-
- vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
- vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
- vesselPersonFeatures.setPerson(person);
-
- vesselPersonFeatures.setFishingTrip(fishingTrip);
- vesselPersonFeatures.setStartDate(fishingTrip.getDepartureDateTime());
- vesselPersonFeatures.setEndDate(fishingTrip.getReturnDateTime());
- vesselPersonFeatures.setVessel(fishingTrip.getVessel());
- vesselPersonFeatures.setProgram(fishingTrip.getProgram());
-
- vesselPersonFeatures.setCreationDate(fishingTrip.getCreationDate());
- vesselPersonFeatures.setQualityFlag(fishingTrip.getQualityFlag());
- vesselPersonFeatures.setRankOrder(rankOrder);
- }
-
- addRole(role, vesselPersonFeatures);
- }
-
- public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
- Integer personId,
- FishingOperation fishingOperation,
- VesselPersonRole role,
- short rankOrder) {
-
- VesselPersonFeatures vesselPersonFeatures =
- vesselPersonFeaturesPerPerson.get(personId);
- if (vesselPersonFeatures == null) {
-
- PersonImpl person = load(PersonImpl.class, personId);
- if (log.isDebugEnabled()) {
- log.debug("Create an new vesselPersonFeatures for person: [" + personId + "]" + person.getFirstname() + " - " + person.getLastname());
- }
-
- vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
- vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
- vesselPersonFeatures.setOperation(fishingOperation);
- vesselPersonFeatures.setFishingTrip(fishingOperation.getFishingTrip());
- vesselPersonFeatures.setPerson(person);
- vesselPersonFeatures.setStartDate(fishingOperation.getStartDateTime());
- vesselPersonFeatures.setEndDate(fishingOperation.getEndDateTime());
- vesselPersonFeatures.setVessel(fishingOperation.getVessel());
- vesselPersonFeatures.setProgram(fishingOperation.getFishingTrip().getProgram());
-
- vesselPersonFeatures.setCreationDate(new Date());
- vesselPersonFeatures.setQualityFlag(fishingOperation.getQualityFlag());
- vesselPersonFeatures.setRankOrder(rankOrder);
- }
-
- addRole(role, vesselPersonFeatures);
- }
-
- protected void addRole(VesselPersonRole role,
- VesselPersonFeatures vesselPersonFeatures) {
- Person person = vesselPersonFeatures.getPerson();
- if (vesselPersonFeatures.getVesselPersonRoles().contains(role)) {
- if (log.isWarnEnabled()) {
- log.warn("vessel person feature for person: " + person.getId() + " with role: " + role.getName() + " already exist, do not add it twice.");
- }
- } else {
-
- // add this new role
- if (log.isInfoEnabled()) {
- log.info("Add vessel person feature for person: " + person.getId() + " with role: " + role.getName());
- }
- vesselPersonFeatures.getVesselPersonRoles().add(role);
-
- }
- }
-}
\ No newline at end of file
Deleted: 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 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,746 +0,0 @@
-package fr.ifremer.tutti.persistence.service.batch;
-
-/*
- * #%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.base.Joiner;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import fr.ifremer.adagio.core.dao.data.batch.Batch;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatchDao;
-import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationError;
-import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
-import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
-import fr.ifremer.tutti.persistence.InvalidBatchModelException;
-import fr.ifremer.tutti.persistence.entities.TuttiEntity;
-import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
-import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
-import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
-import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
-import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
-import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchFrequency;
-import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
-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.service.AbstractPersistenceService;
-import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
-import fr.ifremer.tutti.persistence.service.IndividualObservationBatchPersistenceService;
-import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.dao.DataIntegrityViolationException;
-import org.springframework.dao.DataRetrievalFailureException;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.io.Serializable;
-import java.text.MessageFormat;
-import java.util.Collection;
-import java.util.List;
-
-import static org.nuiton.i18n.I18n.t;
-
-/**
- * Helper around batches.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 1.2
- */
-@Component("batchPersistenceHelper")
-public class BatchPersistenceHelper extends AbstractPersistenceService {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(BatchPersistenceHelper.class);
-
- @Resource(name = "referentialPersistenceService")
- protected ReferentialPersistenceService referentialService;
-
- @Resource(name = "attachmentPersistenceService")
- protected AttachmentPersistenceService attachmentPersistenceService;
-
- @Resource(name = "individualObservationBatchPersistenceService")
- protected IndividualObservationBatchPersistenceService individualObservationBatchPersistenceService;
-
- @Resource(name = "catchBatchDao")
- protected CatchBatchExtendDao catchBatchDao;
-
- @Resource(name = "sortingBatchDao")
- protected SortingBatchDao sortingBatchDao;
-
- @Resource(name = "scientificCruiseCatchBatchValidator")
- protected TuttiCatchBatchValidator catchBatchValidator;
-
- @Resource(name = "batchTreeHelper")
- protected BatchTreeHelper batchTreeHelper;
-
- @Override
- public void init() {
- super.init();
- catchBatchDao.registerCatchBatchValidator(catchBatchValidator);
- }
-
- @Override
- public void close() {
- catchBatchDao.unregisterCatchBatchValidator(catchBatchValidator);
- super.close();
- }
-
- public fr.ifremer.tutti.persistence.entities.data.CatchBatch createCatchBatch(fr.ifremer.tutti.persistence.entities.data.CatchBatch bean, CatchBatch catchBatch) {
- catchBatch = catchBatchDao.create(catchBatch);
- bean.setId(catchBatch.getId());
- return bean;
- }
-
- public void validateSpecies(SampleCategoryModel sampleCategoryModel,
- BatchContainer<SpeciesBatch> species) throws InvalidBatchModelException {
- List<CatchBatchValidationError> errors = catchBatchValidator.validateSpecies(sampleCategoryModel, species);
- List<String> errorsStr = Lists.newArrayList();
- for (CatchBatchValidationError error : errors) {
- if (error.getGravity() == CatchBatchValidationError.GRAVITY_ERROR) {
- errorsStr.add(error.getMessage());
- }
- }
- if (!errorsStr.isEmpty()) {
- String join = Joiner.on("<br/>").join(errorsStr);
- throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.bad.sample.categories", join));
- }
- }
-
- public void validateBenthos(SampleCategoryModel sampleCategoryModel,
- BatchContainer<BenthosBatch> benthos) throws InvalidBatchModelException {
- List<CatchBatchValidationError> errors = catchBatchValidator.validateBenthos(sampleCategoryModel, benthos);
-
- if (CollectionUtils.isNotEmpty(errors)) {
- List<String> errorsStr = Lists.newArrayList();
- for (CatchBatchValidationError error : errors) {
- if (error.getGravity() == CatchBatchValidationError.GRAVITY_ERROR) {
- errorsStr.add(error.getMessage());
- }
- }
- if (!errorsStr.isEmpty()) {
- String join = Joiner.on("<br/>").join(errorsStr);
- throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.bad.sample.categories", join));
- }
- }
- }
-
- public void deleteCatchBatch(String fishingOperationId, Integer catchBatchId) {
-
- // delete individual observation batchs
- individualObservationBatchPersistenceService.deleteIndividualObservationBatchForFishingOperation(fishingOperationId);
-
- getCurrentSession().flush();
-
- // get all catch batch children ids (to delete attachments)
- List<Integer> ids = catchBatchDao.getAllChildrenIds(catchBatchId);
-
- catchBatchDao.remove(catchBatchId);
-
- getCurrentSession().flush();
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- ids.toArray(new Integer[ids.size()]));
- }
-
- public <D extends TuttiEntity> D createSortingBatch(D bean, CatchBatch catchBatch, SortingBatch batch) {
- batch = catchBatchDao.createSortingBatch(batch, catchBatch);
- bean.setId(batch.getId());
- return bean;
- }
-
- public void removeWithChildren(Integer batchId) {
- List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
- ids.add(batchId);
- catchBatchDao.removeWithChildren(batchId);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- ids.toArray(new Integer[ids.size()]));
- }
-
- public void removeWithChildren(Integer batchId, CatchBatch parentCatchBatch) {
- List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
- ids.add(batchId);
- catchBatchDao.removeWithChildren(batchId, parentCatchBatch);
-
- attachmentPersistenceService.deleteAllAttachment(
- AttachementObjectTypeEnum.BATCH,
- ids.toArray(new Integer[ids.size()]));
- }
-
- public void updateSortingBatch(List<SortingBatch> sortingBatchs, CatchBatch parentCatchBatch) {
- catchBatchDao.updateSortingBatch(sortingBatchs, parentCatchBatch);
- }
-
- public SortingBatch loadSortingBatch(Integer sortingBatchId, CatchBatch parentCatchBatch) {
- return catchBatchDao.loadSortingBatch(sortingBatchId, parentCatchBatch);
- }
-
- public void update(CatchBatch catchBatch) {
- catchBatchDao.update(catchBatch);
- }
-
- public void setSortingBatchReferenceTaxon(String batchId, Integer referenceTaxonId) {
- catchBatchDao.setSortingBatchReferenceTaxon(batchId, referenceTaxonId);
- }
-
- public SortingBatch getSortingBatchById(CatchBatch catchBatch, Integer sortingBatchId) {
- return catchBatchDao.getSortingBatchById(catchBatch, sortingBatchId);
- }
-
- public void updateSortingBatch(SortingBatch sortingBatch, CatchBatch parentCatchBatch) {
- catchBatchDao.updateSortingBatch(sortingBatch, parentCatchBatch);
- }
-
- public List<SortingBatch> getFrequencyChilds(SortingBatch sortingBatch) {
- List<SortingBatch> result = Lists.newArrayList();
-
- SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
-
- for (Batch batch : sortingBatch.getChildBatchs()) {
- SortingBatch child = (SortingBatch) batch;
- if (isFrequencyBatch(sampleCategoryModel, child)) {
- result.add(child);
- }
- }
- return result;
- }
-
- public List<SortingBatch> getFrequencies(String batchId) {
- Preconditions.checkNotNull(batchId);
- Integer sortingBatchId = Integer.valueOf(batchId);
- CatchBatch catchBatch = getRootCatchBatchByBatchId(sortingBatchId);
- SortingBatch sortingBatch = catchBatchDao.getSortingBatchById(
- catchBatch, sortingBatchId);
-
- List<SortingBatch> frequencyChilds = getFrequencyChilds(
- sortingBatch);
- return frequencyChilds;
- }
-
- public fr.ifremer.adagio.core.dao.data.batch.CatchBatch getRootCatchBatchByFishingOperationId(String fishingOperationId, boolean validate) {
- Preconditions.checkNotNull(fishingOperationId);
-
- Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId));
- Preconditions.checkNotNull(catchBatchId);
-
- // whenever want to repair anything from Tutti
- fr.ifremer.adagio.core.dao.data.batch.CatchBatch result;
-
- if (validate) {
-
- try {
- result = catchBatchDao.loadFullTree(catchBatchId, true, false);
- } catch (CatchBatchValidationException e) {
- throw new InvalidBatchModelException(
- "L'arbre d'échantillonage n'est pas compatible avec celui de Tutti.", e);
- }
- } else {
- result = catchBatchDao.loadFullTree(catchBatchId);
- }
- Preconditions.checkNotNull(result);
- return result;
- }
-
- public boolean isCatchBatchExistsForFishingOperation(Integer fishingOperationId) {
- return catchBatchDao.isCatchBatchExistsForFishingOperation(fishingOperationId);
- }
-
- public Integer getCatchBatchIdByFishingOperationId(Integer fishingOperationId) throws DataRetrievalFailureException {
- return catchBatchDao.getIdByFishingOperationId(fishingOperationId);
- }
-
- public fr.ifremer.adagio.core.dao.data.batch.CatchBatch getRootCatchBatchByBatchId(Integer batchId) {
- Preconditions.checkNotNull(batchId);
-
- Integer catchBatchId = catchBatchDao.getIdBySortingBatchId(batchId);
- Preconditions.checkNotNull(catchBatchId);
-
- // whenever want to repair anything from Tutti
- fr.ifremer.adagio.core.dao.data.batch.CatchBatch result;
-
- result = catchBatchDao.loadFullTree(catchBatchId);
-
- Preconditions.checkNotNull(result);
- return result;
- }
-
- public void setSpeciesBatchParents(Integer sampleCategoryId,
- Serializable sampleCategoryValue,
- SortingBatch target,
- String parentBatchIdStr,
- CatchBatch catchBatch) {
-
- Preconditions.checkNotNull(target);
- Preconditions.checkNotNull(catchBatch);
-
- target.setRootBatch(catchBatch);
-
- SortingBatch parentBatch;
- if (parentBatchIdStr != null) {
-
- // Load existing parent and root
- parentBatch = catchBatchDao.getSortingBatchById(catchBatch, Integer.valueOf(parentBatchIdStr));
- } else {
-
- // Or retrieve parent batch, from pmfm id
- // Retrieve category type
- if (!sampleCategoryId.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
- throw new DataIntegrityViolationException(MessageFormat.format(
- "A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
- sampleCategoryId,
- enumeration.PMFM_ID_SORTED_UNSORTED));
- }
-
- Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
-
- if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
-
- // -- Vrac > Species > Alive itemized
- parentBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(catchBatch);
-
- if (parentBatch == null) {
-
- // -- Vrac
- SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
-
- if (vracBatch == null) {
- vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
- }
-
- // -- Vrac > Species
- SortingBatch vracSpeciesBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
-
- if (vracSpeciesBatch == null) {
- vracSpeciesBatch = batchTreeHelper.getOrCreateSpeciesVracRootBatch(catchBatch, vracBatch, null);
- }
-
- // -- Vrac > Species > Alive itemized
- parentBatch = batchTreeHelper.getOrCreateSpeciesVracAliveItemizedRootBatch(catchBatch, vracSpeciesBatch);
-
- }
- } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
-
- // -- Hors Vrac > Species
- parentBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(catchBatch);
-
- if (parentBatch == null) {
-
- // -- Hors Vrac
- SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
-
- // -- Hors Vrac > Species
- parentBatch = batchTreeHelper.getOrCreateSpeciesHorsVracRootBatch(catchBatch, horsVracBatch);
- }
- } else {
-
- // not possible
- throw new DataIntegrityViolationException("Should have Vrac / Hor Vrac qualitative value, but had: " + qualitativeValueId);
- }
-
- }
-
- Preconditions.checkNotNull(parentBatch);
- target.setParentBatch(parentBatch);
- }
-
- public void setBenthosBatchParents(Integer sampleCategoryType,
- Serializable sampleCategoryValue,
- SortingBatch target,
- String parentBatchIdStr,
- CatchBatch catchBatch) {
-
- Preconditions.checkNotNull(target);
- Preconditions.checkNotNull(catchBatch);
-
- target.setRootBatch(catchBatch);
-
- SortingBatch parentBatch;
- if (parentBatchIdStr != null) {
-
- // Load existing parent and root
- parentBatch = catchBatchDao.getSortingBatchById(catchBatch, Integer.valueOf(parentBatchIdStr));
- } else {
-
- // Or retrieve parent batch, from pmfm id
- // Retrieve category type
- if (!sampleCategoryType.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
- throw new DataIntegrityViolationException(MessageFormat.format(
- "A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
- sampleCategoryType,
- enumeration.PMFM_ID_SORTED_UNSORTED));
- }
-
- Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
-
- if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
-
- // -- Vrac > Benthos > Alive Itemized
- parentBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(catchBatch);
-
- if (parentBatch == null) {
-
- // -- Vrac
- SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
-
- if (vracBatch == null) {
- vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
- }
-
- // -- Vrac > Benthos
- SortingBatch vracBenthosBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
-
- if (vracBenthosBatch == null) {
- vracBenthosBatch = batchTreeHelper.getOrCreateBenthosVracRootBatch(catchBatch, vracBatch, null);
- }
-
- // -- Vrac > Benthos > Alive itemized
- parentBatch = batchTreeHelper.getOrCreateBenthosVracAliveItemizedRootBatch(catchBatch, vracBenthosBatch);
-
- }
- } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
-
- // -- Hors Vrac > Benthos
- parentBatch = batchTreeHelper.getBenthosHorsVracRootBatch(catchBatch);
-
- if (parentBatch == null) {
-
- // -- Hors Vrac
- SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
-
- // -- Hors Vrac > Benthos
- parentBatch = batchTreeHelper.getOrCreateBenthosHorsVracRootBatch(catchBatch, horsVracBatch);
- }
- } else {
-
- // not possible
- throw new DataIntegrityViolationException("Should have Vrac / Hors Vrac qualitative value, but had: " + qualitativeValueId);
- }
- }
-
- Preconditions.checkNotNull(parentBatch);
- target.setParentBatch(parentBatch);
- }
-
- public void setMarineLitterBatchParents(SortingBatch target, CatchBatch catchBatch) {
-
- Preconditions.checkNotNull(target);
-
- // -- Hors Vrac > Marine Litter
- SortingBatch parentBatch = batchTreeHelper.getMarineLitterRootBatch(catchBatch);
-
- if (parentBatch == null) {
-
- // -- Hors Vrac
- SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
-
- // -- Hors Vrac > Marine Litter
- parentBatch = batchTreeHelper.getOrCreateMarineLitterRootBatch(catchBatch, horsVracBatch, null);
- }
-
- target.setParentBatch(parentBatch);
- target.setRootBatch(catchBatch);
- }
-
- public Integer convertSampleCategoryValueIntoQualitativeId(Serializable value) {
- if (value == null) {
- return null;
- }
- Integer qualitativeValueId = null;
- if (value instanceof CaracteristicQualitativeValue) {
- CaracteristicQualitativeValue cqValue = (CaracteristicQualitativeValue) value;
- qualitativeValueId = cqValue.getIdAsInt();
- } else if (value instanceof String) {
- qualitativeValueId = Integer.valueOf((String) value);
- }
- return qualitativeValueId;
- }
-
- public void deleteSpeciesSubBatch(String id) {
- Preconditions.checkNotNull(id);
-
- Integer speciesBatchId = Integer.valueOf(id);
-
- CatchBatch catchBatch = getRootCatchBatchByBatchId(speciesBatchId);
- SortingBatch sortingBatch = getSortingBatchById(catchBatch, speciesBatchId);
-
- // get his children
- Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
-
- if (CollectionUtils.isNotEmpty(childBatchs)) {
-
- for (Batch childBatch : childBatchs) {
-
- // delete this child and all his children
- Integer childBatchId = childBatch.getId();
-
- if (log.isDebugEnabled()) {
- log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
- }
- removeWithChildren(childBatchId);
- }
- }
- }
-
-
- public <S extends SpeciesAbleBatch> void setSampleCategoryQualitative(S target,
- Integer pmfmId,
- Float numericalvalue,
- String alphanumericalValue,
- Integer qualitativeValueId) {
- // skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
- if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
- return;
- }
- SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
-
- boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(pmfmId);
- Preconditions.checkNotNull(isSamplingCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
-
- target.setSampleCategoryId(pmfmId);
- Serializable categoryValue = getSampleCategoryQualitative(
- pmfmId,
- numericalvalue,
- alphanumericalValue,
- qualitativeValueId);
- target.setSampleCategoryValue(categoryValue);
- }
-
- public <F extends SpeciesAbleBatchFrequency & TuttiEntity> void entityToBatchFrequency(SortingBatch source,
- F target) {
-
- target.setId(source.getId());
-
- // Rank order
- target.setRankOrder(Integer.valueOf(source.getRankOrder()));
-
- target.setNumber(source.getIndividualCount());
- target.setWeight(source.getWeight());
-
- Preconditions.checkState(source.getSortingMeasurements().size() == 1, "SortingBatch [" + source.getId() + "] need exactly one sortingMeasurement (to store the length step category), but had " + source.getSortingMeasurements().size());
- SortingMeasurement sm = source.getSortingMeasurements().iterator().next();
- Preconditions.checkNotNull(sm.getPmfm(), "SortingMeasurement [" + sm.getId() + "] can not have a null pmfm");
- Preconditions.checkNotNull(sm.getPmfm().getId(), "SortingMeasurement [" + sm.getId() + "] can not have a pmfm with null id");
-
- // Length step category
- Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(sm.getPmfm().getId());
- target.setLengthStepCaracteristic(lengthStepCaracteristic);
-
- // Length
- target.setLengthStep(sm.getNumericalValue());
- }
-
- public Serializable getSampleCategoryQualitative(Integer pmfmId,
- Float numericalvalue,
- String alphanumericalValue,
- Integer qualitativeValueId) {
-
- if (numericalvalue != null) {
- return numericalvalue;
- }
- if (alphanumericalValue != null) {
- return alphanumericalValue;
- }
-
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
- if (caracteristic == null || caracteristic.getCaracteristicType() != CaracteristicType.QUALITATIVE) {
- return null;
- }
- CaracteristicQualitativeValue value = null;
- for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) {
- if (qualitativeValueId.equals(qv.getIdAsInt())) {
- value = qv;
- break;
- }
- }
-
- return value;
- }
-
- //------------------------------------------------------------------------//
- //-- Internal methods --//
- //------------------------------------------------------------------------//
-
- protected Integer getRecorderDepartmentId() {
- // TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
- return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
- }
-
- /**
- * Check if the given {@code sortingBatch} is a frequency one.
- * <p/>
- * We test that:
- * <ul>
- * <li>batch has exactly one measurement</li>
- * <li>the measurement pmfm is not a sample category</li>
- * </ul>
- *
- * @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.
- */
- public boolean isFrequencyBatch(SampleCategoryModel sampleCategoryModel,
- SortingBatch sortingBatch) {
- boolean result = false;
- if (sortingBatch.getSortingMeasurements().size() == 1) {
- SortingMeasurement sm
- = sortingBatch.getSortingMeasurements().iterator().next();
- Pmfm pmfm = sm.getPmfm();
-
- result = sortingBatch.getIndividualCount() != null &&
- !sampleCategoryModel.containsCategoryId(pmfm.getId());
- }
- return result;
- }
-
-// protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch target,
-// Batch batch,
-// Integer pmfmId,
-// Integer pmfmValue,
-// Float totalWeight,
-// short rankOrder) {
-// return getOrCreate(
-// target,
-// batch,
-// pmfmId,
-// pmfmValue,
-// totalWeight,
-// null,
-// rankOrder
-// );
-// }
-
-// protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
-// Batch parentBatch,
-// Integer sortingPmfmId,
-// Integer sortingQualitativeValueId,
-// Float weight,
-// Float weightBeforeSampling,
-// short rankOrder) {
-// SortingBatch result = batchTreeHelper.get(
-// parentBatch,
-// sortingPmfmId,
-// sortingQualitativeValueId);
-//
-// if (result == null) {
-//
-// result = SortingBatch.Factory.newInstance();
-// if (parentBatch.getChildBatchs() == null) {
-// parentBatch.setChildBatchs(Sets.<Batch>newHashSet());
-// }
-// parentBatch.getChildBatchs().add(result);
-//
-// Collection<SortingMeasurement> sortingMeasurements = result.getSortingMeasurements();
-//
-// // Create lists to store all updates, then remove not updated items
-// Set<SortingMeasurement> notChangedSortingMeasurements = Sets.newHashSet();
-// if (sortingMeasurements != null) {
-// notChangedSortingMeasurements.addAll(sortingMeasurements);
-// }
-//
-// // Some mandatory properties :
-// QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
-// result.setQualityFlag(qualityFlag);
-// result.setRootBatch(rootBatch);
-// result.setParentBatch(parentBatch);
-// result.setExhaustiveInventory(true);
-//
-// // No taxon or taxon group
-// result.setReferenceTaxon(null);
-// result.setTaxonGroup(null);
-//
-// result.setRankOrder(rankOrder);
-//
-// // Sorting measurement
-// if (sortingPmfmId != null && sortingQualitativeValueId != null) {
-// SortingMeasurement sm = setSortingMeasurement(
-// result,
-// sortingPmfmId,
-// sortingQualitativeValueId);
-// notChangedSortingMeasurements.remove(sm);
-// }
-// // Removed not changed sorting measurements
-// if (sortingMeasurements != null) {
-// sortingMeasurements.removeAll(notChangedSortingMeasurements);
-// }
-//
-// catchBatchDao.createSortingBatch(result, rootBatch);
-// }
-//
-// Collection<QuantificationMeasurement> quantificationMeasurements = result.getQuantificationMeasurements();
-// Set<QuantificationMeasurement> notChangedQuantificationMeasurements = Sets.newHashSet();
-// if (quantificationMeasurements != null) {
-// notChangedQuantificationMeasurements.addAll(quantificationMeasurements);
-// }
-//
-// // Sampling Ratio
-// if (weightBeforeSampling == null || weight == null) {
-// result.setSamplingRatio(null);
-// result.setSamplingRatioText(null);
-// } else {
-// String samplingRatioText = weight + "/" + weightBeforeSampling;
-// samplingRatioText = samplingRatioText.replaceAll(",", ".");
-// result.setSamplingRatioText(samplingRatioText);
-// result.setSamplingRatio(weight / weightBeforeSampling);
-// }
-//
-// // Weight
-// if (weightBeforeSampling != null || weight != null) {
-// Float batchReferenceWeight = weight;
-// if (batchReferenceWeight == null) {
-// batchReferenceWeight = weightBeforeSampling;
-// }
-// QuantificationMeasurement quantificationMeasurement = setWeightMeasurementQuantificationMeasurement(
-// result,
-// batchReferenceWeight);
-// notChangedQuantificationMeasurements.remove(quantificationMeasurement);
-// }
-// // Removed not changed quantification measurements
-// if (quantificationMeasurements != null) {
-// quantificationMeasurements.removeAll(notChangedQuantificationMeasurements);
-// }
-//
-// return result;
-// }
-
-// protected SortingBatch get(Batch parentBatch,
-// Integer sortingPmfmId,
-// Integer sortingQualitativeValueId) {
-// SortingBatch result = getSortingBatch(
-// parentBatch,
-// null,
-// sortingPmfmId,
-// sortingQualitativeValueId);
-// return result;
-// }
-}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -1,687 +0,0 @@
-package fr.ifremer.tutti.persistence.service.batch;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.Sets;
-import fr.ifremer.adagio.core.dao.data.batch.Batch;
-import fr.ifremer.adagio.core.dao.data.batch.Batchs;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
-import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
-import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
-import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
-import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
-import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
-import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
-import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
-import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
-import fr.ifremer.tutti.persistence.service.MeasurementPersistenceHelper;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.SystemUtils;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Helper to build or navigauet into the batch tree.
- * <p/>
- * Created on 4/20/14.
- *
- * @author Tony Chemit <chemit(a)codelutin.com>
- * @since 3.5
- */
-@Component("batchTreeHelper")
-public class BatchTreeHelper extends AbstractPersistenceService {
-
- /** Logger. */
- private static final Log log = LogFactory.getLog(BatchTreeHelper.class);
-
- @Resource(name = "measurementPersistenceHelper")
- protected MeasurementPersistenceHelper measurementPersistenceHelper;
-
- @Resource(name = "catchBatchDao")
- protected CatchBatchExtendDao catchBatchDao;
-
- protected Comparator<Batch> batchComparator = Batchs.newRankOrderComparator();
-
- //------------------------------------------------------------------------//
- //-- Get CatchBatch navigation methods --//
- //------------------------------------------------------------------------//
-
- public SortingBatch getSpeciesVracAliveItemizedRootBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Species > Alive Itemized",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
- enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
- );
- }
-
- public SortingBatch getBenthosVracAliveItemizedRootBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Benthos > Alive itemized",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
- );
- }
-
- public SortingBatch getSpeciesHorsVracRootBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > Species",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
- );
- }
-
- public SortingBatch getBenthosHorsVracRootBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
- );
- }
-
- public SortingBatch getMarineLitterRootBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > Marine Litter",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID,
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
- );
- }
-
- public SortingBatch getVracBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_VRAC_ID
- );
- }
-
- public SortingBatch getHorsVracBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID
- );
- }
-
- public SortingBatch getRejectedBatch(CatchBatch batch) {
- return getSortingBatch(
- batch,
- "Unsorted",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_UNSORTED_ID
- );
- }
-
- //------------------------------------------------------------------------//
- //-- Get SortingBatch navigation methods --//
- //------------------------------------------------------------------------//
-
- public SortingBatch getSpeciesVracRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
- );
- }
-
- public SortingBatch getBenthosVracRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
- );
- }
-
- public SortingBatch getSpeciesVracAliveNotItemizedRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Species > Alive not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
- );
- }
-
- public SortingBatch getBenthosVracAliveNotItemizedRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Benthos > Alive not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
- );
- }
-
- public SortingBatch getSpeciesVracInertRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Species > Inert (not alive)",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
- );
- }
-
- public SortingBatch getBenthosVracInertRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Benthos > Inert (not alive)",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
- );
- }
-
- public SortingBatch getSpeciesVracAliveItemizedRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Species > Alive itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
- );
- }
-
- public SortingBatch getBenthosVracAliveItemizedRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Vrac > Benthos > Alive itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
- );
- }
-
- public SortingBatch getSpeciesHorsVracRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
- );
- }
-
- public SortingBatch getBenthosHorsVracRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
- );
- }
-
- public SortingBatch getMarineLitterRootBatch(SortingBatch batch) {
- return getSortingBatch(
- batch,
- "Hors Vrac > MarineLitter",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
- );
- }
-
- //------------------------------------------------------------------------//
- //-- getOrCreate methods --//
- //------------------------------------------------------------------------//
-
- public SortingBatch getOrCreateVracBatch(CatchBatch batch,
- Float weight,
- Float weightBeforeSampling) {
- return getOrCreate(
- batch,
- batch,
- "Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_VRAC_ID,
- weight,
- weightBeforeSampling,
- (short) 1
- );
- }
-
- public SortingBatch getOrCreateSpeciesVracRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
- totalWeight,
- (short) 1
- );
- }
-
- public SortingBatch getOrCreateSpeciesVracAliveNotItemizedRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Species > Alive Not Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
- totalWeight,
- (short) 1
- );
- }
-
- public SortingBatch getOrCreateSpeciesVracInertRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Species > Inert",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
- totalWeight,
- (short) 2
- );
- }
-
- public SortingBatch getOrCreateSpeciesVracAliveItemizedRootBatch(CatchBatch target,
- SortingBatch batch) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Benthos > Alive Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
- null,
- (short) 3
- );
- }
-
- public SortingBatch getOrCreateBenthosVracRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- totalWeight,
- (short) 2
- );
- }
-
- public SortingBatch getOrCreateBenthosVracAliveNotItemizedRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Benthos > Alive Not itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
- totalWeight,
- (short) 1
- );
- }
-
- public SortingBatch getOrCreateBenthosVracInertRootBatch(fr.ifremer.adagio.core.dao.data.batch.CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Benthos > Inert",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
- totalWeight,
- (short) 2
- );
- }
-
- public SortingBatch getOrCreateBenthosVracAliveItemizedRootBatch(CatchBatch target,
- SortingBatch batch) {
- return getOrCreate(
- target,
- batch,
- "Vrac > Benthos > Alive Itemized",
- enumeration.PMFM_ID_SORTING_TYPE_2,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
- null,
- (short) 3
- );
- }
-
- public SortingBatch getOrCreateHorsVracBatch(CatchBatch batch) {
- return getOrCreate(
- batch,
- batch,
- "Hors Vrac",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_HORS_VRAC_ID,
- null,
- (short) 2
- );
- }
-
- public SortingBatch getOrCreateSpeciesHorsVracRootBatch(CatchBatch target,
- SortingBatch batch) {
- return getOrCreate(
- target,
- batch,
- "Hors Vrac > Species",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
- null,
- (short) 1
- );
- }
-
- public SortingBatch getOrCreateBenthosHorsVracRootBatch(CatchBatch target,
- SortingBatch batch) {
- return getOrCreate(
- target,
- batch,
- "Hors Vrac > Benthos",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
- null,
- (short) 2
- );
- }
-
- public SortingBatch getOrCreateMarineLitterRootBatch(CatchBatch target,
- SortingBatch batch,
- Float totalWeight) {
- return getOrCreate(
- target,
- batch,
- "Hors Vrac > Marine Litter",
- enumeration.PMFM_ID_SORTING_TYPE,
- enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER,
- totalWeight,
- (short) 3
- );
- }
-
- public SortingBatch getOrCreateRejectedBatch(CatchBatch batch,
- Float weight) {
-
- return getOrCreate(
- batch,
- batch,
- "Unsorted",
- enumeration.PMFM_ID_SORTED_UNSORTED,
- enumeration.QUALITATIVE_UNSORTED_ID,
- weight,
- (short) 3
- );
- }
-
- //------------------------------------------------------------------------//
- //-- Internal methods --//
- //------------------------------------------------------------------------//
-
- protected SortingBatch get(Batch parentBatch,
- Integer sortingPmfmId,
- Integer sortingQualitativeValueId) {
- SortingBatch result = getSortingBatch(
- parentBatch,
- null,
- sortingPmfmId,
- sortingQualitativeValueId);
- return result;
- }
-
- protected SortingBatch getSortingBatch(Batch source,
- String debugMessage,
- Integer... ids) {
-
- return getSortingBatch(source.getChildBatchs(), debugMessage, ids);
- }
-
- protected SortingBatch getSortingBatch(Collection<Batch> childs,
- String debugMessage,
- Integer... ids) {
-
- int nbParams = ids.length / 2;
-
- Object[] params = new Object[nbParams * 3];
- for (int i = 0; i < nbParams; i++) {
- Integer sortingPmfmId = ids[2 * i];
- Integer sortingQualitativeValueId = ids[2 * i + 1];
- params[3 * i] = CatchBatchExtendDao.PMFM_ID;
- params[3 * i + 1] = sortingPmfmId;
- params[3 * i + 2] = sortingQualitativeValueId;
- }
- SortingBatch result = catchBatchDao.getSortingBatch(childs, params);
- if (result != null && debugMessage != null && log.isDebugEnabled()) {
- log.debug("Loaded " + debugMessage + ": " + result.getId());
- }
- return result;
- }
-
- protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
- Batch batch,
- String debugMessage,
- Integer sortingPmfmId,
- Integer sortingQualitativeValueId,
- Float totalWeight,
- short rankOrder) {
- return getOrCreate(
- rootBatch,
- batch,
- debugMessage,
- sortingPmfmId,
- sortingQualitativeValueId,
- totalWeight,
- null,
- rankOrder
- );
- }
-
- protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
- Batch batch,
- String debugMessage,
- Integer sortingPmfmId,
- Integer sortingQualitativeValueId,
- Float weight,
- Float weightBeforeSampling,
- short rankOrder) {
- SortingBatch result = getSortingBatch(
- batch,
- debugMessage,
- sortingPmfmId,
- sortingQualitativeValueId);
-
- if (result == null) {
-
- result = SortingBatch.Factory.newInstance();
- if (batch.getChildBatchs() == null) {
- batch.setChildBatchs(Sets.<Batch>newHashSet());
- }
- batch.getChildBatchs().add(result);
-
- Collection<SortingMeasurement> sortingMeasurements = result.getSortingMeasurements();
-
- // Create lists to store all updates, then remove not updated items
- Set<SortingMeasurement> notChangedSortingMeasurements = Sets.newHashSet();
- if (sortingMeasurements != null) {
- notChangedSortingMeasurements.addAll(sortingMeasurements);
- }
-
- // Some mandatory properties :
- QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
- result.setQualityFlag(qualityFlag);
- result.setRootBatch(rootBatch);
- result.setParentBatch(batch);
- result.setExhaustiveInventory(true);
-
- // No taxon or taxon group
- result.setReferenceTaxon(null);
- result.setTaxonGroup(null);
-
- result.setRankOrder(rankOrder);
-
- // Sorting measurement
- if (sortingPmfmId != null && sortingQualitativeValueId != null) {
- SortingMeasurement sm = measurementPersistenceHelper.setSortingMeasurement(
- result,
- sortingPmfmId,
- sortingQualitativeValueId);
- notChangedSortingMeasurements.remove(sm);
- }
- // Removed not changed sorting measurements
- if (sortingMeasurements != null) {
- sortingMeasurements.removeAll(notChangedSortingMeasurements);
- }
-
- catchBatchDao.createSortingBatch(result, rootBatch);
- }
-
- Collection<QuantificationMeasurement> quantificationMeasurements = result.getQuantificationMeasurements();
- Set<QuantificationMeasurement> notChangedQuantificationMeasurements = Sets.newHashSet();
- if (quantificationMeasurements != null) {
- notChangedQuantificationMeasurements.addAll(quantificationMeasurements);
- }
-
- // Sampling Ratio
- if (weightBeforeSampling == null || weight == null) {
- result.setSamplingRatio(null);
- result.setSamplingRatioText(null);
- } else {
- String samplingRatioText = weight + "/" + weightBeforeSampling;
- samplingRatioText = samplingRatioText.replaceAll(",", ".");
- result.setSamplingRatioText(samplingRatioText);
- result.setSamplingRatio(weight / weightBeforeSampling);
- }
-
- // Weight
- if (weightBeforeSampling != null || weight != null) {
- Float batchReferenceWeight = weight;
- if (batchReferenceWeight == null) {
- batchReferenceWeight = weightBeforeSampling;
- }
- QuantificationMeasurement quantificationMeasurement = measurementPersistenceHelper.setWeightMeasurementQuantificationMeasurement(
- result,
- batchReferenceWeight);
- notChangedQuantificationMeasurements.remove(quantificationMeasurement);
- }
- // Removed not changed quantification measurements
- if (quantificationMeasurements != null) {
- quantificationMeasurements.removeAll(notChangedQuantificationMeasurements);
- }
-
- return result;
- }
-
- //------------------------------------------------------------------------//
- //-- Debug methods --//
- //------------------------------------------------------------------------//
-
- public void displayCatchBatch(CatchBatch result) {
- StringBuilder sb = new StringBuilder();
- displayBatch(result, 0, sb);
- if (log.isDebugEnabled()) {
- log.debug(sb.toString());
- }
- }
-
- protected void displayBatch(Batch batch, int level, StringBuilder sb) {
-
- ToStringStyle style = new BatchTreeToStringStyle();
-
- ToStringBuilder builder = new ToStringBuilder(batch, style);
- builder.append("id", batch.getId());
- builder.append("rankOrder", batch.getRankOrder());
-// builder.append("level", level);
-// if (batch.getParentBatch() != null) {
-// builder.append("parentId", batch.getParentBatch().getId());
-// }
-
- if (batch instanceof CatchBatch) {
- CatchBatch catchBatch = (CatchBatch) batch;
- builder.append("synchronizationStatus", catchBatch.getSynchronizationStatus());
- }
- if (batch instanceof SortingBatch) {
- SortingBatch sortingBatch = (SortingBatch) batch;
- if (sortingBatch.getSamplingRatio() != null) {
- builder.append("samplingRatio", sortingBatch.getSamplingRatio());
- }
- if (sortingBatch.getSamplingRatioText() != null) {
- builder.append("samplingRatioText", sortingBatch.getSamplingRatioText());
- }
- if (sortingBatch.getIndividualCount() != null) {
- builder.append("individualCount", sortingBatch.getIndividualCount());
- }
- if (sortingBatch.getReferenceTaxon() != null) {
- ReferenceTaxon referenceTaxon = sortingBatch.getReferenceTaxon();
- builder.append("referenceTaxon", load(ReferenceTaxonImpl.class, referenceTaxon.getId()).getName());
- }
-
- SortingMeasurement sm = null;
- if (sortingBatch.getSortingMeasurements() != null && sortingBatch.getSortingMeasurements().size() == 1) {
- sm = sortingBatch.getSortingMeasurements().iterator().next();
- } else if (sortingBatch.getReferenceTaxon() != null && sortingBatch.getReferenceTaxon().getId() != null) {
- sm = measurementPersistenceHelper.getInheritedSortingMeasurement(sortingBatch);
- }
- if (sm != null) {
- String sortingMeasurementStr = measurementPersistenceHelper.toString(sm);
- builder.append("sortingMeasurement", sortingMeasurementStr);
- }
- }
- QuantificationMeasurement quantificationMeasurement = measurementPersistenceHelper.getWeightMeasurementQuantificationMeasurement(batch);
- if (quantificationMeasurement != null) {
- String quantificationMeasurementStr = measurementPersistenceHelper.toString(quantificationMeasurement);
- builder.append("weightQuantificationMeasurement", quantificationMeasurementStr);
- builder.append("weightQuantificationMeasurement.isReferenceQuantification", quantificationMeasurement.getIsReferenceQuantification());
- }
- if (batch.getWeight() != null) {
- builder.append("weight", batch.getWeight());
- }
- if (batch.getWeightBeforeSampling() != null) {
- builder.append("weightBeforeSampling", batch.getWeightBeforeSampling());
- }
- builder.append("qualityFlag", load(QualityFlagImpl.class, batch.getQualityFlag().getCode()).getName());
-
- String prefix = "\n" + StringUtils.leftPad("", 2 * level);
- String batchStr = Joiner.on(prefix).join(builder.build().split("\n"));
- sb.append(prefix).append(batchStr);
- Collection<Batch> childBatchs = batch.getChildBatchs();
- if (childBatchs != null) {
- List<Batch> childBatchList = new ArrayList<>(childBatchs);
- Collections.sort(childBatchList, batchComparator);
- for (Batch childBatch : childBatchList) {
- displayBatch(childBatch, level + 1, sb);
- }
- }
- }
-
-
- static final class BatchTreeToStringStyle extends ToStringStyle {
-
- private static final long serialVersionUID = 1L;
-
- BatchTreeToStringStyle() {
- super();
- this.setUseClassName(true);
- this.setUseShortClassName(true);
- this.setContentStart("");
- this.setFieldSeparator(SystemUtils.LINE_SEPARATOR + " | ");
- this.setFieldSeparatorAtStart(true);
- this.setContentEnd("");
- }
- }
-}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -34,6 +34,7 @@
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
+import fr.ifremer.tutti.persistence.service.util.BatchTreeHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java (from rev 1722, 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/util/BatchPersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,747 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+/*
+ * #%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.base.Joiner;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
+import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
+import fr.ifremer.adagio.core.dao.data.batch.SortingBatchDao;
+import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationError;
+import fr.ifremer.adagio.core.dao.data.batch.validator.CatchBatchValidationException;
+import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
+import fr.ifremer.tutti.persistence.InvalidBatchModelException;
+import fr.ifremer.tutti.persistence.entities.TuttiEntity;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
+import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
+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.service.AbstractPersistenceService;
+import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
+import fr.ifremer.tutti.persistence.service.IndividualObservationBatchPersistenceService;
+import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
+import fr.ifremer.tutti.persistence.service.batch.TuttiCatchBatchValidator;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.dao.DataIntegrityViolationException;
+import org.springframework.dao.DataRetrievalFailureException;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n.t;
+
+/**
+ * Helper around batches.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.2
+ */
+@Component("batchPersistenceHelper")
+public class BatchPersistenceHelper extends AbstractPersistenceService {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(BatchPersistenceHelper.class);
+
+ @Resource(name = "referentialPersistenceService")
+ protected ReferentialPersistenceService referentialService;
+
+ @Resource(name = "attachmentPersistenceService")
+ protected AttachmentPersistenceService attachmentPersistenceService;
+
+ @Resource(name = "individualObservationBatchPersistenceService")
+ protected IndividualObservationBatchPersistenceService individualObservationBatchPersistenceService;
+
+ @Resource(name = "catchBatchDao")
+ protected CatchBatchExtendDao catchBatchDao;
+
+ @Resource(name = "sortingBatchDao")
+ protected SortingBatchDao sortingBatchDao;
+
+ @Resource(name = "scientificCruiseCatchBatchValidator")
+ protected TuttiCatchBatchValidator catchBatchValidator;
+
+ @Resource(name = "batchTreeHelper")
+ protected BatchTreeHelper batchTreeHelper;
+
+ @Override
+ public void init() {
+ super.init();
+ catchBatchDao.registerCatchBatchValidator(catchBatchValidator);
+ }
+
+ @Override
+ public void close() {
+ catchBatchDao.unregisterCatchBatchValidator(catchBatchValidator);
+ super.close();
+ }
+
+ public fr.ifremer.tutti.persistence.entities.data.CatchBatch createCatchBatch(fr.ifremer.tutti.persistence.entities.data.CatchBatch bean, CatchBatch catchBatch) {
+ catchBatch = catchBatchDao.create(catchBatch);
+ bean.setId(catchBatch.getId());
+ return bean;
+ }
+
+ public void validateSpecies(SampleCategoryModel sampleCategoryModel,
+ BatchContainer<SpeciesBatch> species) throws InvalidBatchModelException {
+ List<CatchBatchValidationError> errors = catchBatchValidator.validateSpecies(sampleCategoryModel, species);
+ List<String> errorsStr = Lists.newArrayList();
+ for (CatchBatchValidationError error : errors) {
+ if (error.getGravity() == CatchBatchValidationError.GRAVITY_ERROR) {
+ errorsStr.add(error.getMessage());
+ }
+ }
+ if (!errorsStr.isEmpty()) {
+ String join = Joiner.on("<br/>").join(errorsStr);
+ throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.bad.sample.categories", join));
+ }
+ }
+
+ public void validateBenthos(SampleCategoryModel sampleCategoryModel,
+ BatchContainer<BenthosBatch> benthos) throws InvalidBatchModelException {
+ List<CatchBatchValidationError> errors = catchBatchValidator.validateBenthos(sampleCategoryModel, benthos);
+
+ if (CollectionUtils.isNotEmpty(errors)) {
+ List<String> errorsStr = Lists.newArrayList();
+ for (CatchBatchValidationError error : errors) {
+ if (error.getGravity() == CatchBatchValidationError.GRAVITY_ERROR) {
+ errorsStr.add(error.getMessage());
+ }
+ }
+ if (!errorsStr.isEmpty()) {
+ String join = Joiner.on("<br/>").join(errorsStr);
+ throw new InvalidBatchModelException(t("tutti.persistence.batch.validation.bad.sample.categories", join));
+ }
+ }
+ }
+
+ public void deleteCatchBatch(String fishingOperationId, Integer catchBatchId) {
+
+ // delete individual observation batchs
+ individualObservationBatchPersistenceService.deleteIndividualObservationBatchForFishingOperation(fishingOperationId);
+
+ getCurrentSession().flush();
+
+ // get all catch batch children ids (to delete attachments)
+ List<Integer> ids = catchBatchDao.getAllChildrenIds(catchBatchId);
+
+ catchBatchDao.remove(catchBatchId);
+
+ getCurrentSession().flush();
+
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
+ }
+
+ public <D extends TuttiEntity> D createSortingBatch(D bean, CatchBatch catchBatch, SortingBatch batch) {
+ batch = catchBatchDao.createSortingBatch(batch, catchBatch);
+ bean.setId(batch.getId());
+ return bean;
+ }
+
+ public void removeWithChildren(Integer batchId) {
+ List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
+ ids.add(batchId);
+ catchBatchDao.removeWithChildren(batchId);
+
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
+ }
+
+ public void removeWithChildren(Integer batchId, CatchBatch parentCatchBatch) {
+ List<Integer> ids = catchBatchDao.getAllChildrenIds(batchId);
+ ids.add(batchId);
+ catchBatchDao.removeWithChildren(batchId, parentCatchBatch);
+
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.BATCH,
+ ids.toArray(new Integer[ids.size()]));
+ }
+
+ public void updateSortingBatch(List<SortingBatch> sortingBatchs, CatchBatch parentCatchBatch) {
+ catchBatchDao.updateSortingBatch(sortingBatchs, parentCatchBatch);
+ }
+
+ public SortingBatch loadSortingBatch(Integer sortingBatchId, CatchBatch parentCatchBatch) {
+ return catchBatchDao.loadSortingBatch(sortingBatchId, parentCatchBatch);
+ }
+
+ public void update(CatchBatch catchBatch) {
+ catchBatchDao.update(catchBatch);
+ }
+
+ public void setSortingBatchReferenceTaxon(String batchId, Integer referenceTaxonId) {
+ catchBatchDao.setSortingBatchReferenceTaxon(batchId, referenceTaxonId);
+ }
+
+ public SortingBatch getSortingBatchById(CatchBatch catchBatch, Integer sortingBatchId) {
+ return catchBatchDao.getSortingBatchById(catchBatch, sortingBatchId);
+ }
+
+ public void updateSortingBatch(SortingBatch sortingBatch, CatchBatch parentCatchBatch) {
+ catchBatchDao.updateSortingBatch(sortingBatch, parentCatchBatch);
+ }
+
+ public List<SortingBatch> getFrequencyChilds(SortingBatch sortingBatch) {
+ List<SortingBatch> result = Lists.newArrayList();
+
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
+
+ for (Batch batch : sortingBatch.getChildBatchs()) {
+ SortingBatch child = (SortingBatch) batch;
+ if (isFrequencyBatch(sampleCategoryModel, child)) {
+ result.add(child);
+ }
+ }
+ return result;
+ }
+
+ public List<SortingBatch> getFrequencies(String batchId) {
+ Preconditions.checkNotNull(batchId);
+ Integer sortingBatchId = Integer.valueOf(batchId);
+ CatchBatch catchBatch = getRootCatchBatchByBatchId(sortingBatchId);
+ SortingBatch sortingBatch = catchBatchDao.getSortingBatchById(
+ catchBatch, sortingBatchId);
+
+ List<SortingBatch> frequencyChilds = getFrequencyChilds(
+ sortingBatch);
+ return frequencyChilds;
+ }
+
+ public fr.ifremer.adagio.core.dao.data.batch.CatchBatch getRootCatchBatchByFishingOperationId(String fishingOperationId, boolean validate) {
+ Preconditions.checkNotNull(fishingOperationId);
+
+ Integer catchBatchId = catchBatchDao.getIdByFishingOperationId(Integer.valueOf(fishingOperationId));
+ Preconditions.checkNotNull(catchBatchId);
+
+ // whenever want to repair anything from Tutti
+ fr.ifremer.adagio.core.dao.data.batch.CatchBatch result;
+
+ if (validate) {
+
+ try {
+ result = catchBatchDao.loadFullTree(catchBatchId, true, false);
+ } catch (CatchBatchValidationException e) {
+ throw new InvalidBatchModelException(
+ "L'arbre d'échantillonage n'est pas compatible avec celui de Tutti.", e);
+ }
+ } else {
+ result = catchBatchDao.loadFullTree(catchBatchId);
+ }
+ Preconditions.checkNotNull(result);
+ return result;
+ }
+
+ public boolean isCatchBatchExistsForFishingOperation(Integer fishingOperationId) {
+ return catchBatchDao.isCatchBatchExistsForFishingOperation(fishingOperationId);
+ }
+
+ public Integer getCatchBatchIdByFishingOperationId(Integer fishingOperationId) throws DataRetrievalFailureException {
+ return catchBatchDao.getIdByFishingOperationId(fishingOperationId);
+ }
+
+ public fr.ifremer.adagio.core.dao.data.batch.CatchBatch getRootCatchBatchByBatchId(Integer batchId) {
+ Preconditions.checkNotNull(batchId);
+
+ Integer catchBatchId = catchBatchDao.getIdBySortingBatchId(batchId);
+ Preconditions.checkNotNull(catchBatchId);
+
+ // whenever want to repair anything from Tutti
+ fr.ifremer.adagio.core.dao.data.batch.CatchBatch result;
+
+ result = catchBatchDao.loadFullTree(catchBatchId);
+
+ Preconditions.checkNotNull(result);
+ return result;
+ }
+
+ public void setSpeciesBatchParents(Integer sampleCategoryId,
+ Serializable sampleCategoryValue,
+ SortingBatch target,
+ String parentBatchIdStr,
+ CatchBatch catchBatch) {
+
+ Preconditions.checkNotNull(target);
+ Preconditions.checkNotNull(catchBatch);
+
+ target.setRootBatch(catchBatch);
+
+ SortingBatch parentBatch;
+ if (parentBatchIdStr != null) {
+
+ // Load existing parent and root
+ parentBatch = catchBatchDao.getSortingBatchById(catchBatch, Integer.valueOf(parentBatchIdStr));
+ } else {
+
+ // Or retrieve parent batch, from pmfm id
+ // Retrieve category type
+ if (!sampleCategoryId.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ throw new DataIntegrityViolationException(MessageFormat.format(
+ "A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
+ sampleCategoryId,
+ enumeration.PMFM_ID_SORTED_UNSORTED));
+ }
+
+ Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
+
+ if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
+
+ // -- Vrac > Species > Alive itemized
+ parentBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(catchBatch);
+
+ if (parentBatch == null) {
+
+ // -- Vrac
+ SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
+
+ if (vracBatch == null) {
+ vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
+ }
+
+ // -- Vrac > Species
+ SortingBatch vracSpeciesBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
+
+ if (vracSpeciesBatch == null) {
+ vracSpeciesBatch = batchTreeHelper.getOrCreateSpeciesVracRootBatch(catchBatch, vracBatch, null);
+ }
+
+ // -- Vrac > Species > Alive itemized
+ parentBatch = batchTreeHelper.getOrCreateSpeciesVracAliveItemizedRootBatch(catchBatch, vracSpeciesBatch);
+
+ }
+ } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
+
+ // -- Hors Vrac > Species
+ parentBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(catchBatch);
+
+ if (parentBatch == null) {
+
+ // -- Hors Vrac
+ SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
+
+ // -- Hors Vrac > Species
+ parentBatch = batchTreeHelper.getOrCreateSpeciesHorsVracRootBatch(catchBatch, horsVracBatch);
+ }
+ } else {
+
+ // not possible
+ throw new DataIntegrityViolationException("Should have Vrac / Hor Vrac qualitative value, but had: " + qualitativeValueId);
+ }
+
+ }
+
+ Preconditions.checkNotNull(parentBatch);
+ target.setParentBatch(parentBatch);
+ }
+
+ public void setBenthosBatchParents(Integer sampleCategoryType,
+ Serializable sampleCategoryValue,
+ SortingBatch target,
+ String parentBatchIdStr,
+ CatchBatch catchBatch) {
+
+ Preconditions.checkNotNull(target);
+ Preconditions.checkNotNull(catchBatch);
+
+ target.setRootBatch(catchBatch);
+
+ SortingBatch parentBatch;
+ if (parentBatchIdStr != null) {
+
+ // Load existing parent and root
+ parentBatch = catchBatchDao.getSortingBatchById(catchBatch, Integer.valueOf(parentBatchIdStr));
+ } else {
+
+ // Or retrieve parent batch, from pmfm id
+ // Retrieve category type
+ if (!sampleCategoryType.equals(enumeration.PMFM_ID_SORTED_UNSORTED)) {
+ throw new DataIntegrityViolationException(MessageFormat.format(
+ "A species or benthos batch with no parent should have a sampleCategoryType {0} (PMFM.ID={1})",
+ sampleCategoryType,
+ enumeration.PMFM_ID_SORTED_UNSORTED));
+ }
+
+ Integer qualitativeValueId = convertSampleCategoryValueIntoQualitativeId(sampleCategoryValue);
+
+ if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
+
+ // -- Vrac > Benthos > Alive Itemized
+ parentBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(catchBatch);
+
+ if (parentBatch == null) {
+
+ // -- Vrac
+ SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
+
+ if (vracBatch == null) {
+ vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
+ }
+
+ // -- Vrac > Benthos
+ SortingBatch vracBenthosBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
+
+ if (vracBenthosBatch == null) {
+ vracBenthosBatch = batchTreeHelper.getOrCreateBenthosVracRootBatch(catchBatch, vracBatch, null);
+ }
+
+ // -- Vrac > Benthos > Alive itemized
+ parentBatch = batchTreeHelper.getOrCreateBenthosVracAliveItemizedRootBatch(catchBatch, vracBenthosBatch);
+
+ }
+ } else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
+
+ // -- Hors Vrac > Benthos
+ parentBatch = batchTreeHelper.getBenthosHorsVracRootBatch(catchBatch);
+
+ if (parentBatch == null) {
+
+ // -- Hors Vrac
+ SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
+
+ // -- Hors Vrac > Benthos
+ parentBatch = batchTreeHelper.getOrCreateBenthosHorsVracRootBatch(catchBatch, horsVracBatch);
+ }
+ } else {
+
+ // not possible
+ throw new DataIntegrityViolationException("Should have Vrac / Hors Vrac qualitative value, but had: " + qualitativeValueId);
+ }
+ }
+
+ Preconditions.checkNotNull(parentBatch);
+ target.setParentBatch(parentBatch);
+ }
+
+ public void setMarineLitterBatchParents(SortingBatch target, CatchBatch catchBatch) {
+
+ Preconditions.checkNotNull(target);
+
+ // -- Hors Vrac > Marine Litter
+ SortingBatch parentBatch = batchTreeHelper.getMarineLitterRootBatch(catchBatch);
+
+ if (parentBatch == null) {
+
+ // -- Hors Vrac
+ SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
+
+ // -- Hors Vrac > Marine Litter
+ parentBatch = batchTreeHelper.getOrCreateMarineLitterRootBatch(catchBatch, horsVracBatch, null);
+ }
+
+ target.setParentBatch(parentBatch);
+ target.setRootBatch(catchBatch);
+ }
+
+ public Integer convertSampleCategoryValueIntoQualitativeId(Serializable value) {
+ if (value == null) {
+ return null;
+ }
+ Integer qualitativeValueId = null;
+ if (value instanceof CaracteristicQualitativeValue) {
+ CaracteristicQualitativeValue cqValue = (CaracteristicQualitativeValue) value;
+ qualitativeValueId = cqValue.getIdAsInt();
+ } else if (value instanceof String) {
+ qualitativeValueId = Integer.valueOf((String) value);
+ }
+ return qualitativeValueId;
+ }
+
+ public void deleteSpeciesSubBatch(String id) {
+ Preconditions.checkNotNull(id);
+
+ Integer speciesBatchId = Integer.valueOf(id);
+
+ CatchBatch catchBatch = getRootCatchBatchByBatchId(speciesBatchId);
+ SortingBatch sortingBatch = getSortingBatchById(catchBatch, speciesBatchId);
+
+ // get his children
+ Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
+
+ if (CollectionUtils.isNotEmpty(childBatchs)) {
+
+ for (Batch childBatch : childBatchs) {
+
+ // delete this child and all his children
+ Integer childBatchId = childBatch.getId();
+
+ if (log.isDebugEnabled()) {
+ log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
+ }
+ removeWithChildren(childBatchId);
+ }
+ }
+ }
+
+
+ public <S extends SpeciesAbleBatch> void setSampleCategoryQualitative(S target,
+ Integer pmfmId,
+ Float numericalvalue,
+ String alphanumericalValue,
+ Integer qualitativeValueId) {
+ // skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
+ if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
+ return;
+ }
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
+
+ boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(pmfmId);
+ Preconditions.checkNotNull(isSamplingCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
+
+ target.setSampleCategoryId(pmfmId);
+ Serializable categoryValue = getSampleCategoryQualitative(
+ pmfmId,
+ numericalvalue,
+ alphanumericalValue,
+ qualitativeValueId);
+ target.setSampleCategoryValue(categoryValue);
+ }
+
+ public <F extends SpeciesAbleBatchFrequency & TuttiEntity> void entityToBatchFrequency(SortingBatch source,
+ F target) {
+
+ target.setId(source.getId());
+
+ // Rank order
+ target.setRankOrder(Integer.valueOf(source.getRankOrder()));
+
+ target.setNumber(source.getIndividualCount());
+ target.setWeight(source.getWeight());
+
+ Preconditions.checkState(source.getSortingMeasurements().size() == 1, "SortingBatch [" + source.getId() + "] need exactly one sortingMeasurement (to store the length step category), but had " + source.getSortingMeasurements().size());
+ SortingMeasurement sm = source.getSortingMeasurements().iterator().next();
+ Preconditions.checkNotNull(sm.getPmfm(), "SortingMeasurement [" + sm.getId() + "] can not have a null pmfm");
+ Preconditions.checkNotNull(sm.getPmfm().getId(), "SortingMeasurement [" + sm.getId() + "] can not have a pmfm with null id");
+
+ // Length step category
+ Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(sm.getPmfm().getId());
+ target.setLengthStepCaracteristic(lengthStepCaracteristic);
+
+ // Length
+ target.setLengthStep(sm.getNumericalValue());
+ }
+
+ public Serializable getSampleCategoryQualitative(Integer pmfmId,
+ Float numericalvalue,
+ String alphanumericalValue,
+ Integer qualitativeValueId) {
+
+ if (numericalvalue != null) {
+ return numericalvalue;
+ }
+ if (alphanumericalValue != null) {
+ return alphanumericalValue;
+ }
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
+ if (caracteristic == null || caracteristic.getCaracteristicType() != CaracteristicType.QUALITATIVE) {
+ return null;
+ }
+ CaracteristicQualitativeValue value = null;
+ for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) {
+ if (qualitativeValueId.equals(qv.getIdAsInt())) {
+ value = qv;
+ break;
+ }
+ }
+
+ return value;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected Integer getRecorderDepartmentId() {
+ // TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
+ return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
+ }
+
+ /**
+ * Check if the given {@code sortingBatch} is a frequency one.
+ * <p/>
+ * We test that:
+ * <ul>
+ * <li>batch has exactly one measurement</li>
+ * <li>the measurement pmfm is not a sample category</li>
+ * </ul>
+ *
+ * @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.
+ */
+ public boolean isFrequencyBatch(SampleCategoryModel sampleCategoryModel,
+ SortingBatch sortingBatch) {
+ boolean result = false;
+ if (sortingBatch.getSortingMeasurements().size() == 1) {
+ SortingMeasurement sm
+ = sortingBatch.getSortingMeasurements().iterator().next();
+ Pmfm pmfm = sm.getPmfm();
+
+ result = sortingBatch.getIndividualCount() != null &&
+ !sampleCategoryModel.containsCategoryId(pmfm.getId());
+ }
+ return result;
+ }
+
+// protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch target,
+// Batch batch,
+// Integer pmfmId,
+// Integer pmfmValue,
+// Float totalWeight,
+// short rankOrder) {
+// return getOrCreate(
+// target,
+// batch,
+// pmfmId,
+// pmfmValue,
+// totalWeight,
+// null,
+// rankOrder
+// );
+// }
+
+// protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
+// Batch parentBatch,
+// Integer sortingPmfmId,
+// Integer sortingQualitativeValueId,
+// Float weight,
+// Float weightBeforeSampling,
+// short rankOrder) {
+// SortingBatch result = batchTreeHelper.get(
+// parentBatch,
+// sortingPmfmId,
+// sortingQualitativeValueId);
+//
+// if (result == null) {
+//
+// result = SortingBatch.Factory.newInstance();
+// if (parentBatch.getChildBatchs() == null) {
+// parentBatch.setChildBatchs(Sets.<Batch>newHashSet());
+// }
+// parentBatch.getChildBatchs().add(result);
+//
+// Collection<SortingMeasurement> sortingMeasurements = result.getSortingMeasurements();
+//
+// // Create lists to store all updates, then remove not updated items
+// Set<SortingMeasurement> notChangedSortingMeasurements = Sets.newHashSet();
+// if (sortingMeasurements != null) {
+// notChangedSortingMeasurements.addAll(sortingMeasurements);
+// }
+//
+// // Some mandatory properties :
+// QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
+// result.setQualityFlag(qualityFlag);
+// result.setRootBatch(rootBatch);
+// result.setParentBatch(parentBatch);
+// result.setExhaustiveInventory(true);
+//
+// // No taxon or taxon group
+// result.setReferenceTaxon(null);
+// result.setTaxonGroup(null);
+//
+// result.setRankOrder(rankOrder);
+//
+// // Sorting measurement
+// if (sortingPmfmId != null && sortingQualitativeValueId != null) {
+// SortingMeasurement sm = setSortingMeasurement(
+// result,
+// sortingPmfmId,
+// sortingQualitativeValueId);
+// notChangedSortingMeasurements.remove(sm);
+// }
+// // Removed not changed sorting measurements
+// if (sortingMeasurements != null) {
+// sortingMeasurements.removeAll(notChangedSortingMeasurements);
+// }
+//
+// catchBatchDao.createSortingBatch(result, rootBatch);
+// }
+//
+// Collection<QuantificationMeasurement> quantificationMeasurements = result.getQuantificationMeasurements();
+// Set<QuantificationMeasurement> notChangedQuantificationMeasurements = Sets.newHashSet();
+// if (quantificationMeasurements != null) {
+// notChangedQuantificationMeasurements.addAll(quantificationMeasurements);
+// }
+//
+// // Sampling Ratio
+// if (weightBeforeSampling == null || weight == null) {
+// result.setSamplingRatio(null);
+// result.setSamplingRatioText(null);
+// } else {
+// String samplingRatioText = weight + "/" + weightBeforeSampling;
+// samplingRatioText = samplingRatioText.replaceAll(",", ".");
+// result.setSamplingRatioText(samplingRatioText);
+// result.setSamplingRatio(weight / weightBeforeSampling);
+// }
+//
+// // Weight
+// if (weightBeforeSampling != null || weight != null) {
+// Float batchReferenceWeight = weight;
+// if (batchReferenceWeight == null) {
+// batchReferenceWeight = weightBeforeSampling;
+// }
+// QuantificationMeasurement quantificationMeasurement = setWeightMeasurementQuantificationMeasurement(
+// result,
+// batchReferenceWeight);
+// notChangedQuantificationMeasurements.remove(quantificationMeasurement);
+// }
+// // Removed not changed quantification measurements
+// if (quantificationMeasurements != null) {
+// quantificationMeasurements.removeAll(notChangedQuantificationMeasurements);
+// }
+//
+// return result;
+// }
+
+// protected SortingBatch get(Batch parentBatch,
+// Integer sortingPmfmId,
+// Integer sortingQualitativeValueId) {
+// SortingBatch result = getSortingBatch(
+// parentBatch,
+// null,
+// sortingPmfmId,
+// sortingQualitativeValueId);
+// return result;
+// }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java (from rev 1722, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/BatchTreeHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,686 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.Batchs;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
+import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
+import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
+import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
+import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Helper to build or navigauet into the batch tree.
+ * <p/>
+ * Created on 4/20/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.5
+ */
+@Component("batchTreeHelper")
+public class BatchTreeHelper extends AbstractPersistenceService {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(BatchTreeHelper.class);
+
+ @Resource(name = "measurementPersistenceHelper")
+ protected MeasurementPersistenceHelper measurementPersistenceHelper;
+
+ @Resource(name = "catchBatchDao")
+ protected CatchBatchExtendDao catchBatchDao;
+
+ protected Comparator<Batch> batchComparator = Batchs.newRankOrderComparator();
+
+ //------------------------------------------------------------------------//
+ //-- Get CatchBatch navigation methods --//
+ //------------------------------------------------------------------------//
+
+ public SortingBatch getSpeciesVracAliveItemizedRootBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Species > Alive Itemized",
+ enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ );
+ }
+
+ public SortingBatch getBenthosVracAliveItemizedRootBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Benthos > Alive itemized",
+ enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ );
+ }
+
+ public SortingBatch getSpeciesHorsVracRootBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > Species",
+ enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ );
+ }
+
+ public SortingBatch getBenthosHorsVracRootBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > Benthos",
+ enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
+ enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ );
+ }
+
+ public SortingBatch getMarineLitterRootBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > Marine Litter",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_HORS_VRAC_ID,
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
+ );
+ }
+
+ public SortingBatch getVracBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_VRAC_ID
+ );
+ }
+
+ public SortingBatch getHorsVracBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_HORS_VRAC_ID
+ );
+ }
+
+ public SortingBatch getRejectedBatch(CatchBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Unsorted",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_UNSORTED_ID
+ );
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Get SortingBatch navigation methods --//
+ //------------------------------------------------------------------------//
+
+ public SortingBatch getSpeciesVracRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Species",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ );
+ }
+
+ public SortingBatch getBenthosVracRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Benthos",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ );
+ }
+
+ public SortingBatch getSpeciesVracAliveNotItemizedRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Species > Alive not itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
+ );
+ }
+
+ public SortingBatch getBenthosVracAliveNotItemizedRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Benthos > Alive not itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
+ );
+ }
+
+ public SortingBatch getSpeciesVracInertRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Species > Inert (not alive)",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
+ );
+ }
+
+ public SortingBatch getBenthosVracInertRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Benthos > Inert (not alive)",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
+ );
+ }
+
+ public SortingBatch getSpeciesVracAliveItemizedRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Species > Alive itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ );
+ }
+
+ public SortingBatch getBenthosVracAliveItemizedRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Vrac > Benthos > Alive itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
+ );
+ }
+
+ public SortingBatch getSpeciesHorsVracRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > Species",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
+ );
+ }
+
+ public SortingBatch getBenthosHorsVracRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > Benthos",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
+ );
+ }
+
+ public SortingBatch getMarineLitterRootBatch(SortingBatch batch) {
+ return getSortingBatch(
+ batch,
+ "Hors Vrac > MarineLitter",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
+ );
+ }
+
+ //------------------------------------------------------------------------//
+ //-- getOrCreate methods --//
+ //------------------------------------------------------------------------//
+
+ public SortingBatch getOrCreateVracBatch(CatchBatch batch,
+ Float weight,
+ Float weightBeforeSampling) {
+ return getOrCreate(
+ batch,
+ batch,
+ "Vrac",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_VRAC_ID,
+ weight,
+ weightBeforeSampling,
+ (short) 1
+ );
+ }
+
+ public SortingBatch getOrCreateSpeciesVracRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Species",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ totalWeight,
+ (short) 1
+ );
+ }
+
+ public SortingBatch getOrCreateSpeciesVracAliveNotItemizedRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Species > Alive Not Itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
+ totalWeight,
+ (short) 1
+ );
+ }
+
+ public SortingBatch getOrCreateSpeciesVracInertRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Species > Inert",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
+ totalWeight,
+ (short) 2
+ );
+ }
+
+ public SortingBatch getOrCreateSpeciesVracAliveItemizedRootBatch(CatchBatch target,
+ SortingBatch batch) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Benthos > Alive Itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
+ null,
+ (short) 3
+ );
+ }
+
+ public SortingBatch getOrCreateBenthosVracRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Benthos",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ totalWeight,
+ (short) 2
+ );
+ }
+
+ public SortingBatch getOrCreateBenthosVracAliveNotItemizedRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Benthos > Alive Not itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
+ totalWeight,
+ (short) 1
+ );
+ }
+
+ public SortingBatch getOrCreateBenthosVracInertRootBatch(fr.ifremer.adagio.core.dao.data.batch.CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Benthos > Inert",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
+ totalWeight,
+ (short) 2
+ );
+ }
+
+ public SortingBatch getOrCreateBenthosVracAliveItemizedRootBatch(CatchBatch target,
+ SortingBatch batch) {
+ return getOrCreate(
+ target,
+ batch,
+ "Vrac > Benthos > Alive Itemized",
+ enumeration.PMFM_ID_SORTING_TYPE_2,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
+ null,
+ (short) 3
+ );
+ }
+
+ public SortingBatch getOrCreateHorsVracBatch(CatchBatch batch) {
+ return getOrCreate(
+ batch,
+ batch,
+ "Hors Vrac",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_HORS_VRAC_ID,
+ null,
+ (short) 2
+ );
+ }
+
+ public SortingBatch getOrCreateSpeciesHorsVracRootBatch(CatchBatch target,
+ SortingBatch batch) {
+ return getOrCreate(
+ target,
+ batch,
+ "Hors Vrac > Species",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
+ null,
+ (short) 1
+ );
+ }
+
+ public SortingBatch getOrCreateBenthosHorsVracRootBatch(CatchBatch target,
+ SortingBatch batch) {
+ return getOrCreate(
+ target,
+ batch,
+ "Hors Vrac > Benthos",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
+ null,
+ (short) 2
+ );
+ }
+
+ public SortingBatch getOrCreateMarineLitterRootBatch(CatchBatch target,
+ SortingBatch batch,
+ Float totalWeight) {
+ return getOrCreate(
+ target,
+ batch,
+ "Hors Vrac > Marine Litter",
+ enumeration.PMFM_ID_SORTING_TYPE,
+ enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER,
+ totalWeight,
+ (short) 3
+ );
+ }
+
+ public SortingBatch getOrCreateRejectedBatch(CatchBatch batch,
+ Float weight) {
+
+ return getOrCreate(
+ batch,
+ batch,
+ "Unsorted",
+ enumeration.PMFM_ID_SORTED_UNSORTED,
+ enumeration.QUALITATIVE_UNSORTED_ID,
+ weight,
+ (short) 3
+ );
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Internal methods --//
+ //------------------------------------------------------------------------//
+
+ protected SortingBatch get(Batch parentBatch,
+ Integer sortingPmfmId,
+ Integer sortingQualitativeValueId) {
+ SortingBatch result = getSortingBatch(
+ parentBatch,
+ null,
+ sortingPmfmId,
+ sortingQualitativeValueId);
+ return result;
+ }
+
+ protected SortingBatch getSortingBatch(Batch source,
+ String debugMessage,
+ Integer... ids) {
+
+ return getSortingBatch(source.getChildBatchs(), debugMessage, ids);
+ }
+
+ protected SortingBatch getSortingBatch(Collection<Batch> childs,
+ String debugMessage,
+ Integer... ids) {
+
+ int nbParams = ids.length / 2;
+
+ Object[] params = new Object[nbParams * 3];
+ for (int i = 0; i < nbParams; i++) {
+ Integer sortingPmfmId = ids[2 * i];
+ Integer sortingQualitativeValueId = ids[2 * i + 1];
+ params[3 * i] = CatchBatchExtendDao.PMFM_ID;
+ params[3 * i + 1] = sortingPmfmId;
+ params[3 * i + 2] = sortingQualitativeValueId;
+ }
+ SortingBatch result = catchBatchDao.getSortingBatch(childs, params);
+ if (result != null && debugMessage != null && log.isDebugEnabled()) {
+ log.debug("Loaded " + debugMessage + ": " + result.getId());
+ }
+ return result;
+ }
+
+ protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
+ Batch batch,
+ String debugMessage,
+ Integer sortingPmfmId,
+ Integer sortingQualitativeValueId,
+ Float totalWeight,
+ short rankOrder) {
+ return getOrCreate(
+ rootBatch,
+ batch,
+ debugMessage,
+ sortingPmfmId,
+ sortingQualitativeValueId,
+ totalWeight,
+ null,
+ rankOrder
+ );
+ }
+
+ protected SortingBatch getOrCreate(fr.ifremer.adagio.core.dao.data.batch.CatchBatch rootBatch,
+ Batch batch,
+ String debugMessage,
+ Integer sortingPmfmId,
+ Integer sortingQualitativeValueId,
+ Float weight,
+ Float weightBeforeSampling,
+ short rankOrder) {
+ SortingBatch result = getSortingBatch(
+ batch,
+ debugMessage,
+ sortingPmfmId,
+ sortingQualitativeValueId);
+
+ if (result == null) {
+
+ result = SortingBatch.Factory.newInstance();
+ if (batch.getChildBatchs() == null) {
+ batch.setChildBatchs(Sets.<Batch>newHashSet());
+ }
+ batch.getChildBatchs().add(result);
+
+ Collection<SortingMeasurement> sortingMeasurements = result.getSortingMeasurements();
+
+ // Create lists to store all updates, then remove not updated items
+ Set<SortingMeasurement> notChangedSortingMeasurements = Sets.newHashSet();
+ if (sortingMeasurements != null) {
+ notChangedSortingMeasurements.addAll(sortingMeasurements);
+ }
+
+ // Some mandatory properties :
+ QualityFlagImpl qualityFlag = load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED);
+ result.setQualityFlag(qualityFlag);
+ result.setRootBatch(rootBatch);
+ result.setParentBatch(batch);
+ result.setExhaustiveInventory(true);
+
+ // No taxon or taxon group
+ result.setReferenceTaxon(null);
+ result.setTaxonGroup(null);
+
+ result.setRankOrder(rankOrder);
+
+ // Sorting measurement
+ if (sortingPmfmId != null && sortingQualitativeValueId != null) {
+ SortingMeasurement sm = measurementPersistenceHelper.setSortingMeasurement(
+ result,
+ sortingPmfmId,
+ sortingQualitativeValueId);
+ notChangedSortingMeasurements.remove(sm);
+ }
+ // Removed not changed sorting measurements
+ if (sortingMeasurements != null) {
+ sortingMeasurements.removeAll(notChangedSortingMeasurements);
+ }
+
+ catchBatchDao.createSortingBatch(result, rootBatch);
+ }
+
+ Collection<QuantificationMeasurement> quantificationMeasurements = result.getQuantificationMeasurements();
+ Set<QuantificationMeasurement> notChangedQuantificationMeasurements = Sets.newHashSet();
+ if (quantificationMeasurements != null) {
+ notChangedQuantificationMeasurements.addAll(quantificationMeasurements);
+ }
+
+ // Sampling Ratio
+ if (weightBeforeSampling == null || weight == null) {
+ result.setSamplingRatio(null);
+ result.setSamplingRatioText(null);
+ } else {
+ String samplingRatioText = weight + "/" + weightBeforeSampling;
+ samplingRatioText = samplingRatioText.replaceAll(",", ".");
+ result.setSamplingRatioText(samplingRatioText);
+ result.setSamplingRatio(weight / weightBeforeSampling);
+ }
+
+ // Weight
+ if (weightBeforeSampling != null || weight != null) {
+ Float batchReferenceWeight = weight;
+ if (batchReferenceWeight == null) {
+ batchReferenceWeight = weightBeforeSampling;
+ }
+ QuantificationMeasurement quantificationMeasurement = measurementPersistenceHelper.setWeightMeasurementQuantificationMeasurement(
+ result,
+ batchReferenceWeight);
+ notChangedQuantificationMeasurements.remove(quantificationMeasurement);
+ }
+ // Removed not changed quantification measurements
+ if (quantificationMeasurements != null) {
+ quantificationMeasurements.removeAll(notChangedQuantificationMeasurements);
+ }
+
+ return result;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- Debug methods --//
+ //------------------------------------------------------------------------//
+
+ public void displayCatchBatch(CatchBatch result) {
+ StringBuilder sb = new StringBuilder();
+ displayBatch(result, 0, sb);
+ if (log.isDebugEnabled()) {
+ log.debug(sb.toString());
+ }
+ }
+
+ protected void displayBatch(Batch batch, int level, StringBuilder sb) {
+
+ ToStringStyle style = new BatchTreeToStringStyle();
+
+ ToStringBuilder builder = new ToStringBuilder(batch, style);
+ builder.append("id", batch.getId());
+ builder.append("rankOrder", batch.getRankOrder());
+// builder.append("level", level);
+// if (batch.getParentBatch() != null) {
+// builder.append("parentId", batch.getParentBatch().getId());
+// }
+
+ if (batch instanceof CatchBatch) {
+ CatchBatch catchBatch = (CatchBatch) batch;
+ builder.append("synchronizationStatus", catchBatch.getSynchronizationStatus());
+ }
+ if (batch instanceof SortingBatch) {
+ SortingBatch sortingBatch = (SortingBatch) batch;
+ if (sortingBatch.getSamplingRatio() != null) {
+ builder.append("samplingRatio", sortingBatch.getSamplingRatio());
+ }
+ if (sortingBatch.getSamplingRatioText() != null) {
+ builder.append("samplingRatioText", sortingBatch.getSamplingRatioText());
+ }
+ if (sortingBatch.getIndividualCount() != null) {
+ builder.append("individualCount", sortingBatch.getIndividualCount());
+ }
+ if (sortingBatch.getReferenceTaxon() != null) {
+ ReferenceTaxon referenceTaxon = sortingBatch.getReferenceTaxon();
+ builder.append("referenceTaxon", load(ReferenceTaxonImpl.class, referenceTaxon.getId()).getName());
+ }
+
+ SortingMeasurement sm = null;
+ if (sortingBatch.getSortingMeasurements() != null && sortingBatch.getSortingMeasurements().size() == 1) {
+ sm = sortingBatch.getSortingMeasurements().iterator().next();
+ } else if (sortingBatch.getReferenceTaxon() != null && sortingBatch.getReferenceTaxon().getId() != null) {
+ sm = measurementPersistenceHelper.getInheritedSortingMeasurement(sortingBatch);
+ }
+ if (sm != null) {
+ String sortingMeasurementStr = measurementPersistenceHelper.toString(sm);
+ builder.append("sortingMeasurement", sortingMeasurementStr);
+ }
+ }
+ QuantificationMeasurement quantificationMeasurement = measurementPersistenceHelper.getWeightMeasurementQuantificationMeasurement(batch);
+ if (quantificationMeasurement != null) {
+ String quantificationMeasurementStr = measurementPersistenceHelper.toString(quantificationMeasurement);
+ builder.append("weightQuantificationMeasurement", quantificationMeasurementStr);
+ builder.append("weightQuantificationMeasurement.isReferenceQuantification", quantificationMeasurement.getIsReferenceQuantification());
+ }
+ if (batch.getWeight() != null) {
+ builder.append("weight", batch.getWeight());
+ }
+ if (batch.getWeightBeforeSampling() != null) {
+ builder.append("weightBeforeSampling", batch.getWeightBeforeSampling());
+ }
+ builder.append("qualityFlag", load(QualityFlagImpl.class, batch.getQualityFlag().getCode()).getName());
+
+ String prefix = "\n" + StringUtils.leftPad("", 2 * level);
+ String batchStr = Joiner.on(prefix).join(builder.build().split("\n"));
+ sb.append(prefix).append(batchStr);
+ Collection<Batch> childBatchs = batch.getChildBatchs();
+ if (childBatchs != null) {
+ List<Batch> childBatchList = new ArrayList<>(childBatchs);
+ Collections.sort(childBatchList, batchComparator);
+ for (Batch childBatch : childBatchList) {
+ displayBatch(childBatch, level + 1, sb);
+ }
+ }
+ }
+
+
+ static final class BatchTreeToStringStyle extends ToStringStyle {
+
+ private static final long serialVersionUID = 1L;
+
+ BatchTreeToStringStyle() {
+ super();
+ this.setUseClassName(true);
+ this.setUseShortClassName(true);
+ this.setContentStart("");
+ this.setFieldSeparator(SystemUtils.LINE_SEPARATOR + " | ");
+ this.setFieldSeparatorAtStart(true);
+ this.setContentEnd("");
+ }
+ }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java (from rev 1722, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/MeasurementPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,374 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+/*
+ * #%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.base.Preconditions;
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
+import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
+import fr.ifremer.adagio.core.dao.data.measure.GearUseMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.Measurement;
+import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.SurveyMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.VesselUseMeasurement;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
+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.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
+import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
+import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+
+/**
+ * Helper around {@link Measurement}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 2.0
+ */
+@Component("measurementPersistenceHelper")
+public class MeasurementPersistenceHelper extends AbstractPersistenceService {
+
+ @Resource(name = "referentialPersistenceService")
+ protected ReferentialPersistenceService referentialService;
+
+ @Resource(name = "catchBatchDao")
+ protected CatchBatchExtendDao catchBatchDao;
+
+ public void setMeasurement(Measurement measurement,
+ Caracteristic caracteristic,
+ Serializable value) {
+ if (value == null) {
+ return;
+ }
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+ measurement.setNumericalValue((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 qv = load(QualitativeValueImpl.class, qvId);
+ measurement.setQualitativeValue(qv);
+ break;
+ case TEXT:
+ measurement.setAlphanumericalValue((String) value);
+ break;
+ }
+ }
+
+ //------------------------------------------------------------------------//
+ //-- SortingMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public SortingMeasurement setSortingMeasurement(
+ SortingBatch sortingBatch,
+ Integer pmfmId,
+ Serializable value) {
+ Preconditions.checkNotNull(pmfmId);
+ Preconditions.checkNotNull(value);
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
+ SortingMeasurement sortingMeasurement = catchBatchDao.getSortingMeasurement(
+ sortingBatch, pmfmId, getRecorderDepartmentId(), true);
+ setMeasurement(sortingMeasurement,
+ caracteristic,
+ value);
+ return sortingMeasurement;
+ }
+
+ public QuantificationMeasurement setWeightMeasurementQuantificationMeasurement(Batch batch, Float weightValue) {
+ return catchBatchDao.setQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), weightValue, true);
+ }
+
+ public QuantificationMeasurement getWeightMeasurementQuantificationMeasurement(Batch batch) {
+ QuantificationMeasurement quantificationMeasurement = catchBatchDao.getQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), false);
+ return quantificationMeasurement;
+ }
+
+ public SortingMeasurement getInheritedSortingMeasurement(SortingBatch sortingBatch) {
+ return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, enumeration.PMFM_ID_SORTED_UNSORTED);
+ }
+
+ //------------------------------------------------------------------------//
+ //-- VesselUseUseMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
+
+ if (alphanumericalValue != null) {
+ vesselUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+ } else if (numericalValue != null) {
+ vesselUseMeasurement.setNumericalValue(numericalValue);
+ } else if (qualitativevalueId != null) {
+ vesselUseMeasurement.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+ }
+
+ return vesselUseMeasurement;
+ }
+
+ public VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Caracteristic caracteristic, Serializable value) {
+ VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, Integer.valueOf(caracteristic.getId()), true);
+ setMeasurement(vesselUseMeasurement, caracteristic, value);
+ return vesselUseMeasurement;
+ }
+
+ public VesselUseMeasurement getVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId, boolean createIfNotExists) {
+ VesselUseMeasurement vesselUseMeasurement = null;
+ if (vesselUseFeatures.getVesselUseMeasurements() != null) {
+ for (VesselUseMeasurement vum : vesselUseFeatures.getVesselUseMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ vesselUseMeasurement = vum;
+ break;
+ }
+ }
+ }
+ if (vesselUseMeasurement == null) {
+ if (!createIfNotExists) {
+ return null;
+ }
+ vesselUseMeasurement = VesselUseMeasurement.Factory.newInstance();
+ vesselUseMeasurement.setVesselUseFeatures(vesselUseFeatures);
+ if (vesselUseFeatures.getVesselUseMeasurements() == null) {
+ vesselUseFeatures.setVesselUseMeasurements(Sets.newHashSet(vesselUseMeasurement));
+ } else {
+ vesselUseFeatures.getVesselUseMeasurements().add(vesselUseMeasurement);
+ }
+ vesselUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ vesselUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
+ vesselUseMeasurement.setPmfm(load(PmfmImpl.class, pmfmId));
+ }
+
+ return vesselUseMeasurement;
+ }
+
+ protected VesselUseMeasurement setVesselUseMeasurement(ScientificCruise scientificCruise, VesselUseFeatures vesselUseFeatures,
+ Integer pmfmId,
+ Serializable value) {
+ VesselUseMeasurement vesselUseMeasurement = getVesselUseMeasurement(scientificCruise, vesselUseFeatures, pmfmId, true);
+
+ if (value instanceof String) {
+ vesselUseMeasurement.setAlphanumericalValue((String) value);
+ } else if (value instanceof Float) {
+ vesselUseMeasurement.setNumericalValue((Float) value);
+ } else if (value instanceof Integer) {
+ vesselUseMeasurement.setQualitativeValue(load(QualitativeValueImpl.class, value));
+ }
+
+ return vesselUseMeasurement;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- GearUseMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
+
+ if (alphanumericalValue != null) {
+ gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+ } else if (numericalValue != null) {
+ gearUseMeasurement.setNumericalValue(numericalValue);
+ } else if (qualitativevalueId != null) {
+ QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
+ gearUseMeasurement.setQualitativeValue(qv);
+ }
+
+ return gearUseMeasurement;
+ }
+
+ public GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Caracteristic caracteristic, Serializable value) {
+ GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
+ setMeasurement(gearUseMeasurement, caracteristic, value);
+ return gearUseMeasurement;
+ }
+
+ protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Integer pmfmId, boolean createIfNotExists) {
+ GearUseMeasurement gearUseMeasurement = null;
+ if (gearUseFeatures.getGearUseMeasurements() != null) {
+ for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ gearUseMeasurement = vum;
+ break;
+ }
+ }
+ }
+ if (gearUseMeasurement == null) {
+ if (!createIfNotExists) {
+ return null;
+ }
+ gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
+ gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
+ if (gearUseFeatures.getGearUseMeasurements() == null) {
+ gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
+ } else {
+ gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
+ }
+ gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
+ Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
+ gearUseMeasurement.setPmfm(pmfm);
+ }
+
+ return gearUseMeasurement;
+ }
+
+
+ //------------------------------------------------------------------------//
+ //-- Misc --//
+ //------------------------------------------------------------------------//
+
+ public String toString(Measurement measurement) {
+ Pmfm pmfm = load(PmfmImpl.class, measurement.getPmfm().getId());
+ String value = null;
+ if (measurement.getQualitativeValue() != null) {
+ QualitativeValue qualitativeValue = measurement.getQualitativeValue();
+ String qualitativeName = load(QualitativeValueImpl.class, qualitativeValue.getId()).getName();
+
+ value = qualitativeName + " (" + qualitativeValue.getId() + ")";
+ } else if (measurement.getNumericalValue() != null) {
+ value = "" + measurement.getNumericalValue();
+ } else if (measurement.getAlphanumericalValue() != null) {
+ value = measurement.getAlphanumericalValue();
+ }
+ return pmfm.getParameter().getName() + " (" + pmfm.getId() + ") / " + value;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- SurveyMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+
+ if (result == null) {
+ result = createSurveyMeasurement(fishingTrip,
+ pmfmId,
+ numericalValue,
+ alphanumericalValue,
+ qualitativevalueId);
+ }
+
+ return result;
+ }
+
+ public SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId) {
+ SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+
+ if (result != null) {
+
+ // measurement found, remove it
+ result.setFishingTrip(null);
+ fishingTrip.getSurveyMeasurements().remove(result);
+ }
+
+ return result;
+ }
+
+ protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+
+ SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(fishingTrip.getRecorderDepartment());
+ Pmfm pmfm = load(PmfmImpl.class, pmfmId);
+ result.setPmfm(pmfm);
+ result.setFishingTrip(fishingTrip);
+
+ if (alphanumericalValue != null) {
+ result.setAlphanumericalValue(alphanumericalValue);
+ } else if (numericalValue != null) {
+ result.setNumericalValue(numericalValue);
+ } else if (qualitativevalueId != null) {
+ result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+ }
+
+ // add it to fishingTrip
+ if (fishingTrip.getSurveyMeasurements() == null) {
+
+ //create new set of measurements
+ fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
+ }
+
+ fishingTrip.getSurveyMeasurements().add(result);
+
+ return result;
+ }
+
+ protected SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip, Integer pmfmId) {
+ SurveyMeasurement result = null;
+
+ for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ result = vum;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ protected Integer getRecorderDepartmentId() {
+ // TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
+ return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
+ }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java (from rev 1718, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SamplePersistenceHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,180 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+/*
+ * #%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.Sets;
+import fr.ifremer.adagio.core.dao.data.measure.SampleMeasurement;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.data.sample.SampleDao;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
+import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
+import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService;
+import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
+import org.hibernate.type.IntegerType;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * Helper around {@link Sample}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 1.6
+ */
+@Component("samplePersistenceHelper")
+public class SamplePersistenceHelper extends AbstractPersistenceService {
+
+ @Resource(name = "referentialPersistenceService")
+ protected ReferentialPersistenceService referentialService;
+
+ @Resource(name = "measurementPersistenceHelper")
+ protected MeasurementPersistenceHelper measurementPersistenceHelper;
+
+ @Resource(name = "attachmentPersistenceService")
+ protected AttachmentPersistenceService attachmentPersistenceService;
+
+ @Resource(name = "sampleDao")
+ protected SampleDao sampleDao;
+
+ public Sample create(Sample sample) {
+ return sampleDao.create(sample);
+ }
+
+ public void update(Sample sample) {
+ sampleDao.update(sample);
+ }
+
+ public Sample load(Integer id) {
+ return sampleDao.load(id);
+ }
+
+ public void deleteSample(Integer sampleId) {
+
+ Sample sample = sampleDao.load(sampleId);
+ if (sample != null) {
+ sample.getSampleMeasurements().clear();
+ sampleDao.remove(sample);
+ attachmentPersistenceService.deleteAllAttachment(
+ AttachementObjectTypeEnum.SAMPLE,
+ sampleId);
+ }
+ }
+
+ public void setSampleMeasurements(Sample target,
+ CaracteristicMap caracteristics) {
+
+ Set<SampleMeasurement> notChangedSampleMeasurements = Sets.newHashSet();
+ if (target.getSampleMeasurements() != null) {
+ notChangedSampleMeasurements.addAll(target.getSampleMeasurements());
+ }
+
+ for (Caracteristic caracteristic : caracteristics.keySet()) {
+ SampleMeasurement vum = setSampleMeasurement(
+ target,
+ caracteristic,
+ caracteristics.get(caracteristic));
+ notChangedSampleMeasurements.remove(vum);
+ }
+
+ if (target.getSampleMeasurements() != null &&
+ notChangedSampleMeasurements.size() > 0) {
+ target.getSampleMeasurements().removeAll(notChangedSampleMeasurements);
+ }
+ }
+
+ public void fillSampleMeasurements(CaracteristicMap result,
+ Integer sampleId) {
+ Iterator<Object[]> list = queryList(
+ "sampleMeasurements",
+ "sampleId", IntegerType.INSTANCE, sampleId);
+ while (list.hasNext()) {
+ int colIndex = 0;
+ Object[] source = list.next();
+ Integer pmfmId = (Integer) source[colIndex++];
+ Float numericalValue = (Float) source[colIndex++];
+ String alphanumericalValue = (String) source[colIndex++];
+ Integer qualitativeValueId = (Integer) source[colIndex];
+
+ Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
+ Serializable value = null;
+ switch (caracteristic.getCaracteristicType()) {
+
+ case NUMBER:
+ value = numericalValue;
+ break;
+ case QUALITATIVE:
+ value = TuttiEntities.getQualitativeValue(caracteristic,
+ qualitativeValueId);
+ break;
+ case TEXT:
+ value = alphanumericalValue;
+ break;
+ }
+ result.put(caracteristic, value);
+ }
+ }
+
+ protected SampleMeasurement setSampleMeasurement(Sample sample,
+ Caracteristic caracteristic,
+ Serializable value) {
+
+ Integer pmfmId = caracteristic.getIdAsInt();
+
+ SampleMeasurement result = null;
+ if (sample.getSampleMeasurements() != null) {
+ for (SampleMeasurement vum : sample.getSampleMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ result = vum;
+ break;
+ }
+ }
+ }
+ if (result == null) {
+
+ result = SampleMeasurement.Factory.newInstance();
+
+ result.setSample(sample);
+ if (sample.getSampleMeasurements() == null) {
+ sample.setSampleMeasurements(Sets.newHashSet(result));
+ } else {
+ sample.getSampleMeasurements().add(result);
+ }
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(sample.getRecorderDepartment());
+ result.setPmfm(load(PmfmImpl.class, pmfmId));
+ }
+ measurementPersistenceHelper.setMeasurement(result, caracteristic, value);
+ return result;
+ }
+
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SynchronizationStatusHelper.java (from rev 1722, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SynchronizationStatusHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SynchronizationStatusHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,86 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
+import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
+import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
+import org.hibernate.type.IntegerType;
+import org.hibernate.type.StringType;
+import org.springframework.stereotype.Component;
+
+/**
+ * Helper around SynchronizationStatus.
+ * <p/>
+ * Created on 4/22/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.5
+ */
+@Component("synchronizationStatusHelper")
+public class SynchronizationStatusHelper extends AbstractPersistenceService {
+
+ public void setDirty(ScientificCruise scientificCruise) {
+ String synchronizationStatus = getDirtyValue();
+ scientificCruise.setSynchronizationStatus(synchronizationStatus);
+ }
+
+ public void setDirty(FishingTrip fishingTrip) {
+ String synchronizationStatus = getDirtyValue();
+ fishingTrip.setSynchronizationStatus(synchronizationStatus);
+ setDirty(fishingTrip.getScientificCruise());
+ }
+
+ public void setDirty(CatchBatch catchBatch) {
+ String synchronizationStatus = getDirtyValue();
+ catchBatch.setSynchronizationStatus(synchronizationStatus);
+ setDirty(catchBatch.getFishingOperation().getFishingTrip());
+ }
+
+ public void setDirty(Sample sample) {
+ String synchronizationStatus = getDirtyValue();
+ sample.setSynchronizationStatus(synchronizationStatus);
+ Batch batch = sample.getBatch();
+ if (batch != null && batch instanceof CatchBatch) {
+ setDirty((CatchBatch) batch);
+ } else {
+ setDirty(sample.getFishingOperation().getFishingTrip());
+ }
+ }
+
+ public void setReadyToSynch(String cruiseId) {
+
+ String oldStatus = getDirtyValue();
+ String newStatus = SynchronizationStatus.READY_TO_SYNCHRONIZE.getValue();
+
+ // update scientificCruise
+ queryUpdate("updateScientificCruiseSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update fishingTrip
+ queryUpdate("updateFishingTripSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update catchBatch
+ queryUpdate("updateCatchBatchSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update sample
+ queryUpdate("updateSampleSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+ }
+
+ protected String getDirtyValue() {
+ return SynchronizationStatus.DIRTY.getValue();
+ }
+}
Copied: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java (from rev 1718, trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/VesselPersonFeaturesPersistenceHelper.java)
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/VesselPersonFeaturesPersistenceHelper.java 2014-04-23 08:11:03 UTC (rev 1723)
@@ -0,0 +1,154 @@
+package fr.ifremer.tutti.persistence.service.util;
+
+/*
+ * #%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.administration.user.Person;
+import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
+import fr.ifremer.adagio.core.dao.data.operation.FishingOperation;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.person.VesselPersonFeatures;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRole;
+import fr.ifremer.adagio.core.dao.referential.VesselPersonRoleImpl;
+import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * Helper around {@link VesselPersonFeatures}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 2.0
+ */
+@Component("vesselPersonFeaturesPersistenceHelper")
+public class VesselPersonFeaturesPersistenceHelper extends AbstractPersistenceService {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(VesselPersonFeaturesPersistenceHelper.class);
+
+ public VesselPersonFeaturesPersistenceHelper() {
+ }
+
+ public VesselPersonRole getScientificCruiseManagerRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER);
+ }
+
+ public VesselPersonRole getSortRoomManagerRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER);
+ }
+
+ public VesselPersonRole getRecorderPersonRole() {
+ return load(VesselPersonRoleImpl.class, enumeration.VESSEL_PERSON_ROLE_ID_RECORDER_PERSON);
+ }
+
+ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
+ Integer personId,
+ FishingTrip fishingTrip,
+ VesselPersonRole role,
+ short rankOrder) {
+
+ VesselPersonFeatures vesselPersonFeatures =
+ vesselPersonFeaturesPerPerson.get(personId);
+ if (vesselPersonFeatures == null) {
+
+ PersonImpl person = load(PersonImpl.class, personId);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Create an new vesselPersonFeatures for person: [" + personId + "]" + person.getFirstname() + " - " + person.getLastname());
+ }
+
+ vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
+ vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
+ vesselPersonFeatures.setPerson(person);
+
+ vesselPersonFeatures.setFishingTrip(fishingTrip);
+ vesselPersonFeatures.setStartDate(fishingTrip.getDepartureDateTime());
+ vesselPersonFeatures.setEndDate(fishingTrip.getReturnDateTime());
+ vesselPersonFeatures.setVessel(fishingTrip.getVessel());
+ vesselPersonFeatures.setProgram(fishingTrip.getProgram());
+
+ vesselPersonFeatures.setCreationDate(fishingTrip.getCreationDate());
+ vesselPersonFeatures.setQualityFlag(fishingTrip.getQualityFlag());
+ vesselPersonFeatures.setRankOrder(rankOrder);
+ }
+
+ addRole(role, vesselPersonFeatures);
+ }
+
+ public void fillVesselPersonFeatures(Map<Integer, VesselPersonFeatures> vesselPersonFeaturesPerPerson,
+ Integer personId,
+ FishingOperation fishingOperation,
+ VesselPersonRole role,
+ short rankOrder) {
+
+ VesselPersonFeatures vesselPersonFeatures =
+ vesselPersonFeaturesPerPerson.get(personId);
+ if (vesselPersonFeatures == null) {
+
+ PersonImpl person = load(PersonImpl.class, personId);
+ if (log.isDebugEnabled()) {
+ log.debug("Create an new vesselPersonFeatures for person: [" + personId + "]" + person.getFirstname() + " - " + person.getLastname());
+ }
+
+ vesselPersonFeatures = VesselPersonFeatures.Factory.newInstance();
+ vesselPersonFeaturesPerPerson.put(personId, vesselPersonFeatures);
+ vesselPersonFeatures.setOperation(fishingOperation);
+ vesselPersonFeatures.setFishingTrip(fishingOperation.getFishingTrip());
+ vesselPersonFeatures.setPerson(person);
+ vesselPersonFeatures.setStartDate(fishingOperation.getStartDateTime());
+ vesselPersonFeatures.setEndDate(fishingOperation.getEndDateTime());
+ vesselPersonFeatures.setVessel(fishingOperation.getVessel());
+ vesselPersonFeatures.setProgram(fishingOperation.getFishingTrip().getProgram());
+
+ vesselPersonFeatures.setCreationDate(new Date());
+ vesselPersonFeatures.setQualityFlag(fishingOperation.getQualityFlag());
+ vesselPersonFeatures.setRankOrder(rankOrder);
+ }
+
+ addRole(role, vesselPersonFeatures);
+ }
+
+ protected void addRole(VesselPersonRole role,
+ VesselPersonFeatures vesselPersonFeatures) {
+ Person person = vesselPersonFeatures.getPerson();
+ if (vesselPersonFeatures.getVesselPersonRoles().contains(role)) {
+ if (log.isWarnEnabled()) {
+ log.warn("vessel person feature for person: " + person.getId() + " with role: " + role.getName() + " already exist, do not add it twice.");
+ }
+ } else {
+
+ // add this new role
+ if (log.isInfoEnabled()) {
+ log.info("Add vessel person feature for person: " + person.getId() + " with role: " + role.getName());
+ }
+ vesselPersonFeatures.getVesselPersonRoles().add(role);
+
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2014-04-22 22:43:02 UTC (rev 1722)
+++ trunk/tutti-ui-swing/src/main/filtered-resources/log4j.properties 2014-04-23 08:11:03 UTC (rev 1723)
@@ -31,7 +31,7 @@
# tutti levels
log4j.logger.fr.ifremer=INFO
-log4j.logger.fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper=DEBUG
+log4j.logger.fr.ifremer.tutti.persistence.service.util.BatchTreeHelper=DEBUG
#See https://forum.hibernate.org/viewtopic.php?p=2404391
log4j.logger.org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog=ERROR
1
0
22 Apr '14
Author: tchemit
Date: 2014-04-23 00:43:02 +0200 (Wed, 23 Apr 2014)
New Revision: 1722
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1722
Log:
refs-70 #4958 (need to validate)
clean measurement codes
improve some codes
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Cruises.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.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/CatchBatchPersistenceServiceImpl.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/MeasurementPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.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/batch/BatchPersistenceHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.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/SpeciesBatchPersistenceServiceReadTest.java
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.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/WeightComputingService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.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/export/generic/TuttiExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/WeightComputingServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceTest.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveCruiseAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
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/SelectCruiseUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.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/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/benthos/BenthosBatchUIHandler.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/species/SpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -41,7 +41,6 @@
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
@@ -739,8 +738,8 @@
//------------------------------------------------------------------------//
@Override
- public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
- return speciesBatchService.getRootSpeciesBatch(fishingOperationId, sampleCategoryModel);
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException {
+ return speciesBatchService.getRootSpeciesBatch(fishingOperationId, validateTree);
}
@Override
@@ -788,8 +787,8 @@
//------------------------------------------------------------------------//
@Override
- public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
- return benthosBatchService.getRootBenthosBatch(fishingOperationId, sampleCategoryModel);
+ public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException {
+ return benthosBatchService.getRootBenthosBatch(fishingOperationId, validateTree);
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -39,7 +39,6 @@
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
@@ -496,7 +495,7 @@
}
@Override
- public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException {
throw notImplemented();
}
@@ -541,7 +540,7 @@
}
@Override
- public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
+ public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException {
throw notImplemented();
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Cruises.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Cruises.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Cruises.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -0,0 +1,21 @@
+package fr.ifremer.tutti.persistence.entities.data;
+
+import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
+
+public class Cruises extends AbstractCruises {
+
+ public static boolean isDirty(Cruise cruise) {
+ String synchronizationStatus = cruise.getSynchronizationStatus();
+ return SynchronizationStatus.DIRTY.getValue().equals(synchronizationStatus);
+ }
+
+ public static boolean isReadyToSynch(Cruise cruise) {
+ String synchronizationStatus = cruise.getSynchronizationStatus();
+ return SynchronizationStatus.READY_TO_SYNCHRONIZE.getValue().equals(synchronizationStatus);
+ }
+
+ public static boolean isSynch(Cruise cruise) {
+ String synchronizationStatus = cruise.getSynchronizationStatus();
+ return SynchronizationStatus.SYNCHRONIZED.getValue().equals(synchronizationStatus);
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/Cruises.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -27,6 +27,7 @@
import com.google.common.base.Preconditions;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
+import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
@@ -67,19 +68,20 @@
@Resource(name = "tuttiEnumerationFile")
protected TuttiEnumerationFile enumeration;
+ @Resource(name = "tuttiConfiguration")
protected TuttiConfiguration config;
@Override
public void init() {
- if (config == null) {
-
- config = TuttiConfiguration.getInstance();
-
- Preconditions.checkNotNull(
- config, "No config found in " +
- TuttiConfiguration.class.getName()
- );
- }
+// if (config == null) {
+//
+// config = TuttiConfiguration.getInstance();
+//
+// Preconditions.checkNotNull(
+// config, "No config found in " +
+// TuttiConfiguration.class.getName()
+// );
+// }
}
@Override
@@ -301,6 +303,11 @@
return result;
}
+
+ public SampleCategoryModel getSampleCategoryModel() {
+ return config.getSampleCategoryModel();
+ }
+
private Calendar calendar = new GregorianCalendar();
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -73,6 +73,9 @@
@Resource(name = "samplePersistenceHelper")
protected SamplePersistenceHelper samplePersistenceHelper;
+ @Resource(name = "synchronizationStatusHelper")
+ protected SynchronizationStatusHelper synchronizationStatusHelper;
+
@Override
public List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
@@ -100,8 +103,11 @@
accidentalBatch.setSpecies(species);
// Comment
- accidentalBatch.setComment((String) source[colIndex]);
+ accidentalBatch.setComment((String) source[colIndex++]);
+ // synchronizationStatus
+ accidentalBatch.setSynchronizationStatus((String) source[colIndex]);
+
// Sample Measurements
accidentalBatch.setCaracteristics(new CaracteristicMap());
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -30,7 +30,6 @@
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.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import org.springframework.transaction.annotation.Transactional;
@@ -46,7 +45,7 @@
public interface BenthosBatchPersistenceService extends TuttiPersistenceServiceImplementor {
//------------------------------------------------------------------------//
- //-- Benthos Batch methods --//
+ //-- BenthosBatch methods --//
//------------------------------------------------------------------------//
/**
@@ -54,13 +53,13 @@
* <p/>
* <strong>Note:</strong> All childs of the batch should be loaded here.
*
- * @param fishingOperationId if of the fishing operation to seek
- * @param sampleCategoryModel [optional] sample category model to check
+ * @param fishingOperationId if of the fishing operation to seek
+ * @param validateTree flag to validate sample category model
* @return the list of root {@link BenthosBatch}
* @throws InvalidBatchModelException if batch does not respect the sample category model
* @since 1.0
*/
- BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException;
+ BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException;
@Transactional(readOnly = false)
BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId);
@@ -85,7 +84,7 @@
void changeBenthosBatchSpecies(String batchId, Species species);
//------------------------------------------------------------------------//
- //-- SpeciesBatchFrequency methods (for benthos) --//
+ //-- BenthosBatchFrequency methods --//
//------------------------------------------------------------------------//
/**
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -45,18 +45,15 @@
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;
import fr.ifremer.tutti.persistence.service.batch.BatchPersistenceHelper;
import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -90,37 +87,23 @@
@Resource(name = "measurementPersistenceHelper")
protected MeasurementPersistenceHelper measurementPersistenceHelper;
- protected SampleCategoryModel sampleCategoryModel;
-
//------------------------------------------------------------------------//
//-- Benthos Batch methods --//
//------------------------------------------------------------------------//
@Override
- public void init() {
- super.init();
-
- sampleCategoryModel = config.getSampleCategoryModel();
- }
-
- @Override
public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId,
- SampleCategoryModel sampleCategoryModel) {
+ boolean validateTree) {
Preconditions.checkNotNull(fishingOperationId);
CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false);
- // Vrac / Benthos
+ // -- Vrac > Benthos > Alive Itemized
SortingBatch vracBenthosBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(catchBatch);
-// SortingBatch vracBenthosBatch = batchHelper.getSortingBatch(
-// catchBatch,
-// "Vrac > Benthos > Alive Itemized",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
-// enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
-// );
- BatchContainer<BenthosBatch> result = new BatchContainer<BenthosBatch>();
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
+
+ BatchContainer<BenthosBatch> result = new BatchContainer<>();
if (vracBenthosBatch != null) {
result.setId(vracBenthosBatch.getId());
@@ -134,7 +117,8 @@
}
BenthosBatch target = BenthosBatchs.newBenthosBatch();
target.setSpecies(species);
- entityToBenthosBatch(source, target);
+
+ entityToBenthosBatch(sampleCategoryModel, source, target);
result.addChildren(target);
if (log.isDebugEnabled()) {
log.debug("Loaded CatchBatch Vrac > Benthos > Alive Itemized > " + target.getSpecies().getReferenceTaxonId() + ": " + target.getId());
@@ -142,14 +126,9 @@
}
}
- // Hors-Vrac / Benthos
+ // -- Hors Vrac > Benthos
SortingBatch horsVracBenthosBatch = batchTreeHelper.getBenthosHorsVracRootBatch(catchBatch);
-// SortingBatch horsVracBenthosBatch = batchHelper.getSortingBatch(
-// catchBatch,
-// "Hors Vrac > Benthos",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
-// );
+
if (horsVracBenthosBatch != null) {
for (Batch batch : horsVracBenthosBatch.getChildBatchs()) {
SortingBatch source = (SortingBatch) batch;
@@ -163,7 +142,7 @@
BenthosBatch target = BenthosBatchs.newBenthosBatch();
target.setSpecies(species);
- entityToBenthosBatch(source, target);
+ entityToBenthosBatch(sampleCategoryModel, source, target);
result.addChildren(target);
if (log.isDebugEnabled()) {
log.debug("Loaded CatchBatch Hors Vrac > Benthos > " + target.getSpecies().getReferenceTaxonId() + ": " + target.getId());
@@ -171,7 +150,7 @@
}
}
- if (sampleCategoryModel != null) {
+ if (validateTree) {
// validate with given sample category model
batchHelper.validateBenthos(sampleCategoryModel, result);
@@ -227,30 +206,31 @@
@Override
public void deleteBenthosSubBatch(String id) {
- Preconditions.checkNotNull(id);
+ batchHelper.deleteSpeciesSubBatch(id);
- Integer benthosBatchId = Integer.valueOf(id);
-
- CatchBatch catchBatch = batchHelper.getRootCatchBatchByBatchId(benthosBatchId);
- SortingBatch sortingBatch = batchHelper.getSortingBatchById(
- catchBatch, benthosBatchId);
-
- // get his children
- Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
-
- if (CollectionUtils.isNotEmpty(childBatchs)) {
-
- for (Batch childBatch : childBatchs) {
-
- // delete this child and all his children
- Integer childBatchId = childBatch.getId();
-
- if (log.isDebugEnabled()) {
- log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
- }
- batchHelper.removeWithChildren(childBatchId);
- }
- }
+// Preconditions.checkNotNull(id);
+//
+// Integer benthosBatchId = Integer.valueOf(id);
+//
+// CatchBatch catchBatch = batchHelper.getRootCatchBatchByBatchId(benthosBatchId);
+// SortingBatch sortingBatch = batchHelper.getSortingBatchById(catchBatch, benthosBatchId);
+//
+// // get his children
+// Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
+//
+// if (CollectionUtils.isNotEmpty(childBatchs)) {
+//
+// for (Batch childBatch : childBatchs) {
+//
+// // delete this child and all his children
+// Integer childBatchId = childBatch.getId();
+//
+// if (log.isDebugEnabled()) {
+// log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
+// }
+// batchHelper.removeWithChildren(childBatchId);
+// }
+// }
}
@Override
@@ -272,12 +252,12 @@
Preconditions.checkNotNull(benthosBatchId);
List<SortingBatch> frequencyChilds = batchHelper.getFrequencies(
- sampleCategoryModel, benthosBatchId);
+ benthosBatchId);
List<BenthosBatchFrequency> results = Lists.newArrayList();
for (SortingBatch child : frequencyChilds) {
BenthosBatchFrequency target = BenthosBatchFrequencys.newBenthosBatchFrequency();
- entityToBenthosBatchFrequency(child, target);
+ batchHelper.entityToBatchFrequency(child, target);
results.add(target);
}
return Collections.unmodifiableList(results);
@@ -335,7 +315,7 @@
// Remember child ids, to remove unchanged item (see at bottom in this method)
List<Integer> notUpdatedChildIds = Lists.newArrayList();
List<SortingBatch> frequencyChilds = batchHelper.getFrequencyChilds(
- sampleCategoryModel, parentBatch);
+ parentBatch);
for (SortingBatch child : frequencyChilds) {
notUpdatedChildIds.add(child.getId());
}
@@ -389,7 +369,8 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected BenthosBatch entityToBenthosBatch(SortingBatch source,
+ protected BenthosBatch entityToBenthosBatch(SampleCategoryModel sampleCategoryModel,
+ SortingBatch source,
BenthosBatch target) {
Preconditions.checkNotNull(target.getSpecies());
@@ -428,7 +409,7 @@
if (sm.getQualitativeValue() != null) {
qualitativeId = sm.getQualitativeValue().getId();
}
- setSampleCategoryQualitative(
+ batchHelper.setSampleCategoryQualitative(
target,
sm.getPmfm().getId(),
sm.getNumericalValue(),
@@ -443,9 +424,9 @@
SortingBatch sourceChild = (SortingBatch) batch;
BenthosBatch targetChild = BenthosBatchs.newBenthosBatch();
targetChild.setSpecies(target.getSpecies());
- entityToBenthosBatch(sourceChild, targetChild);
+ entityToBenthosBatch(sampleCategoryModel, sourceChild, targetChild);
if (log.isDebugEnabled()) {
- log.debug("Loaded CatchBatch Hors Vrac > (Species|Benthos) > " + targetChild.getSpecies().getReferenceTaxonId() + " : " + target.getId());
+ log.debug("Loaded CatchBatch Hors Vrac > Benthos > " + targetChild.getSpecies().getReferenceTaxonId() + " : " + target.getId());
}
if (targetChild.getSampleCategoryValue() != null) {
targetChilds.add(targetChild);
@@ -461,31 +442,6 @@
return target;
}
- protected void entityToBenthosBatchFrequency(SortingBatch source,
- BenthosBatchFrequency target) {
-
- target.setId(source.getId());
-
- // Rank order
- target.setRankOrder(Integer.valueOf(source.getRankOrder()));
-
- target.setNumber(source.getIndividualCount());
- target.setWeight(source.getWeight());
-
- Preconditions.checkState(source.getSortingMeasurements().size() == 1, "SortingBatch [" + source.getId() + "] need exactly one sortingMeasurement (to store the length step category), but had " + source.getSortingMeasurements().size());
- SortingMeasurement sm = source.getSortingMeasurements().iterator().next();
- Preconditions.checkNotNull(sm.getPmfm(), "SortingMeasurement [" + sm.getId() + "] can not have a null pmfm");
- Preconditions.checkNotNull(sm.getPmfm().getId(), "SortingMeasurement [" + sm.getId() + "] can not have a pmfm with null id");
-
- // Length step category
- Caracteristic lengthStepCaracteristic =
- referentialService.getCaracteristic(sm.getPmfm().getId());
- target.setLengthStepCaracteristic(lengthStepCaracteristic);
-
- // Length
- target.setLengthStep(sm.getNumericalValue());
- }
-
protected void benthosBatchToEntity(BenthosBatch source,
SortingBatch target,
String parentBatchId,
@@ -672,7 +628,7 @@
if ((source.getLengthStepCaracteristic() != null && source.getLengthStep() != null)) {
Integer pmfmId = source.getLengthStepCaracteristic().getIdAsInt();
SortingMeasurement sortingMeasurement = measurementPersistenceHelper.setSortingMeasurement(target, pmfmId,
- source.getLengthStep());
+ source.getLengthStep());
notChangedSortingMeasurements.remove(sortingMeasurement);
}
@@ -696,26 +652,4 @@
sortingMeasurements.removeAll(notChangedSortingMeasurements);
}
}
-
- public void setSampleCategoryQualitative(BenthosBatch target,
- Integer pmfmId,
- Float numericalvalue,
- String alphanumericalValue,
- Integer qualitativeValueId) {
- // skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
- if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
- return;
- }
-
- boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(pmfmId);
- Preconditions.checkNotNull(isSamplingCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
-
- target.setSampleCategoryId(pmfmId);
- Serializable categoryValue = batchHelper.getSampleCategoryQualitative(
- pmfmId,
- numericalvalue,
- alphanumericalValue,
- qualitativeValueId);
- target.setSampleCategoryValue(categoryValue);
- }
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -72,6 +72,9 @@
@Resource(name = "measurementPersistenceHelper")
protected MeasurementPersistenceHelper measurementPersistenceHelper;
+ @Resource(name = "synchronizationStatusHelper")
+ protected SynchronizationStatusHelper synchronizationStatusHelper;
+
//------------------------------------------------------------------------//
//-- CatchBatch methods --//
//------------------------------------------------------------------------//
@@ -92,94 +95,62 @@
fr.ifremer.adagio.core.dao.data.batch.CatchBatch source =
batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, true);
+ if (log.isDebugEnabled()) {
+ log.debug("Loaded CatchBatch: " + source.getId());
+ }
+
+ batchTreeHelper.displayCatchBatch(source);
+
CatchBatch result = new CatchBatchBean();
result.setId(source.getId());
result.setCatchTotalWeight(source.getWeight());
+ result.setSynchronizationStatus(source.getSynchronizationStatus());
- if (log.isDebugEnabled()) {
- log.debug("Loaded CatchBatch: " + result.getId());
- }
-
- // Vrac
+ // -- Vrac
SortingBatch vracBatch = batchTreeHelper.getVracBatch(source);
-// SortingBatch vracBatch = batchHelper.getSortingBatch(
-// source,
-// "Vrac",
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_VRAC_ID);
if (vracBatch != null) {
result.setCatchTotalSortedCarousselWeight(vracBatch.getWeight());
result.setCatchTotalSortedTremisWeight(vracBatch.getWeightBeforeSampling());
- // Vrac > Species
+ // -- Vrac > Species
SortingBatch vracSpeciesBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
-// SortingBatch vracSpeciesBatch = batchHelper.getSortingBatch(
-// vracBatch,
-// "Vrac > Species",
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
if (vracSpeciesBatch != null) {
result.setSpeciesTotalSortedWeight(vracSpeciesBatch.getWeight());
- // Vrac > Species > Inert
+ // -- Vrac > Species > Inert
SortingBatch inertBatch = batchTreeHelper.getSpeciesVracInertRootBatch(vracSpeciesBatch);
-// SortingBatch inertBatch = batchHelper.getSortingBatch(
-// vracSpeciesBatch,
-// "Vrac > Species > Inert",
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT);
if (inertBatch != null) {
result.setSpeciesTotalInertWeight(inertBatch.getWeight());
}
- // Vrac > Species > Alive not itemized
+ // -- Vrac > Species > Alive not itemized
SortingBatch livingNotItemizedBatch = batchTreeHelper.getSpeciesVracAliveNotItemizedRootBatch(vracSpeciesBatch);
-// SortingBatch livingNotItemizedBatch = batchHelper.getSortingBatch(
-// vracSpeciesBatch,
-// "Vrac > Species > Alive not itemized",
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED);
if (livingNotItemizedBatch != null) {
result.setSpeciesTotalLivingNotItemizedWeight(livingNotItemizedBatch.getWeight());
}
}
- // Vrac > Benthos
+ // -- Vrac > Benthos
SortingBatch vracBenthosBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
-// SortingBatch vracBenthosBatch = batchHelper.getSortingBatch(
-// vracBatch,
-// "Vrac > Benthos",
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
if (vracBenthosBatch != null) {
result.setBenthosTotalSortedWeight(vracBenthosBatch.getWeight());
- // Vrac > Benthos > Inert
+ // -- Vrac > Benthos > Inert
SortingBatch inertBatch = batchTreeHelper.getBenthosVracInertRootBatch(vracBenthosBatch);
-// SortingBatch inertBatch = batchHelper.getSortingBatch(
-// vracBenthosBatch,
-// "Vrac > Benthos > Inert",
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT);
if (inertBatch != null) {
result.setBenthosTotalInertWeight(inertBatch.getWeight());
}
- // Vrac > Benthos > Alive no itemized
+ // -- Vrac > Benthos > Alive no itemized
SortingBatch livingNotItemizedBatch = batchTreeHelper.getBenthosVracAliveNotItemizedRootBatch(vracBenthosBatch);
-// SortingBatch livingNotItemizedBatch = batchHelper.getSortingBatch(
-// vracBenthosBatch,
-// "Vrac > Benthos > Alive not itemized",
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED);
if (livingNotItemizedBatch != null) {
result.setBenthosTotalLivingNotItemizedWeight(livingNotItemizedBatch.getWeight());
@@ -187,52 +158,27 @@
}
}
- // Hors Vrac
+ // -- Hors Vrac
SortingBatch horsVracBatch = batchTreeHelper.getHorsVracBatch(source);
-// SortingBatch horsVracBatch = batchHelper.getSortingBatch(
-// source,
-// "Hors Vrac",
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_HORS_VRAC_ID);
if (horsVracBatch != null) {
- // Hors Vrac > Species
+ // -- Hors Vrac > Species
batchTreeHelper.getSpeciesHorsVracRootBatch(horsVracBatch);
-// batchHelper.getSortingBatch(
-// horsVracBatch,
-// "Hors Vrac > Species",
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
- // Hors Vrac > Benthos
+ // -- Hors Vrac > Benthos
batchTreeHelper.getBenthosHorsVracRootBatch(horsVracBatch);
-// batchHelper.getSortingBatch(
-// horsVracBatch,
-// "Hors Vrac > Benthos",
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
- // Hors Vrac > MarineLitter
+ // -- Hors Vrac > MarineLitter
SortingBatch marineLitterBatch = batchTreeHelper.getMarineLitterRootBatch(horsVracBatch);
-// SortingBatch marineLitterBatch = batchHelper.getSortingBatch(
-// horsVracBatch,
-// "Hors Vrac > MarineLitter",
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER);
if (marineLitterBatch != null) {
result.setMarineLitterTotalWeight(marineLitterBatch.getWeight());
}
}
- // Non trié
+ // -- Unsorted
SortingBatch unsortedBatch = batchTreeHelper.getRejectedBatch(source);
-// SortingBatch unsortedBatch = batchHelper.getSortingBatch(
-// source,
-// "Unsorted",
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_UNSORTED_ID);
if (unsortedBatch != null) {
result.setCatchTotalRejectedWeight(unsortedBatch.getWeight());
@@ -248,6 +194,8 @@
Preconditions.checkNotNull(bean.getFishingOperation());
Preconditions.checkNotNull(bean.getFishingOperation().getId());
+ bean.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
+
fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = fr.ifremer.adagio.core.dao.data.batch.CatchBatch.Factory.newInstance();
catchBatchToEntity(bean, catchBatch);
bean = batchHelper.createCatchBatch(bean, catchBatch);
@@ -273,6 +221,8 @@
Preconditions.checkNotNull(bean.getFishingOperation());
Preconditions.checkNotNull(bean.getFishingOperation().getId());
+ bean.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
+
getCurrentSession().enableFetchProfile("batch-with-childs");
getCurrentSession().setFlushMode(FlushMode.COMMIT);
fr.ifremer.adagio.core.dao.data.batch.CatchBatch catchBatch = load(CatchBatchImpl.class, bean.getIdAsInt());
@@ -316,8 +266,13 @@
target.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
target.setRankOrder((short) 1);
- target.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
+ // SynchronizationStatus
+ String synchronizationStatus = SynchronizationStatus.DIRTY.getValue();
+ target.setSynchronizationStatus(synchronizationStatus);
+ target.getFishingOperation().getFishingTrip().setSynchronizationStatus(synchronizationStatus);
+ target.getFishingOperation().getFishingTrip().getScientificCruise().setSynchronizationStatus(synchronizationStatus);
+
// Create lists to store all updates, then remove not updated items
Collection<QuantificationMeasurement> quantificationMeasurements = target.getQuantificationMeasurements();
Set<QuantificationMeasurement> notChangedQuantificationMeasurements = Sets.newHashSet();
@@ -340,10 +295,8 @@
}
SortingBatch vracBatch = batchTreeHelper.getVracBatch(target);
-// SortingBatch vracBatch = batchHelper.getVracBatch(target);
SortingBatch horsVracBatch = batchTreeHelper.getHorsVracBatch(target);
-// SortingBatch horsVracBatch = batchHelper.getHorsVracBatch(target);
SortingBatch horsVracSpeciesRootBatch = null;
SortingBatch horsVracBenthosRootBatch = null;
@@ -352,11 +305,8 @@
if (horsVracBatch != null) {
horsVracSpeciesRootBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(horsVracBatch);
-// horsVracSpeciesRootBatch = batchHelper.getSpeciesHorsVracRootBatch(horsVracBatch);
horsVracBenthosRootBatch = batchTreeHelper.getBenthosHorsVracRootBatch(horsVracBatch);
-// horsVracBenthosRootBatch = batchHelper.getBenthosHorsVracRootBatch(horsVracBatch);
horsVracMarineLitterRootBatch = batchTreeHelper.getMarineLitterRootBatch(horsVracBatch);
-// horsVracMarineLitterRootBatch = batchHelper.getMarineLitterRootBatch(horsVracBatch);
}
SortingBatch speciesVracBatch = null;
@@ -371,26 +321,18 @@
if (vracBatch != null) {
speciesVracBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
-// speciesVracBatch = batchHelper.getSpeciesVracRootBatch(vracBatch);
if (speciesVracBatch != null) {
speciesVracAliveNotItemizeRootBatch = batchTreeHelper.getSpeciesVracAliveNotItemizedRootBatch(speciesVracBatch);
-// speciesVracAliveNotItemizeRootBatch = batchHelper.getSpeciesVracAliveNotItemizedRootBatch(speciesVracBatch);
speciesVracInertRootBatch = batchTreeHelper.getSpeciesVracInertRootBatch(speciesVracBatch);
-// speciesVracInertRootBatch = batchHelper.getSpeciesVracInertRootBatch(speciesVracBatch);
speciesVracAliveItemizeRootBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(speciesVracBatch);
-// speciesVracAliveItemizeRootBatch = batchHelper.getSpeciesVracAliveItemizeRootBatch(speciesVracBatch);
}
benthosVracBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
-// benthosVracBatch = batchHelper.getBenthosVracRootBatch(vracBatch);
if (benthosVracBatch != null) {
benthosVracAliveNotItemizeRootBatch = batchTreeHelper.getBenthosVracAliveNotItemizedRootBatch(benthosVracBatch);
-// benthosVracAliveNotItemizeRootBatch = batchHelper.getBenthosVracAliveNotItemizedRootBatch(benthosVracBatch);
benthosVracInertRootBatch = batchTreeHelper.getBenthosVracInertRootBatch(benthosVracBatch);
-// benthosVracInertRootBatch = batchHelper.getBenthosVracInertRootBatch(benthosVracBatch);
benthosVracAliveItemizeRootBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(benthosVracBatch);
-// benthosVracAliveItemizeRootBatch = batchHelper.getBenthosVracAliveItemizeRootBatch(benthosVracBatch);
}
}
@@ -435,33 +377,23 @@
boolean needUnsorted = batchTreeHelper.getRejectedBatch(target) != null ||
source.getCatchTotalRejectedWeight() != null;
-// boolean needUnsorted = batchHelper.getRejectedBatch(target) != null ||
- // ---------------------------------------------------------------------
- // Vrac
- // ---------------------------------------------------------------------
-
if (needVrac) {
-
+ // -- Vrac
vracBatch = batchTreeHelper.getOrCreateVracBatch(
target,
source.getCatchTotalSortedCarousselWeight(),
source.getCatchTotalSortedTremisWeight());
if (needVracSpecies) {
-
- // ---------------------------------------------------------------------
- // Vrac / Species
- // ---------------------------------------------------------------------
+ // -- Vrac > Species
speciesVracBatch = batchTreeHelper.getOrCreateSpeciesVracRootBatch(
target,
vracBatch,
source.getSpeciesTotalSortedWeight());
if (needVracSpeciesAliveNotItemized) {
- // ---------------------------------------------------------------------
- // Vrac / Species / Alive not itemized
- // ---------------------------------------------------------------------
+ // -- Vrac > Species > Alive not itemized
batchTreeHelper.getOrCreateSpeciesVracAliveNotItemizedRootBatch(
target,
speciesVracBatch,
@@ -469,9 +401,7 @@
}
if (needVracSpeciesInert) {
- // ---------------------------------------------------------------------
- // Vrac / Species / Inert (not alive)
- // ---------------------------------------------------------------------
+ // -- Vrac > Species > Inert (not alive)
batchTreeHelper.getOrCreateSpeciesVracInertRootBatch(
target,
speciesVracBatch,
@@ -479,9 +409,7 @@
}
if (needVracSpeciesAliveItemized) {
- // ---------------------------------------------------------------------
- // Vrac / Species / Alive itemized
- // ---------------------------------------------------------------------
+ // -- Vrac > Species > Alive itemized
batchTreeHelper.getOrCreateSpeciesVracAliveItemizedRootBatch(
target,
speciesVracBatch);
@@ -489,19 +417,14 @@
}
if (needVracBenthos) {
-
- // ---------------------------------------------------------------------
- // Vrac > Benthos
- // ---------------------------------------------------------------------
+ // -- Vrac > Benthos
benthosVracBatch = batchTreeHelper.getOrCreateBenthosVracRootBatch(
target,
vracBatch,
source.getBenthosTotalSortedWeight());
if (needVracBenthosAliveNotItemized) {
- // ---------------------------------------------------------------------
- // Vrac / Benthos / Alive not itemized
- // ---------------------------------------------------------------------
+ // -- Vrac > Benthos > Alive not itemized
batchTreeHelper.getOrCreateBenthosVracAliveNotItemizedRootBatch(
target,
benthosVracBatch,
@@ -509,9 +432,7 @@
}
if (needVracBenthosInert) {
- // ---------------------------------------------------------------------
- // Vrac / Benthos / Inert (not alive)
- // ---------------------------------------------------------------------
+ // -- Vrac > Benthos > Inert (not alive)
batchTreeHelper.getOrCreateBenthosVracInertRootBatch(
target,
benthosVracBatch,
@@ -519,9 +440,7 @@
}
if (needVracBenthosAliveItemized) {
- // ---------------------------------------------------------------------
- // Vrac / Benthos / Alive itemized
- // ---------------------------------------------------------------------
+ // -- Vrac > Benthos > Alive itemized
batchTreeHelper.getOrCreateBenthosVracAliveItemizedRootBatch(
target,
benthosVracBatch);
@@ -531,34 +450,25 @@
}
if (needHorsVrac) {
-
- // ---------------------------------------------------------------------
- // Hors Vrac
- // ---------------------------------------------------------------------
+ // -- Hors Vrac
horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(target);
if (needHorsVracSpecies) {
- // ---------------------------------------------------------------------
- // Hors Vrac > Species
- // ---------------------------------------------------------------------
+ // -- Hors Vrac > Species
batchTreeHelper.getOrCreateSpeciesHorsVracRootBatch(
target,
horsVracBatch);
}
if (needHorsVracBenthos) {
- // ---------------------------------------------------------------------
- // Hors Vrac > Benthos
- // ---------------------------------------------------------------------
+ // -- Hors Vrac > Benthos
batchTreeHelper.getOrCreateBenthosHorsVracRootBatch(
target,
horsVracBatch);
}
if (needHorsVracMarineLitter) {
- // ---------------------------------------------------------------------
- // Hors Vrac > MarineLitter
- // ---------------------------------------------------------------------
+ // -- Hors Vrac > MarineLitter
batchTreeHelper.getOrCreateMarineLitterRootBatch(
target,
horsVracBatch,
@@ -567,9 +477,7 @@
}
if (needUnsorted) {
- // ---------------------------------------------------------------------
- // Unsorted (=rejected)
- // ---------------------------------------------------------------------
+ // -- Unsorted (=rejected)
batchTreeHelper.getOrCreateRejectedBatch(
target, source.getCatchTotalRejectedWeight());
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -34,7 +34,6 @@
import fr.ifremer.adagio.core.dao.administration.user.PersonDao;
import fr.ifremer.adagio.core.dao.administration.user.PersonImpl;
import fr.ifremer.adagio.core.dao.data.measure.GearPhysicalMeasurement;
-import fr.ifremer.adagio.core.dao.data.measure.SurveyMeasurement;
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.ObservedFishingTrip;
import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
@@ -51,12 +50,9 @@
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.location.LocationImpl;
-import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmDao;
-import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueDao;
-import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
@@ -151,6 +147,12 @@
@Resource(name = "gearPhysicalFeaturesDaoTutti")
protected GearPhysicalFeaturesDaoTutti gearPhysicalFeaturesDao;
+ @Resource(name = "measurementPersistenceHelper")
+ protected MeasurementPersistenceHelper measurementPersistenceHelper;
+
+ @Resource(name = "synchronizationStatusHelper")
+ protected SynchronizationStatusHelper synchronizationStatusHelper;
+
@Override
public List<Cruise> getAllCruise(String programId) {
Iterator<Object[]> list = queryList(
@@ -164,6 +166,7 @@
target.setId(String.valueOf(source[0]));
target.setName((String) source[1]);
target.setBeginDate((Date) source[2]);
+ target.setSynchronizationStatus((String) source[3]);
result.add(target);
}
return Collections.unmodifiableList(result);
@@ -202,13 +205,18 @@
// name
result.setName((String) source[index++]);
+ // begin Date
result.setBeginDate((Date) source[index++]);
+
+ // end Date
result.setEndDate((Date) source[index++]);
+ // vessel
String vesselCode = (String) source[index++];
Vessel vessel = referentialService.getVessel(vesselCode);
result.setVessel(vessel);
+ // head of sort room
List<Person> headOfMissions = Lists.newArrayList();
result.setHeadOfMission(headOfMissions);
List<Person> headOfSortRoom = Lists.newArrayList();
@@ -218,9 +226,13 @@
Person manager = referentialService.getPerson(managerId);
headOfMissions.add(manager);
+ // comment
result.setComment((String) source[index++]);
- // load surverPart
+ // synchronizationStatus
+ result.setSynchronizationStatus((String) source[index++]);
+
+ // surverPart
result.setSurveyPart((String) source[index]);
// get secondary gears from fishingOperation (first load from Allegro DB only)
@@ -291,6 +303,7 @@
scientificCruiseDao.create(scientificCruise);
bean.setId(String.valueOf(scientificCruise.getId()));
+ bean.setSynchronizationStatus(scientificCruise.getSynchronizationStatus());
return bean;
}
@@ -314,10 +327,6 @@
"Could not retrieve cruise with id=" + bean.getId());
}
-// boolean vesselChanged = ObjectUtils.notEqual(
-// bean.getVessel().getId(),
-// scientificCruise.getVessel().getCode());
-
cruiseToEntity(bean, scientificCruise);
scientificCruiseDao.update(scientificCruise);
@@ -361,6 +370,7 @@
}
}
+ bean.setSynchronizationStatus(scientificCruise.getSynchronizationStatus());
return bean;
}
@@ -546,7 +556,7 @@
// Retrieve entities : FishingTrip
ObservedFishingTrip fishingTrip;
- if (target.getFishingTrips() == null || target.getFishingTrips().size() == 0) {
+ if (CollectionUtils.isEmpty(target.getFishingTrips())) {
fishingTrip = ObservedFishingTrip.Factory.newInstance();
if (target.getFishingTrips() == null) {
target.setFishingTrips(Lists.newArrayList((FishingTrip) fishingTrip));
@@ -585,7 +595,6 @@
}
// Default values :
- target.setSynchronizationStatus(SynchronizationStatus.DIRTY.getValue());
if (target.getCreationDate() == null) {
target.setCreationDate(newCreateDate());
}
@@ -602,9 +611,11 @@
fishingTrip.setRecorderPerson(target.getRecorderPerson());
fishingTrip.setRecorderDepartment(target.getRecorderDepartment());
fishingTrip.setCreationDate(target.getCreationDate());
- fishingTrip.setSynchronizationStatus(target.getSynchronizationStatus());
fishingTrip.setQualityFlag(qualityFlagNotQualified);
+ // SynchronizationStatus
+ synchronizationStatusHelper.setDirty(fishingTrip);
+
// DepartureLocation
Location departureLocation = load(LocationImpl.class, Integer.valueOf(source.getDepartureLocation().getId()));
fishingTrip.setDepartureLocation(departureLocation);
@@ -616,11 +627,11 @@
if (StringUtils.isEmpty(source.getSurveyPart())) {
// remove surveyMeasurement if exists
- removeSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART);
+ measurementPersistenceHelper.removeSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART);
} else {
// update it or create it
- setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
+ measurementPersistenceHelper.setSurveyMeasurement(fishingTrip, enumeration.PMFM_ID_SURVEY_PART, null, source.getSurveyPart(), null);
}
// Gear
@@ -755,82 +766,82 @@
fishingTrip.getVesselPersonFeatures().addAll(vesselPersonFeaturesMap.values());
}
- protected SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId) {
- SurveyMeasurement result = null;
-
- for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- result = vum;
- break;
- }
- }
-
- return result;
- }
-
- protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
-
- SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
- result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- result.setDepartment(fishingTrip.getRecorderDepartment());
- Pmfm pmfm = load(PmfmImpl.class, pmfmId);
- result.setPmfm(pmfm);
- result.setFishingTrip(fishingTrip);
-
- if (alphanumericalValue != null) {
- result.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- result.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
- }
-
- // add it to fishingTrip
- if (fishingTrip.getSurveyMeasurements() == null) {
-
- //create new set of measurements
- fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
- }
-
- fishingTrip.getSurveyMeasurements().add(result);
-
- return result;
- }
-
- protected SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-
- if (result == null) {
- result = createSurveyMeasurement(fishingTrip,
- pmfmId,
- numericalValue,
- alphanumericalValue,
- qualitativevalueId);
- }
-
- return result;
- }
-
- protected SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
- Integer pmfmId) {
- SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
-
- if (result != null) {
-
- // measurement found, remove it
- result.setFishingTrip(null);
- fishingTrip.getSurveyMeasurements().remove(result);
- }
-
- return result;
- }
+// public SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip,
+// Integer pmfmId) {
+// SurveyMeasurement result = null;
+//
+// for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
+// if (pmfmId.equals(vum.getPmfm().getId())) {
+// result = vum;
+// break;
+// }
+// }
+//
+// return result;
+// }
+//
+// protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
+// Integer pmfmId,
+// Float numericalValue,
+// String alphanumericalValue,
+// Integer qualitativevalueId) {
+//
+// SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
+// result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+// result.setDepartment(fishingTrip.getRecorderDepartment());
+// Pmfm pmfm = load(PmfmImpl.class, pmfmId);
+// result.setPmfm(pmfm);
+// result.setFishingTrip(fishingTrip);
+//
+// if (alphanumericalValue != null) {
+// result.setAlphanumericalValue(alphanumericalValue);
+// } else if (numericalValue != null) {
+// result.setNumericalValue(numericalValue);
+// } else if (qualitativevalueId != null) {
+// result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+// }
+//
+// // add it to fishingTrip
+// if (fishingTrip.getSurveyMeasurements() == null) {
+//
+// //create new set of measurements
+// fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
+// }
+//
+// fishingTrip.getSurveyMeasurements().add(result);
+//
+// return result;
+// }
+//
+// protected SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
+// Integer pmfmId,
+// Float numericalValue,
+// String alphanumericalValue,
+// Integer qualitativevalueId) {
+// SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+//
+// if (result == null) {
+// result = createSurveyMeasurement(fishingTrip,
+// pmfmId,
+// numericalValue,
+// alphanumericalValue,
+// qualitativevalueId);
+// }
+//
+// return result;
+// }
+//
+// protected SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
+// Integer pmfmId) {
+// SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+//
+// if (result != null) {
+//
+// // measurement found, remove it
+// result.setFishingTrip(null);
+// fishingTrip.getSurveyMeasurements().remove(result);
+// }
+//
+// return result;
+// }
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -62,6 +62,7 @@
import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
+import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
import fr.ifremer.adagio.core.service.referential.location.LocationService;
import fr.ifremer.tutti.persistence.dao.GearPhysicalFeaturesDaoTutti;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
@@ -153,6 +154,9 @@
@Resource(name = "locationDao")
protected LocationExtendDao locationDao;
+ @Resource(name = "synchronizationStatusHelper")
+ protected SynchronizationStatusHelper synchronizationStatusHelper;
+
protected static Float DEFAULT_EMPTY_LATITUDE = 0.0001f;
protected static Float DEFAULT_EMPTY_LONGITUDE = 0.0001f;
@@ -218,6 +222,9 @@
fishingOperation.setFishingOperationNumber(Integer.valueOf(name));
}
+ // SynchronizationStatus
+ fishingOperation.setSynchronizationStatus((String)source[colIndex++]);
+
// If not found, compute it using a counter (see "order by startDateTime" in HQL query)
if (fishingOperation.getFishingOperationNumber() == null) {
fishingOperation.setFishingOperationNumber(fishingOperationRankOrder);
@@ -276,6 +283,10 @@
if (StringUtils.isNotBlank(name)) {
result.setFishingOperationNumber(Integer.valueOf(name));
}
+
+ // SynchronizationStatus
+ result.setSynchronizationStatus((String)source[colIndex++]);
+
Short rankOrder = (Short) source[colIndex++];
// If not found, compute it using a counter (see "order by startDateTime" in HQL query)
@@ -736,6 +747,12 @@
// Link to parent fishing trip
target.setFishingTrip(fishingTrip);
+ // SynchronizationStatus
+ String synchronizationStatus = SynchronizationStatus.DIRTY.getValue();
+ fishingTrip.setSynchronizationStatus(synchronizationStatus);
+ scientificCruise.setSynchronizationStatus(synchronizationStatus);
+
+
// Retrieve entities : VesselPosition (start and end)
VesselPosition startPosition = null;
VesselPosition endPosition = null;
@@ -881,7 +898,7 @@
}
// Store into Gear Use Features
- GearUseMeasurement gum = setGearUseMeasurement(scientificCruise, gearUseFeatures, enumeration.PMFM_ID_MULTIRIG_AGGREGATION, null, source.getMultirigAggregation(), null);
+ GearUseMeasurement gum = measurementPersistenceHelper.setGearUseMeasurement(scientificCruise, gearUseFeatures, enumeration.PMFM_ID_MULTIRIG_AGGREGATION, null, source.getMultirigAggregation(), null);
notChangedGearUseMeasurements.remove(gum);
}
@@ -1100,7 +1117,7 @@
CaracteristicMap gearUseCaracteristics = source.getGearUseFeatures();
if (MapUtils.isNotEmpty(gearUseCaracteristics)) {
for (Caracteristic caracteristic : gearUseCaracteristics.keySet()) {
- GearUseMeasurement gum = setGearUseMeasurement(
+ GearUseMeasurement gum = measurementPersistenceHelper.setGearUseMeasurement(
scientificCruise,
gearUseFeatures,
caracteristic,
@@ -1318,63 +1335,63 @@
return vesselUseMeasurement;
}
- protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Integer pmfmId,
- Float numericalValue,
- String alphanumericalValue,
- Integer qualitativevalueId) {
- GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
+// protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+// Integer pmfmId,
+// Float numericalValue,
+// String alphanumericalValue,
+// Integer qualitativevalueId) {
+// GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
+//
+// if (alphanumericalValue != null) {
+// gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+// } else if (numericalValue != null) {
+// gearUseMeasurement.setNumericalValue(numericalValue);
+// } else if (qualitativevalueId != null) {
+// QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
+// gearUseMeasurement.setQualitativeValue(qv);
+// }
+//
+// return gearUseMeasurement;
+// }
- if (alphanumericalValue != null) {
- gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
- } else if (numericalValue != null) {
- gearUseMeasurement.setNumericalValue(numericalValue);
- } else if (qualitativevalueId != null) {
- QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
- gearUseMeasurement.setQualitativeValue(qv);
- }
+// protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+// Caracteristic caracteristic, Serializable value) {
+// GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
+// measurementPersistenceHelper.setMeasurement(gearUseMeasurement, caracteristic, value);
+// return gearUseMeasurement;
+// }
+//
+// protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+// Integer pmfmId, boolean createIfNotExists) {
+// GearUseMeasurement gearUseMeasurement = null;
+// if (gearUseFeatures.getGearUseMeasurements() != null) {
+// for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
+// if (pmfmId.equals(vum.getPmfm().getId())) {
+// gearUseMeasurement = vum;
+// break;
+// }
+// }
+// }
+// if (gearUseMeasurement == null) {
+// if (!createIfNotExists) {
+// return null;
+// }
+// gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
+// gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
+// if (gearUseFeatures.getGearUseMeasurements() == null) {
+// gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
+// } else {
+// gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
+// }
+// gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+// gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
+// Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
+// gearUseMeasurement.setPmfm(pmfm);
+// }
+//
+// return gearUseMeasurement;
+// }
- return gearUseMeasurement;
- }
-
- protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Caracteristic caracteristic, Serializable value) {
- GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
- measurementPersistenceHelper.setMeasurement(gearUseMeasurement, caracteristic, value);
- return gearUseMeasurement;
- }
-
- protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
- Integer pmfmId, boolean createIfNotExists) {
- GearUseMeasurement gearUseMeasurement = null;
- if (gearUseFeatures.getGearUseMeasurements() != null) {
- for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
- if (pmfmId.equals(vum.getPmfm().getId())) {
- gearUseMeasurement = vum;
- break;
- }
- }
- }
- if (gearUseMeasurement == null) {
- if (!createIfNotExists) {
- return null;
- }
- gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
- gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
- if (gearUseFeatures.getGearUseMeasurements() == null) {
- gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
- } else {
- gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
- }
- gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
- gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
- Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
- gearUseMeasurement.setPmfm(pmfm);
- }
-
- return gearUseMeasurement;
- }
-
protected void setOperationVesselAssociation(Operation target, List<String> vesselCodes) {
boolean noOperationVesselAssociations =
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -82,6 +82,9 @@
@Resource(name = "batchPersistenceHelper")
protected BatchPersistenceHelper batchHelper;
+ @Resource(name = "synchronizationStatusHelper")
+ protected SynchronizationStatusHelper synchronizationStatusHelper;
+
@Override
public List<IndividualObservationBatch> getAllIndividualObservationBatch(String fishingOperationId) {
Preconditions.checkNotNull(fishingOperationId);
@@ -118,6 +121,9 @@
// Comment
batch.setComment((String) source[colIndex]);
+ // synchronizationStatus
+ batch.setSynchronizationStatus((String) source[colIndex]);
+
// Sample Measurements
batch.setCaracteristics(new CaracteristicMap());
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MeasurementPersistenceHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -25,12 +25,21 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
import fr.ifremer.adagio.core.dao.data.batch.Batch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
+import fr.ifremer.adagio.core.dao.data.measure.GearUseMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.Measurement;
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.SortingMeasurement;
+import fr.ifremer.adagio.core.dao.data.measure.SurveyMeasurement;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.use.GearUseFeatures;
+import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl;
+import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
+import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueImpl;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -82,6 +91,10 @@
}
}
+ //------------------------------------------------------------------------//
+ //-- SortingMeasurement --//
+ //------------------------------------------------------------------------//
+
public SortingMeasurement setSortingMeasurement(
SortingBatch sortingBatch,
Integer pmfmId,
@@ -111,6 +124,170 @@
return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, enumeration.PMFM_ID_SORTED_UNSORTED);
}
+ //------------------------------------------------------------------------//
+ //-- GearUseMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, pmfmId, true);
+
+ if (alphanumericalValue != null) {
+ gearUseMeasurement.setAlphanumericalValue(alphanumericalValue);
+ } else if (numericalValue != null) {
+ gearUseMeasurement.setNumericalValue(numericalValue);
+ } else if (qualitativevalueId != null) {
+ QualitativeValue qv = load(QualitativeValueImpl.class, qualitativevalueId);
+ gearUseMeasurement.setQualitativeValue(qv);
+ }
+
+ return gearUseMeasurement;
+ }
+
+ protected GearUseMeasurement setGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Caracteristic caracteristic, Serializable value) {
+ GearUseMeasurement gearUseMeasurement = getGearUseMeasurement(scientificCruise, gearUseFeatures, Integer.valueOf(caracteristic.getId()), true);
+ setMeasurement(gearUseMeasurement, caracteristic, value);
+ return gearUseMeasurement;
+ }
+
+ protected GearUseMeasurement getGearUseMeasurement(ScientificCruise scientificCruise, GearUseFeatures gearUseFeatures,
+ Integer pmfmId, boolean createIfNotExists) {
+ GearUseMeasurement gearUseMeasurement = null;
+ if (gearUseFeatures.getGearUseMeasurements() != null) {
+ for (GearUseMeasurement vum : gearUseFeatures.getGearUseMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ gearUseMeasurement = vum;
+ break;
+ }
+ }
+ }
+ if (gearUseMeasurement == null) {
+ if (!createIfNotExists) {
+ return null;
+ }
+ gearUseMeasurement = GearUseMeasurement.Factory.newInstance();
+ gearUseMeasurement.setGearUseFeatures(gearUseFeatures);
+ if (gearUseFeatures.getGearUseMeasurements() == null) {
+ gearUseFeatures.setGearUseMeasurements(Sets.newHashSet(gearUseMeasurement));
+ } else {
+ gearUseFeatures.getGearUseMeasurements().add(gearUseMeasurement);
+ }
+ gearUseMeasurement.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ gearUseMeasurement.setDepartment(scientificCruise.getRecorderDepartment());
+ Pmfm pmfm = (Pmfm) getCurrentSession().load(PmfmImpl.class, pmfmId);
+ gearUseMeasurement.setPmfm(pmfm);
+ }
+
+ return gearUseMeasurement;
+ }
+
+
+ //------------------------------------------------------------------------//
+ //-- Misc --//
+ //------------------------------------------------------------------------//
+
+ public String toString(Measurement measurement) {
+ Pmfm pmfm = load(PmfmImpl.class, measurement.getPmfm().getId());
+ String value = null;
+ if (measurement.getQualitativeValue() != null) {
+ QualitativeValue qualitativeValue = measurement.getQualitativeValue();
+ String qualitativeName = load(QualitativeValueImpl.class, qualitativeValue.getId()).getName();
+
+ value = qualitativeName + " (" + qualitativeValue.getId() + ")";
+ } else if (measurement.getNumericalValue() != null) {
+ value = "" + measurement.getNumericalValue();
+ } else if (measurement.getAlphanumericalValue() != null) {
+ value = measurement.getAlphanumericalValue();
+ }
+ return pmfm.getParameter().getName() + " (" + pmfm.getId() + ") / " + value;
+ }
+
+ //------------------------------------------------------------------------//
+ //-- SurveyMeasurement --//
+ //------------------------------------------------------------------------//
+
+ public SurveyMeasurement setSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+ SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+
+ if (result == null) {
+ result = createSurveyMeasurement(fishingTrip,
+ pmfmId,
+ numericalValue,
+ alphanumericalValue,
+ qualitativevalueId);
+ }
+
+ return result;
+ }
+
+ public SurveyMeasurement removeSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId) {
+ SurveyMeasurement result = getSurveyMeasurement(fishingTrip, pmfmId);
+
+ if (result != null) {
+
+ // measurement found, remove it
+ result.setFishingTrip(null);
+ fishingTrip.getSurveyMeasurements().remove(result);
+ }
+
+ return result;
+ }
+
+ protected SurveyMeasurement createSurveyMeasurement(FishingTrip fishingTrip,
+ Integer pmfmId,
+ Float numericalValue,
+ String alphanumericalValue,
+ Integer qualitativevalueId) {
+
+ SurveyMeasurement result = SurveyMeasurement.Factory.newInstance();
+ result.setQualityFlag(load(QualityFlagImpl.class, enumeration.QUALITY_FLAG_CODE_NOT_QUALIFIED));
+ result.setDepartment(fishingTrip.getRecorderDepartment());
+ Pmfm pmfm = load(PmfmImpl.class, pmfmId);
+ result.setPmfm(pmfm);
+ result.setFishingTrip(fishingTrip);
+
+ if (alphanumericalValue != null) {
+ result.setAlphanumericalValue(alphanumericalValue);
+ } else if (numericalValue != null) {
+ result.setNumericalValue(numericalValue);
+ } else if (qualitativevalueId != null) {
+ result.setQualitativeValue(load(QualitativeValueImpl.class, qualitativevalueId));
+ }
+
+ // add it to fishingTrip
+ if (fishingTrip.getSurveyMeasurements() == null) {
+
+ //create new set of measurements
+ fishingTrip.setSurveyMeasurements(Sets.<SurveyMeasurement>newHashSet());
+ }
+
+ fishingTrip.getSurveyMeasurements().add(result);
+
+ return result;
+ }
+
+ protected SurveyMeasurement getSurveyMeasurement(FishingTrip fishingTrip, Integer pmfmId) {
+ SurveyMeasurement result = null;
+
+ for (SurveyMeasurement vum : fishingTrip.getSurveyMeasurements()) {
+ if (pmfmId.equals(vum.getPmfm().getId())) {
+ result = vum;
+ break;
+ }
+ }
+
+ return result;
+ }
+
protected Integer getRecorderDepartmentId() {
// TODO BL : voir si on peut récupérer le departement (du 1er saisisseur ?)
return enumeration.DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -28,7 +28,6 @@
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
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.referential.Species;
@@ -55,14 +54,14 @@
* <p/>
* <strong>Note:</strong> All childs of the batch should be loaded here.
*
- * @param fishingOperationId if of the fishing operation to seek
- * @param sampleCategoryModel [optional] sample category model to check
+ * @param fishingOperationId if of the fishing operation to seek
+ * @param validateTree flag to validate sample category model
* @return the list of root {@link SpeciesBatch}
* @throws InvalidBatchModelException if batch does not respect the sample category model
* @since 2.4
*/
BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId,
- SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException;
+ boolean validateTree) throws InvalidBatchModelException;
@Transactional(readOnly = false)
SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId);
@@ -87,7 +86,7 @@
void changeSpeciesBatchSpecies(String batchId, Species species);
//------------------------------------------------------------------------//
- //-- SpeciesBatchFrequency methods (for species) --//
+ //-- SpeciesBatchFrequency methods --//
//------------------------------------------------------------------------//
/**
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -45,18 +45,15 @@
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;
import fr.ifremer.tutti.persistence.service.batch.BatchTreeHelper;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -90,40 +87,26 @@
@Resource(name = "measurementPersistenceHelper")
protected MeasurementPersistenceHelper measurementPersistenceHelper;
- protected SampleCategoryModel sampleCategoryModel;
-
- @Override
- public void init() {
- super.init();
-
- sampleCategoryModel = config.getSampleCategoryModel();
- }
-
//------------------------------------------------------------------------//
//-- SpeciesBatch methods --//
//------------------------------------------------------------------------//
@Override
public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId,
- SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
+ boolean validateTree) throws InvalidBatchModelException {
Preconditions.checkNotNull(fishingOperationId);
CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false);
- // Vrac / Species
+ // -- Vrac > Species > Alive Itemized
SortingBatch vracSpeciesBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(catchBatch);
-// SortingBatch vracSpeciesBatch = batchHelper.getSortingBatch(
-// catchBatch,
-// "Vrac > Species > Alive Itemized",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
-// enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
-// );
// container of speciesBatch is arbitraty put on vrac type (there is
// no common ancestor for all species batch).
- BatchContainer<SpeciesBatch> result = new BatchContainer<SpeciesBatch>();
+ BatchContainer<SpeciesBatch> result = new BatchContainer<>();
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
+
if (vracSpeciesBatch != null) {
result.setId(vracSpeciesBatch.getId());
@@ -141,7 +124,8 @@
}
SpeciesBatch target = SpeciesBatchs.newSpeciesBatch();
target.setSpecies(species);
- entityToSpeciesBatch(source, target);
+
+ entityToSpeciesBatch(sampleCategoryModel, source, target);
result.addChildren(target);
if (log.isDebugEnabled()) {
@@ -150,13 +134,9 @@
}
}
- // Hors-Vrac / Species
+ // -- Hors Vrac > Species
SortingBatch horsVracSpeciesBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(catchBatch);
-// SortingBatch horsVracSpeciesBatch = batchHelper.getSortingBatch(
-// catchBatch,
-// "Hors Vrac > Species",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
+
if (horsVracSpeciesBatch != null) {
for (Batch batch : horsVracSpeciesBatch.getChildBatchs()) {
SortingBatch source = (SortingBatch) batch;
@@ -171,7 +151,7 @@
}
SpeciesBatch target = SpeciesBatchs.newSpeciesBatch();
target.setSpecies(species);
- entityToSpeciesBatch(source, target);
+ entityToSpeciesBatch(sampleCategoryModel, source, target);
result.addChildren(target);
if (log.isDebugEnabled()) {
log.debug("Loaded CatchBatch Hors Vrac > Species > " + target.getSpecies().getReferenceTaxonId() + ": " + target.getId());
@@ -179,7 +159,7 @@
}
}
- if (sampleCategoryModel != null) {
+ if (validateTree) {
// validate with given sample category model
batchHelper.validateSpecies(sampleCategoryModel, result);
@@ -235,30 +215,7 @@
@Override
public void deleteSpeciesSubBatch(String id) {
- Preconditions.checkNotNull(id);
-
- Integer speciesBatchId = Integer.valueOf(id);
-
- CatchBatch catchBatch = batchHelper.getRootCatchBatchByBatchId(speciesBatchId);
- SortingBatch sortingBatch = batchHelper.getSortingBatchById(
- catchBatch, speciesBatchId);
-
- // get his children
- Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
-
- if (CollectionUtils.isNotEmpty(childBatchs)) {
-
- for (Batch childBatch : childBatchs) {
-
- // delete this child and all his children
- Integer childBatchId = childBatch.getId();
-
- if (log.isDebugEnabled()) {
- log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
- }
- batchHelper.removeWithChildren(childBatchId);
- }
- }
+ batchHelper.deleteSpeciesSubBatch(id);
}
@Override
@@ -283,13 +240,13 @@
Preconditions.checkNotNull(speciesBatchId);
List<SortingBatch> frequencyChilds =
- batchHelper.getFrequencies(sampleCategoryModel, speciesBatchId);
+ batchHelper.getFrequencies(speciesBatchId);
List<SpeciesBatchFrequency> results = Lists.newArrayList();
for (SortingBatch child : frequencyChilds) {
SpeciesBatchFrequency target =
SpeciesBatchFrequencys.newSpeciesBatchFrequency();
- entityToSpeciesBatchFrequency(child, target);
+ batchHelper.entityToBatchFrequency(child, target);
results.add(target);
}
return Collections.unmodifiableList(results);
@@ -353,7 +310,7 @@
// Remember child ids, to remove unchanged item (see at bottom in this method)
List<Integer> notUpdatedChildIds = Lists.newArrayList();
- List<SortingBatch> frequencyChilds = batchHelper.getFrequencyChilds(sampleCategoryModel, parentBatch);
+ List<SortingBatch> frequencyChilds = batchHelper.getFrequencyChilds(parentBatch);
for (SortingBatch child : frequencyChilds) {
notUpdatedChildIds.add(child.getId());
}
@@ -426,7 +383,7 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected SpeciesBatch entityToSpeciesBatch(SortingBatch source,
+ protected SpeciesBatch entityToSpeciesBatch(SampleCategoryModel sampleCategoryModel, SortingBatch source,
SpeciesBatch target) {
Preconditions.checkNotNull(target.getSpecies());
@@ -461,13 +418,12 @@
boolean isFrequency = batchHelper.isFrequencyBatch(sampleCategoryModel, source);
-// boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(sm.getPmfm().getId());
if (!isFrequency) {
Integer qualitativeId = null;
if (sm.getQualitativeValue() != null) {
qualitativeId = sm.getQualitativeValue().getId();
}
- setSampleCategoryQualitative(
+ batchHelper.setSampleCategoryQualitative(
target,
sm.getPmfm().getId(),
sm.getNumericalValue(),
@@ -482,7 +438,7 @@
SortingBatch sourceChild = (SortingBatch) batch;
SpeciesBatch targetChild = SpeciesBatchs.newSpeciesBatch();
targetChild.setSpecies(target.getSpecies());
- entityToSpeciesBatch(sourceChild, targetChild);
+ entityToSpeciesBatch(sampleCategoryModel, sourceChild, targetChild);
if (log.isDebugEnabled()) {
log.debug("Loaded CatchBatch (Vrac|Hors Vrac) > Species > " + targetChild.getSpecies().getReferenceTaxonId() + " : " + target.getId());
}
@@ -500,31 +456,6 @@
return target;
}
- protected void entityToSpeciesBatchFrequency(SortingBatch source,
- SpeciesBatchFrequency target) {
-
- target.setId(source.getId());
-
- // Rank order
- target.setRankOrder(Integer.valueOf(source.getRankOrder()));
-
- target.setNumber(source.getIndividualCount());
- target.setWeight(source.getWeight());
-
- Preconditions.checkState(source.getSortingMeasurements().size() == 1, "SortingBatch [" + source.getId() + "] need exactly one sortingMeasurement (to store the length step category), but had " + source.getSortingMeasurements().size());
- SortingMeasurement sm = source.getSortingMeasurements().iterator().next();
- Preconditions.checkNotNull(sm.getPmfm(), "SortingMeasurement [" + sm.getId() + "] can not have a null pmfm");
- Preconditions.checkNotNull(sm.getPmfm().getId(), "SortingMeasurement [" + sm.getId() + "] can not have a pmfm with null id");
-
- // Length step category
- Caracteristic lengthStepCaracteristic =
- referentialService.getCaracteristic(sm.getPmfm().getId());
- target.setLengthStepCaracteristic(lengthStepCaracteristic);
-
- // Length
- target.setLengthStep(sm.getNumericalValue());
- }
-
protected void speciesBatchToEntity(SpeciesBatch source,
SortingBatch target,
String parentBatchId,
@@ -738,26 +669,4 @@
}
}
- protected void setSampleCategoryQualitative(SpeciesBatch target,
- Integer pmfmId,
- Float numericalvalue,
- String alphanumericalValue,
- Integer qualitativeValueId) {
- // skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
- if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
- return;
- }
-
- boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(pmfmId);
- Preconditions.checkNotNull(isSamplingCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
-
- target.setSampleCategoryId(pmfmId);
- Serializable categoryValue = batchHelper.getSampleCategoryQualitative(
- pmfmId,
- numericalvalue,
- alphanumericalValue,
- qualitativeValueId);
- target.setSampleCategoryValue(categoryValue);
- }
-
}
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -0,0 +1,85 @@
+package fr.ifremer.tutti.persistence.service;
+
+import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
+import fr.ifremer.adagio.core.dao.data.sample.Sample;
+import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
+import fr.ifremer.adagio.core.dao.data.survey.scientificCruise.ScientificCruise;
+import fr.ifremer.adagio.core.dao.technical.synchronization.SynchronizationStatus;
+import org.hibernate.type.IntegerType;
+import org.hibernate.type.StringType;
+import org.springframework.stereotype.Component;
+
+/**
+ * Helper around SynchronizationStatus.
+ * <p/>
+ * Created on 4/22/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.5
+ */
+@Component("synchronizationStatusHelper")
+public class SynchronizationStatusHelper extends AbstractPersistenceService {
+
+ public void setDirty(ScientificCruise scientificCruise) {
+ String synchronizationStatus = getDirtyValue();
+ scientificCruise.setSynchronizationStatus(synchronizationStatus);
+ }
+
+ public void setDirty(FishingTrip fishingTrip) {
+ String synchronizationStatus = getDirtyValue();
+ fishingTrip.setSynchronizationStatus(synchronizationStatus);
+ setDirty(fishingTrip.getScientificCruise());
+ }
+
+ public void setDirty(CatchBatch catchBatch) {
+ String synchronizationStatus = getDirtyValue();
+ catchBatch.setSynchronizationStatus(synchronizationStatus);
+ setDirty(catchBatch.getFishingOperation().getFishingTrip());
+ }
+
+ public void setDirty(Sample sample) {
+ String synchronizationStatus = getDirtyValue();
+ sample.setSynchronizationStatus(synchronizationStatus);
+ Batch batch = sample.getBatch();
+ if (batch != null && batch instanceof CatchBatch) {
+ setDirty((CatchBatch) batch);
+ } else {
+ setDirty(sample.getFishingOperation().getFishingTrip());
+ }
+ }
+
+ public void setReadyToSynch(String cruiseId) {
+
+ String oldStatus = getDirtyValue();
+ String newStatus = SynchronizationStatus.READY_TO_SYNCHRONIZE.getValue();
+
+ // update scientificCruise
+ queryUpdate("updateScientificCruiseSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update fishingTrip
+ queryUpdate("updateFishingTripSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update catchBatch
+ queryUpdate("updateCatchBatchSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+
+ // update sample
+ queryUpdate("updateSampleSynchronizationStatus",
+ "cruiseId", IntegerType.INSTANCE, cruiseId,
+ "oldStatus", StringType.INSTANCE, oldStatus,
+ "newStatus", StringType.INSTANCE, newStatus);
+ }
+
+ protected String getDirtyValue() {
+ return SynchronizationStatus.DIRTY.getValue();
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SynchronizationStatusHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchPersistenceHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -42,6 +42,8 @@
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchFrequency;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
@@ -51,6 +53,8 @@
import fr.ifremer.tutti.persistence.service.IndividualObservationBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.DataRetrievalFailureException;
import org.springframework.stereotype.Component;
@@ -58,6 +62,7 @@
import javax.annotation.Resource;
import java.io.Serializable;
import java.text.MessageFormat;
+import java.util.Collection;
import java.util.List;
import static org.nuiton.i18n.I18n.t;
@@ -71,9 +76,9 @@
@Component("batchPersistenceHelper")
public class BatchPersistenceHelper extends AbstractPersistenceService {
-// /** Logger. */
-// private static final Log log =
-// LogFactory.getLog(BatchPersistenceHelper.class);
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(BatchPersistenceHelper.class);
@Resource(name = "referentialPersistenceService")
protected ReferentialPersistenceService referentialService;
@@ -93,9 +98,6 @@
@Resource(name = "scientificCruiseCatchBatchValidator")
protected TuttiCatchBatchValidator catchBatchValidator;
-// @Resource(name = "measurementPersistenceHelper")
-// protected MeasurementPersistenceHelper measurementPersistenceHelper;
-
@Resource(name = "batchTreeHelper")
protected BatchTreeHelper batchTreeHelper;
@@ -219,18 +221,11 @@
catchBatchDao.updateSortingBatch(sortingBatch, parentCatchBatch);
}
-// public SortingMeasurement getInheritedSortingMeasurement(SortingBatch sortingBatch) {
-// return catchBatchDao.getInheritedSortingMeasurement(sortingBatch, enumeration.PMFM_ID_SORTED_UNSORTED);
-// }
-
-// public QuantificationMeasurement setWeightMeasurementQuantificationMeasurement(Batch batch, Float weightValue) {
-// return catchBatchDao.setQuantificationMeasurement(batch, enumeration.PMFM_ID_WEIGHT_MEASURED, getRecorderDepartmentId(), weightValue, true);
-// }
-
- public List<SortingBatch> getFrequencyChilds(SampleCategoryModel sampleCategoryModel,
- SortingBatch sortingBatch) {
+ public List<SortingBatch> getFrequencyChilds(SortingBatch sortingBatch) {
List<SortingBatch> result = Lists.newArrayList();
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
+
for (Batch batch : sortingBatch.getChildBatchs()) {
SortingBatch child = (SortingBatch) batch;
if (isFrequencyBatch(sampleCategoryModel, child)) {
@@ -240,16 +235,15 @@
return result;
}
- public List<SortingBatch> getFrequencies(SampleCategoryModel sampleCategoryModel,
- String batchId) {
+ public List<SortingBatch> getFrequencies(String batchId) {
Preconditions.checkNotNull(batchId);
Integer sortingBatchId = Integer.valueOf(batchId);
CatchBatch catchBatch = getRootCatchBatchByBatchId(sortingBatchId);
SortingBatch sortingBatch = catchBatchDao.getSortingBatchById(
catchBatch, sortingBatchId);
- List<SortingBatch> frequencyChilds = getFrequencyChilds(sampleCategoryModel,
- sortingBatch);
+ List<SortingBatch> frequencyChilds = getFrequencyChilds(
+ sortingBatch);
return frequencyChilds;
}
@@ -331,69 +325,41 @@
if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
- // get vrac / Species / Alive itemized batch
+ // -- Vrac > Species > Alive itemized
parentBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(catchBatch);
-// parentBatch = getSortingBatch(
-// catchBatch,
-// "Vrac > Species > Alive Itemized",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
-// enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED);
if (parentBatch == null) {
- // get vrac batch
-
+ // -- Vrac
SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
-// SortingBatch vracBatch = getSortingBatch(
-// catchBatch,
-// "Vrac",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID);
if (vracBatch == null) {
-
- // create vrac batch
vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
}
- // get vrac > species batch
-
+ // -- Vrac > Species
SortingBatch vracSpeciesBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
-// SortingBatch vracSpeciesBatch = getSortingBatch(
-// vracBatch,
-// "Vrac > Species",
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
if (vracSpeciesBatch == null) {
-
- // create vrac > species batch
vracSpeciesBatch = batchTreeHelper.getOrCreateSpeciesVracRootBatch(catchBatch, vracBatch, null);
}
- // create vrac > species > Alive itemized batch
-
+ // -- Vrac > Species > Alive itemized
parentBatch = batchTreeHelper.getOrCreateSpeciesVracAliveItemizedRootBatch(catchBatch, vracSpeciesBatch);
}
} else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
- // get hors vrac > Species batch
+ // -- Hors Vrac > Species
parentBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(catchBatch);
-// parentBatch = getSortingBatch(
-// catchBatch,
-// "Hors vrac > Species",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES);
if (parentBatch == null) {
- // get (or create) hors vrac batch
+ // -- Hors Vrac
SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
- // create hors vrac > species batch
- parentBatch = batchTreeHelper.getOrCreateSpeciesHorsVracRootBatch(
- catchBatch,
- horsVracBatch);
+ // -- Hors Vrac > Species
+ parentBatch = batchTreeHelper.getOrCreateSpeciesHorsVracRootBatch(catchBatch, horsVracBatch);
}
} else {
@@ -438,70 +404,41 @@
if (enumeration.QUALITATIVE_VRAC_ID.equals(qualitativeValueId)) {
- // Vrac > Benthos > Alive Itemized
+ // -- Vrac > Benthos > Alive Itemized
parentBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(catchBatch);
-// parentBatch = getSortingBatch(
-// catchBatch,
-// "Vrac > Species > Alive Itemized",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
-// enumeration.PMFM_ID_SORTING_TYPE_2, enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED);
if (parentBatch == null) {
- // get vrac batch
-
+ // -- Vrac
SortingBatch vracBatch = batchTreeHelper.getVracBatch(catchBatch);
-// SortingBatch vracBatch = getSortingBatch(
-// catchBatch,
-// "Vrac",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_VRAC_ID);
if (vracBatch == null) {
-
- // create vrac batch
vracBatch = batchTreeHelper.getOrCreateVracBatch(catchBatch, null, null);
}
- // get vrac > Benthos batch
-
+ // -- Vrac > Benthos
SortingBatch vracBenthosBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
-// SortingBatch vracBenthosBatch = getSortingBatch(
-// vracBatch,
-// "Vrac > Benthos",
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
if (vracBenthosBatch == null) {
-
- // create vrac > Benthos batch
vracBenthosBatch = batchTreeHelper.getOrCreateBenthosVracRootBatch(catchBatch, vracBatch, null);
}
- // create vrac > Benthos > Alive itemized batch
-
+ // -- Vrac > Benthos > Alive itemized
parentBatch = batchTreeHelper.getOrCreateBenthosVracAliveItemizedRootBatch(catchBatch, vracBenthosBatch);
}
} else if (enumeration.QUALITATIVE_HORS_VRAC_ID.equals(qualitativeValueId)) {
- // get hors-vrac > Benthos batch
+ // -- Hors Vrac > Benthos
parentBatch = batchTreeHelper.getBenthosHorsVracRootBatch(catchBatch);
-// parentBatch = getSortingBatch(
-// catchBatch,
-// "Hors vrac > Benthos",
-// enumeration.PMFM_ID_SORTED_UNSORTED, enumeration.QUALITATIVE_HORS_VRAC_ID,
-// enumeration.PMFM_ID_SORTING_TYPE, enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS);
if (parentBatch == null) {
- // get (or create) hors vrac batch
-
+ // -- Hors Vrac
SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
- // create hors vrac > Benthos batch
- parentBatch = batchTreeHelper.getOrCreateBenthosHorsVracRootBatch(
- catchBatch,
- horsVracBatch);
+ // -- Hors Vrac > Benthos
+ parentBatch = batchTreeHelper.getOrCreateBenthosHorsVracRootBatch(catchBatch, horsVracBatch);
}
} else {
@@ -518,12 +455,15 @@
Preconditions.checkNotNull(target);
+ // -- Hors Vrac > Marine Litter
SortingBatch parentBatch = batchTreeHelper.getMarineLitterRootBatch(catchBatch);
if (parentBatch == null) {
+ // -- Hors Vrac
SortingBatch horsVracBatch = batchTreeHelper.getOrCreateHorsVracBatch(catchBatch);
+ // -- Hors Vrac > Marine Litter
parentBatch = batchTreeHelper.getOrCreateMarineLitterRootBatch(catchBatch, horsVracBatch, null);
}
@@ -545,342 +485,80 @@
return qualitativeValueId;
}
-// public SortingBatch getSortingBatch(Batch source,
-// String debugMessage,
-// Integer... ids) {
-//
-// return getSortingBatch(source.getChildBatchs(), debugMessage, ids);
-// }
+ public void deleteSpeciesSubBatch(String id) {
+ Preconditions.checkNotNull(id);
-// public SortingBatch getSortingBatch(Collection<Batch> childs,
-// String debugMessage,
-// Integer... ids) {
-//
-// int nbParams = ids.length / 2;
-//
-// Object[] params = new Object[nbParams * 3];
-// for (int i = 0; i < nbParams; i++) {
-// Integer sortingPmfmId = ids[2 * i];
-// Integer sortingQualitativeValueId = ids[2 * i + 1];
-// params[3 * i] = CatchBatchExtendDao.PMFM_ID;
-// params[3 * i + 1] = sortingPmfmId;
-// params[3 * i + 2] = sortingQualitativeValueId;
-// }
-// SortingBatch result = catchBatchDao.getSortingBatch(childs, params);
-// if (result != null && debugMessage != null && log.isDebugEnabled()) {
-// log.debug("Loaded " + debugMessage + ": " + result.getId());
-// }
-// return result;
-// }
+ Integer speciesBatchId = Integer.valueOf(id);
-// public SortingBatch getVracBatch(CatchBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_VRAC_ID
-// );
-// }
+ CatchBatch catchBatch = getRootCatchBatchByBatchId(speciesBatchId);
+ SortingBatch sortingBatch = getSortingBatchById(catchBatch, speciesBatchId);
-// public SortingBatch getOrCreateVracBatch(CatchBatch batch,
-// Float weight,
-// Float weightBeforeSampling) {
-// return getOrCreate(
-// batch,
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_VRAC_ID,
-// weight,
-// weightBeforeSampling,
-// (short) 1
-// );
-// }
+ // get his children
+ Collection<Batch> childBatchs = sortingBatch.getChildBatchs();
-// public SortingBatch getSpeciesVracRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
-// );
-// }
+ if (CollectionUtils.isNotEmpty(childBatchs)) {
-// public SortingBatch getOrCreateSpeciesVracRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
-// totalWeight,
-// (short) 1
-// );
-// }
+ for (Batch childBatch : childBatchs) {
-// public SortingBatch getSpeciesVracAliveNotItemizedRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
-// );
-// }
+ // delete this child and all his children
+ Integer childBatchId = childBatch.getId();
-// public SortingBatch getOrCreateSpeciesVracAliveNotItemizedRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
-// totalWeight,
-// (short) 1
-// );
-// }
+ if (log.isDebugEnabled()) {
+ log.debug("Delete child [" + childBatchId + "] of species batch: " + id);
+ }
+ removeWithChildren(childBatchId);
+ }
+ }
+ }
-// public SortingBatch getSpeciesVracInertRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
-// );
-// }
-// public SortingBatch getOrCreateSpeciesVracInertRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
-// totalWeight,
-// (short) 2
-// );
-// }
+ public <S extends SpeciesAbleBatch> void setSampleCategoryQualitative(S target,
+ Integer pmfmId,
+ Float numericalvalue,
+ String alphanumericalValue,
+ Integer qualitativeValueId) {
+ // skip if null or corresponding to the SORTING_TYPE PMFM (Espèce, Benthos, Plancton, etc.)
+ if (pmfmId == null || pmfmId.equals(enumeration.PMFM_ID_SORTING_TYPE)) {
+ return;
+ }
+ SampleCategoryModel sampleCategoryModel = getSampleCategoryModel();
-// public SortingBatch getSpeciesVracAliveItemizeRootBatch(
-// SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
-// );
-// }
+ boolean isSamplingCategory = sampleCategoryModel.containsCategoryId(pmfmId);
+ Preconditions.checkNotNull(isSamplingCategory, "Unable to find corresponding SampleCategoryEnum for PMFM.ID : " + pmfmId);
-// public SortingBatch getOrCreateSpeciesVracAliveItemizedRootBatch(CatchBatch target,
-// SortingBatch batch) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
-// null,
-// (short) 3
-// );
-// }
+ target.setSampleCategoryId(pmfmId);
+ Serializable categoryValue = getSampleCategoryQualitative(
+ pmfmId,
+ numericalvalue,
+ alphanumericalValue,
+ qualitativeValueId);
+ target.setSampleCategoryValue(categoryValue);
+ }
-// public SortingBatch getBenthosVracRootBatch(
-// SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
-// );
-// }
+ public <F extends SpeciesAbleBatchFrequency & TuttiEntity> void entityToBatchFrequency(SortingBatch source,
+ F target) {
-// public SortingBatch getOrCreateBenthosVracRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
-// totalWeight,
-// (short) 2
-// );
-// }
+ target.setId(source.getId());
-// public SortingBatch getBenthosVracAliveNotItemizedRootBatch(
-// SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
-// );
-// }
+ // Rank order
+ target.setRankOrder(Integer.valueOf(source.getRankOrder()));
-// public SortingBatch getOrCreateBenthosVracAliveNotItemizedRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED,
-// totalWeight,
-// (short) 1
-// );
-// }
+ target.setNumber(source.getIndividualCount());
+ target.setWeight(source.getWeight());
-// public SortingBatch getBenthosVracInertRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
-// );
-// }
+ Preconditions.checkState(source.getSortingMeasurements().size() == 1, "SortingBatch [" + source.getId() + "] need exactly one sortingMeasurement (to store the length step category), but had " + source.getSortingMeasurements().size());
+ SortingMeasurement sm = source.getSortingMeasurements().iterator().next();
+ Preconditions.checkNotNull(sm.getPmfm(), "SortingMeasurement [" + sm.getId() + "] can not have a null pmfm");
+ Preconditions.checkNotNull(sm.getPmfm().getId(), "SortingMeasurement [" + sm.getId() + "] can not have a pmfm with null id");
-// public SortingBatch getOrCreateBenthosVracInertRootBatch(fr.ifremer.adagio.core.dao.data.batch.CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT,
-// totalWeight,
-// (short) 2
-// );
-// }
+ // Length step category
+ Caracteristic lengthStepCaracteristic = referentialService.getCaracteristic(sm.getPmfm().getId());
+ target.setLengthStepCaracteristic(lengthStepCaracteristic);
-// public SortingBatch getBenthosVracAliveItemizeRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
-// );
-// }
+ // Length
+ target.setLengthStep(sm.getNumericalValue());
+ }
-// public SortingBatch getOrCreateBenthosVracAliveItemizedRootBatch(CatchBatch target,
-// SortingBatch batch) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE_2,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED,
-// null,
-// (short) 3
-// );
-// }
-
-// public SortingBatch getHorsVracBatch(CatchBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_HORS_VRAC_ID
-// );
-// }
-
-// public SortingBatch getOrCreateHorsVracBatch(CatchBatch batch) {
-// return getOrCreate(
-// batch,
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_HORS_VRAC_ID,
-// null,
-// (short) 2
-// );
-// }
-
-// public SortingBatch getSpeciesHorsVracRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES
-// );
-// }
-
-// public SortingBatch getOrCreateSpeciesHorsVracRootBatch(CatchBatch target,
-// SortingBatch batch) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_SPECIES,
-// null,
-// (short) 1
-// );
-// }
-
-// public SortingBatch getBenthosHorsVracRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS
-// );
-// }
-
-// public SortingBatch getOrCreateBenthosHorsVracRootBatch(CatchBatch target,
-// SortingBatch batch) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_BENTHOS,
-// null,
-// (short) 2
-// );
-// }
-
-// public SortingBatch getMarineLitterRootBatch(SortingBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER
-// );
-// }
-
-// public SortingBatch getOrCreateMarineLitterRootBatch(CatchBatch target,
-// SortingBatch batch,
-// Float totalWeight) {
-// return getOrCreate(
-// target,
-// batch,
-// enumeration.PMFM_ID_SORTING_TYPE,
-// enumeration.QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER,
-// totalWeight,
-// (short) 3
-// );
-// }
-
-// public SortingBatch getRejectedBatch(CatchBatch batch) {
-// return get(
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_UNSORTED_ID
-// );
-// }
-
-// public SortingBatch getOrCreateRejectedBatch(CatchBatch batch,
-// Float weight) {
-//
-// return getOrCreate(
-// batch,
-// batch,
-// enumeration.PMFM_ID_SORTED_UNSORTED,
-// enumeration.QUALITATIVE_UNSORTED_ID,
-// weight,
-// (short) 3
-// );
-// }
-
-// public SortingMeasurement setSortingMeasurement(
-// SortingBatch sortingBatch,
-// Integer pmfmId,
-// Serializable value) {
-// Preconditions.checkNotNull(pmfmId);
-// Preconditions.checkNotNull(value);
-//
-// Caracteristic caracteristic = referentialService.getCaracteristic(pmfmId);
-// SortingMeasurement sortingMeasurement = catchBatchDao.getSortingMeasurement(
-// sortingBatch, pmfmId, getRecorderDepartmentId(), true);
-// measurementPersistenceHelper.setMeasurement(sortingMeasurement,
-// caracteristic,
-// value);
-// return sortingMeasurement;
-// }
-
public Serializable getSampleCategoryQualitative(Integer pmfmId,
Float numericalvalue,
String alphanumericalValue,
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/BatchTreeHelper.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -3,22 +3,19 @@
import com.google.common.base.Joiner;
import com.google.common.collect.Sets;
import fr.ifremer.adagio.core.dao.data.batch.Batch;
+import fr.ifremer.adagio.core.dao.data.batch.Batchs;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatch;
import fr.ifremer.adagio.core.dao.data.batch.CatchBatchExtendDao;
import fr.ifremer.adagio.core.dao.data.batch.SortingBatch;
import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement;
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.Pmfm;
import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon;
-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.Species;
+import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxonImpl;
import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
import fr.ifremer.tutti.persistence.service.MeasurementPersistenceHelper;
-import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.SystemUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.commons.logging.Log;
@@ -47,15 +44,14 @@
/** Logger. */
private static final Log log = LogFactory.getLog(BatchTreeHelper.class);
- @Resource(name = "referentialPersistenceService")
- protected ReferentialPersistenceService referentialService;
-
@Resource(name = "measurementPersistenceHelper")
protected MeasurementPersistenceHelper measurementPersistenceHelper;
@Resource(name = "catchBatchDao")
protected CatchBatchExtendDao catchBatchDao;
+ protected Comparator<Batch> batchComparator = Batchs.newRankOrderComparator();
+
//------------------------------------------------------------------------//
//-- Get CatchBatch navigation methods --//
//------------------------------------------------------------------------//
@@ -161,7 +157,7 @@
public SortingBatch getSpeciesVracAliveNotItemizedRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Species" + " > Alive not itemized",
+ "Vrac > Species > Alive not itemized",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
);
@@ -170,7 +166,7 @@
public SortingBatch getBenthosVracAliveNotItemizedRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Benthos" + " > Alive not itemized",
+ "Vrac > Benthos > Alive not itemized",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED
);
@@ -179,7 +175,7 @@
public SortingBatch getSpeciesVracInertRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Species" + " > Inert (not alive)",
+ "Vrac > Species > Inert (not alive)",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
);
@@ -188,7 +184,7 @@
public SortingBatch getBenthosVracInertRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Benthos" + " > Inert (not alive)",
+ "Vrac > Benthos > Inert (not alive)",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_INERT
);
@@ -197,7 +193,7 @@
public SortingBatch getSpeciesVracAliveItemizedRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Species" + " > Alive itemized",
+ "Vrac > Species > Alive itemized",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
);
@@ -206,7 +202,7 @@
public SortingBatch getBenthosVracAliveItemizedRootBatch(SortingBatch batch) {
return getSortingBatch(
batch,
- "Vrac > Benthos" + " > Alive itemized",
+ "Vrac > Benthos > Alive itemized",
enumeration.PMFM_ID_SORTING_TYPE_2,
enumeration.QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED
);
@@ -603,29 +599,22 @@
}
}
- final Comparator<Batch> batchComparator = new Comparator<Batch>() {
- @Override
- public int compare(Batch b1, Batch b2) {
- return (b1.getRankOrder() == null) ? 0 : b1.getRankOrder().compareTo(b2.getRankOrder());
- }
- };
+ protected void displayBatch(Batch batch, int level, StringBuilder sb) {
- private void displayBatch(Batch batch, int level, StringBuilder sb) {
+ ToStringStyle style = new BatchTreeToStringStyle();
- ToStringBuilder builder = new ToStringBuilder(batch, ToStringStyle.MULTI_LINE_STYLE);
+ ToStringBuilder builder = new ToStringBuilder(batch, style);
builder.append("id", batch.getId());
- if (batch.getParentBatch() != null) {
- builder.append("parentId", batch.getParentBatch().getId());
- }
builder.append("rankOrder", batch.getRankOrder());
- builder.append("level", level);
- if (batch.getWeight() != null) {
- builder.append("weight", batch.getWeight());
+// builder.append("level", level);
+// if (batch.getParentBatch() != null) {
+// builder.append("parentId", batch.getParentBatch().getId());
+// }
+
+ if (batch instanceof CatchBatch) {
+ CatchBatch catchBatch = (CatchBatch) batch;
+ builder.append("synchronizationStatus", catchBatch.getSynchronizationStatus());
}
- if (batch.getWeightBeforeSampling() != null) {
- builder.append("weightBeforeSampling", batch.getWeightBeforeSampling());
- }
-// builder.append("qualityFlag", batch.getQualityFlag().getName());
if (batch instanceof SortingBatch) {
SortingBatch sortingBatch = (SortingBatch) batch;
if (sortingBatch.getSamplingRatio() != null) {
@@ -634,45 +623,39 @@
if (sortingBatch.getSamplingRatioText() != null) {
builder.append("samplingRatioText", sortingBatch.getSamplingRatioText());
}
+ if (sortingBatch.getIndividualCount() != null) {
+ builder.append("individualCount", sortingBatch.getIndividualCount());
+ }
if (sortingBatch.getReferenceTaxon() != null) {
ReferenceTaxon referenceTaxon = sortingBatch.getReferenceTaxon();
- Species speciesByReferenceTaxonId = referentialService.getSpeciesByReferenceTaxonId(referenceTaxon.getId());
- builder.append("referenceTaxon", speciesByReferenceTaxonId.getName());
+ builder.append("referenceTaxon", load(ReferenceTaxonImpl.class, referenceTaxon.getId()).getName());
}
- if (sortingBatch.getSortingMeasurements() != null) {
- for (SortingMeasurement sortingMeasurement : sortingBatch.getSortingMeasurements()) {
- Caracteristic sortingMeasurementPmfm = getPmfm(sortingMeasurement.getPmfm());
- builder.append("sortingMeasurement.pmfm", sortingMeasurementPmfm.getParameterName() + " (" + sortingMeasurementPmfm.getId() + ")");
- if (sortingMeasurement.getQualitativeValue() != null) {
- CaracteristicQualitativeValue caracteristicQualitativeValue = CaracteristicQualitativeValues.getCaracteristicQualitativeValue(sortingMeasurementPmfm, sortingMeasurement.getQualitativeValue().getId());
- if (caracteristicQualitativeValue == null && sortingMeasurement.getQualitativeValue().getId() == 2146) {
- builder.append("sortingMeasurement.qualitativeValue", "Unsorted");
- } else {
- builder.append("sortingMeasurement.qualitativeValue", caracteristicQualitativeValue.getName() + " (" + caracteristicQualitativeValue.getId() + ")");
- }
- }
- if (sortingMeasurement.getNumericalValue() != null) {
- builder.append("sortingMeasurement.numericalValue", sortingMeasurement.getNumericalValue());
- }
- }
+
+ SortingMeasurement sm = null;
+ if (sortingBatch.getSortingMeasurements() != null && sortingBatch.getSortingMeasurements().size() == 1) {
+ sm = sortingBatch.getSortingMeasurements().iterator().next();
+ } else if (sortingBatch.getReferenceTaxon() != null && sortingBatch.getReferenceTaxon().getId() != null) {
+ sm = measurementPersistenceHelper.getInheritedSortingMeasurement(sortingBatch);
}
+ if (sm != null) {
+ String sortingMeasurementStr = measurementPersistenceHelper.toString(sm);
+ builder.append("sortingMeasurement", sortingMeasurementStr);
+ }
}
QuantificationMeasurement quantificationMeasurement = measurementPersistenceHelper.getWeightMeasurementQuantificationMeasurement(batch);
if (quantificationMeasurement != null) {
-
- builder.append("quantificationMeasurement.isReferenceQuantification", quantificationMeasurement.getIsReferenceQuantification());
-
- Caracteristic quantificationMeasurementPmfm = getPmfm(quantificationMeasurement.getPmfm());
- builder.append("quantificationMeasurement.pmfm", quantificationMeasurementPmfm.getParameterName() + " (" + quantificationMeasurementPmfm.getId() + ")");
-
- if (quantificationMeasurement.getQualitativeValue() != null) {
- CaracteristicQualitativeValue caracteristicQualitativeValue = CaracteristicQualitativeValues.getCaracteristicQualitativeValue(quantificationMeasurementPmfm, quantificationMeasurement.getQualitativeValue().getId());
- builder.append("quantificationMeasurement.qualitativeValue", caracteristicQualitativeValue.getName() + " (" + caracteristicQualitativeValue.getId() + ")");
- }
- if (quantificationMeasurement.getNumericalValue() != null) {
- builder.append("quantificationMeasurement.numericalValue", quantificationMeasurement.getNumericalValue());
- }
+ String quantificationMeasurementStr = measurementPersistenceHelper.toString(quantificationMeasurement);
+ builder.append("weightQuantificationMeasurement", quantificationMeasurementStr);
+ builder.append("weightQuantificationMeasurement.isReferenceQuantification", quantificationMeasurement.getIsReferenceQuantification());
}
+ if (batch.getWeight() != null) {
+ builder.append("weight", batch.getWeight());
+ }
+ if (batch.getWeightBeforeSampling() != null) {
+ builder.append("weightBeforeSampling", batch.getWeightBeforeSampling());
+ }
+ builder.append("qualityFlag", load(QualityFlagImpl.class, batch.getQualityFlag().getCode()).getName());
+
String prefix = "\n" + StringUtils.leftPad("", 2 * level);
String batchStr = Joiner.on(prefix).join(builder.build().split("\n"));
sb.append(prefix).append(batchStr);
@@ -686,8 +669,19 @@
}
}
- protected Caracteristic getPmfm(Pmfm pmfm) {
- Caracteristic caracteristic = referentialService.getCaracteristic(pmfm.getId());
- return caracteristic;
+
+ static final class BatchTreeToStringStyle extends ToStringStyle {
+
+ private static final long serialVersionUID = 1L;
+
+ BatchTreeToStringStyle() {
+ super();
+ this.setUseClassName(true);
+ this.setUseShortClassName(true);
+ this.setContentStart("");
+ this.setFieldSeparator(SystemUtils.LINE_SEPARATOR + " | ");
+ this.setFieldSeparatorAtStart(true);
+ this.setContentEnd("");
+ }
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/batch/ScientificCruiseCatchBatchValidator.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -150,7 +150,7 @@
protected void validateCatchBatch(CatchBatch batch,
List<CatchBatchValidationError> errors) {
- // Vrac
+ // -- Vrac
SortingBatch vracBatch = batchTreeHelper.getVracBatch(batch);
if (log.isDebugEnabled()) {
@@ -160,10 +160,10 @@
if (vracBatch == null) {
addError(errors, n("tutti.persistence.batch.validation.vracNotFound"));
} else {
- // Vrac > Species
+ // -- Vrac > Species
SortingBatch speciesBatch = batchTreeHelper.getSpeciesVracRootBatch(vracBatch);
- // Vrac > Benthos
+ // -- Vrac > Benthos
SortingBatch benthosBatch = batchTreeHelper.getBenthosVracRootBatch(vracBatch);
if (speciesBatch == null) {
@@ -174,19 +174,19 @@
addWarning(errors, n("tutti.persistence.batch.validation.vracSpeciesNotFound"));
}
} else {
- // Vrac > Species > Alive not itemized
+ // -- Vrac > Species > Alive not itemized
SortingBatch livingNotItemizedBatch = batchTreeHelper.getSpeciesVracAliveNotItemizedRootBatch(speciesBatch);
if (livingNotItemizedBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracSpeciesLifeNotFound"));
}
- // Vrac > Species > Inert
+ // -- Vrac > Species > Inert
SortingBatch inertBatch = batchTreeHelper.getSpeciesVracInertRootBatch(speciesBatch);
if (inertBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracSpeciesInertNotFound"));
}
- // Vrac > Species > Alive itemized
+ // -- Vrac > Species > Alive itemized
SortingBatch aliveItemizedBatch = batchTreeHelper.getSpeciesVracAliveItemizedRootBatch(speciesBatch);
if (aliveItemizedBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracSpeciesAliveItemizedNotFound"));
@@ -203,19 +203,19 @@
}
} else {
- // Vrac > Benthos > Alive not itemized
+ // -- Vrac > Benthos > Alive not itemized
SortingBatch livingNotItemizedBatch = batchTreeHelper.getBenthosVracAliveNotItemizedRootBatch(benthosBatch);
if (livingNotItemizedBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracBenthosLifeNotFound"));
}
- // Vrac > Benthos > Inert
+ // -- Vrac > Benthos > Inert
SortingBatch inertBatch = batchTreeHelper.getBenthosVracInertRootBatch(benthosBatch);
if (inertBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracBenthosInertNotFound"));
}
- // Vrac > Benthos > Alive itemized
+ // -- Vrac > Benthos > Alive itemized
SortingBatch aliveItemizedBatch = batchTreeHelper.getBenthosVracAliveItemizedRootBatch(benthosBatch);
if (aliveItemizedBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.vracBenthosAliveItemizedNotFound"));
@@ -223,23 +223,23 @@
}
}
- // Hors Vrac
+ // -- Hors Vrac
SortingBatch horsVracBatch = batchTreeHelper.getHorsVracBatch(batch);
if (horsVracBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.horsVracNotFound"));
} else {
- // Hors Vrac > Species
+ // -- Hors Vrac > Species
SortingBatch speciesBatch = batchTreeHelper.getSpeciesHorsVracRootBatch(horsVracBatch);
if (speciesBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.horsVracSpeciesNotFound"));
}
- // Hors Vrac > Benthos
+ // -- Hors Vrac > Benthos
SortingBatch benthosBatch = batchTreeHelper.getBenthosHorsVracRootBatch(horsVracBatch);
if (benthosBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.horsVracBenthosNotFound"));
}
- // Hors Vrac > Marine Litter
+ // -- Hors Vrac > Marine Litter
SortingBatch marineLitterBatch = batchTreeHelper.getMarineLitterRootBatch(horsVracBatch);
if (marineLitterBatch == null) {
@@ -247,7 +247,7 @@
}
}
- // Unsorted
+ // -- Unsorted
SortingBatch unsortedBatch = batchTreeHelper.getRejectedBatch(batch);
if (unsortedBatch == null) {
addWarning(errors, n("tutti.persistence.batch.validation.unsortedNotFound"));
Modified: trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml 2014-04-22 22:43:02 UTC (rev 1722)
@@ -64,7 +64,8 @@
SELECT
c.id,
c.name,
- c.departureDateTime
+ c.departureDateTime,
+ c.synchronizationStatus AS synchronizationStatus
FROM
ScientificCruiseImpl c
WHERE
@@ -116,6 +117,7 @@
sc.vessel.code AS vesselCode,
mp.id AS managerId,
sc.comments AS scientificCruiseComments,
+ sc.synchronizationStatus AS synchronizationStatus,
(SELECT sm.alphanumericalValue
FROM SurveyMeasurementImpl sm
WHERE sm.fishingTrip.id=ft.id AND sm.pmfm.id= :pmfmIdSurveyPart
@@ -247,6 +249,7 @@
SELECT
o.id AS id,
o.name AS name,
+ o.fishingTrip.synchronizationStatus AS synchronizationStatus,
o.startDateTime AS startDateTime,
(select vum.alphanumericalValue from VesselUseMeasurementImpl vum where vum.vesselUseFeatures.id = vuf.id and vum.pmfm.id=:pmfmIdStationNumber) AS stationNumber,
(select gum.alphanumericalValue from GearUseMeasurementImpl gum where gum.gearUseFeatures.id = guf.id and gum.pmfm.id=:pmfmIdMultirigAggregation) AS multirigAggregation
@@ -309,6 +312,7 @@
<![CDATA[
SELECT
o.name AS name,
+ max(o.fishingTrip.synchronizationStatus) AS synchronizationStatus,
guf.rankOrder AS rankOrder,
max(o.startDateTime) AS startDateTime,
max(o.endDateTime) AS endDateTime,
@@ -433,7 +437,8 @@
SELECT
s.id AS id,
s.referenceTaxon.id AS referenceTaxon,
- s.comments AS comment
+ s.comments AS comment,
+ s.synchronizationStatus AS synchronizationStatus
FROM
SampleImpl s
WHERE
@@ -450,7 +455,8 @@
SELECT
s.id AS id,
s.referenceTaxon.id AS referenceTaxon,
- s.comments AS comment
+ s.comments AS comment,
+ s.synchronizationStatus AS synchronizationStatus
FROM
SampleImpl s
WHERE
@@ -574,6 +580,53 @@
</query>
<!-- ===================================================================== -->
+ <!-- === Requete pour mettre a jour la valeur de SynchronizationStatus === -->
+ <!-- ===================================================================== -->
+
+ <query cacheable="true" name="updateScientificCruiseSynchronizationStatus">
+ <![CDATA[
+ UPDATE ScientificCruiseImpl SET synchronizationStatus=:newStatus
+ WHERE synchronizationStatus=:oldStatus AND id=:cruiseId
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="oldStatus" type="java.lang.String"/>
+ <query-param name="newStatus" type="java.lang.String"/>
+ </query>
+
+ <query cacheable="true" name="updateFishingTripSynchronizationStatus">
+ <![CDATA[
+ UPDATE FishingTripImpl SET synchronizationStatus=:newStatus
+ WHERE synchronizationStatus=:oldStatus AND
+ id IN (SELECT id FROM FishingTripImpl WHERE scientificCruise.id=:cruiseId)
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="oldStatus" type="java.lang.String"/>
+ <query-param name="newStatus" type="java.lang.String"/>
+ </query>
+
+ <query cacheable="true" name="updateCatchBatchSynchronizationStatus">
+ <![CDATA[
+ UPDATE CatchBatchImpl SET synchronizationStatus=:newStatus
+ WHERE synchronizationStatus=:oldStatus AND
+ id IN (SELECT id FROM CatchBatchImpl WHERE fishingOperation.fishingTrip.scientificCruise.id=:cruiseId)
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="oldStatus" type="java.lang.String"/>
+ <query-param name="newStatus" type="java.lang.String"/>
+ </query>
+
+ <query cacheable="true" name="updateSampleSynchronizationStatus">
+ <![CDATA[
+ UPDATE SampleImpl SET synchronizationStatus=:newStatus
+ WHERE synchronizationStatus=:oldStatus AND
+ id IN (SELECT id FROM SampleImpl WHERE fishingOperation.fishingTrip.scientificCruise.id=:cruiseId)
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="oldStatus" type="java.lang.String"/>
+ <query-param name="newStatus" type="java.lang.String"/>
+ </query>
+
+ <!-- ===================================================================== -->
<!-- === Requete techniques sur référentiels [REF-TXXX] === -->
<!-- ===================================================================== -->
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceReadTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -83,7 +83,7 @@
@Test
public void getRootBenthosBatch(/*String fishingOperationId*/) {
//TODO Do me!
- service.getRootBenthosBatch(fishingOperation.getId(), null);
+ service.getRootBenthosBatch(fishingOperation.getId(), false);
}
@Ignore
@@ -164,7 +164,7 @@
public BenthosBatch getBenthosBatch(String fishingOperationId,
String speciesBatchId) {
- BatchContainer<BenthosBatch> rootSpeciesBatch = service.getRootBenthosBatch(fishingOperationId, null);
+ BatchContainer<BenthosBatch> rootSpeciesBatch = service.getRootBenthosBatch(fishingOperationId, false);
return getBenthosBatch(speciesBatchId, rootSpeciesBatch.getChildren());
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceWriteTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -326,7 +326,7 @@
// -----------------------------------------------------------------------------
// 7. Test get all root species
// -----------------------------------------------------------------------------
- List<BenthosBatch> rootBenthosBatch = service.getRootBenthosBatch(fishingOperationWithEmptyBatch.getId(), null).getChildren();
+ List<BenthosBatch> rootBenthosBatch = service.getRootBenthosBatch(fishingOperationWithEmptyBatch.getId(), false).getChildren();
assertNotNull(rootBenthosBatch);
assertEquals(2, rootBenthosBatch.size());
assertNotNull(rootBenthosBatch.get(0).getChildBatchs());
@@ -515,7 +515,7 @@
}
protected BenthosBatch getBenthosBatch(String fishingOperationId, String speciesBatchId) {
- return getBenthosBatch(speciesBatchId, service.getRootBenthosBatch(fishingOperationId, null).getChildren());
+ return getBenthosBatch(speciesBatchId, service.getRootBenthosBatch(fishingOperationId, false).getChildren());
}
protected BenthosBatch getBenthosBatch(String speciesBatchId, List<BenthosBatch> speciesBatchs) {
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceReadTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -82,7 +82,7 @@
@Test
public void getRootSpeciesBatch(/*String fishingOperationId*/) {
//TODO Do me!
- service.getRootSpeciesBatch(fishingOperation.getId(), null);
+ service.getRootSpeciesBatch(fishingOperation.getId(), false);
}
@Ignore
@@ -168,7 +168,7 @@
public SpeciesBatch getSpeciesBatch(String fishingOperationId,
String speciesBatchId) {
- BatchContainer<SpeciesBatch> rootSpeciesBatch = service.getRootSpeciesBatch(fishingOperationId, null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = service.getRootSpeciesBatch(fishingOperationId, false);
return getSpeciesBatch(speciesBatchId, rootSpeciesBatch.getChildren());
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceWriteTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -318,7 +318,7 @@
// -----------------------------------------------------------------------------
// 7. Test get all root species
// -----------------------------------------------------------------------------
- BatchContainer<SpeciesBatch> rootSpeciesBatc = service.getRootSpeciesBatch(fishingOperationWithEmptyBatch.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatc = service.getRootSpeciesBatch(fishingOperationWithEmptyBatch.getId(),false );
List<SpeciesBatch> rootSpeciesBatch = rootSpeciesBatc.getChildren();
assertNotNull(rootSpeciesBatch);
assertEquals(2, rootSpeciesBatch.size());
@@ -507,7 +507,7 @@
}
protected SpeciesBatch getSpeciesBatch(String fishingOperationId, String speciesBatchId) {
- return getSpeciesBatch(speciesBatchId, service.getRootSpeciesBatch(fishingOperationId, null).getChildren());
+ return getSpeciesBatch(speciesBatchId, service.getRootSpeciesBatch(fishingOperationId, false).getChildren());
}
protected SpeciesBatch getSpeciesBatch(String speciesBatchId, List<SpeciesBatch> speciesBatchs) {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -48,7 +48,6 @@
import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
import fr.ifremer.tutti.persistence.entities.data.Program;
-import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchFrequency;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
@@ -1198,9 +1197,8 @@
//------------------------------------------------------------------------//
@Override
- public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId,
- SampleCategoryModel sampleCategoryModel) {
- return driver.getRootSpeciesBatch(fishingOperationId, sampleCategoryModel);
+ public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, boolean validateTree) {
+ return driver.getRootSpeciesBatch(fishingOperationId, validateTree);
}
@Override
@@ -1250,8 +1248,8 @@
//------------------------------------------------------------------------//
@Override
- public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException {
- return driver.getRootBenthosBatch(fishingOperationId, sampleCategoryModel);
+ public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException {
+ return driver.getRootBenthosBatch(fishingOperationId, validateTree);
}
@Override
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/ValidateCruiseOperationsService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -26,8 +26,6 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import org.nuiton.jaxx.application.ApplicationBusinessException;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
import fr.ifremer.tutti.persistence.InvalidBatchModelException;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
@@ -36,7 +34,6 @@
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch;
-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.protocol.SpeciesProtocol;
@@ -54,6 +51,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.decorator.Decorator;
+import org.nuiton.jaxx.application.ApplicationBusinessException;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
import org.nuiton.validator.NuitonValidatorResult;
import org.nuiton.validator.NuitonValidatorScope;
@@ -82,8 +81,6 @@
protected DecoratorService decoratorService;
- protected SampleCategoryModel sampleCategoryModel;
-
@Override
public void setServiceContext(TuttiServiceContext context) {
super.setServiceContext(context);
@@ -91,7 +88,6 @@
validationService = getService(ValidationService.class);
weightComputingService = getService(WeightComputingService.class);
decoratorService = getService(DecoratorService.class);
- sampleCategoryModel = context.getSampleCategoryModel();
}
/**
@@ -246,7 +242,7 @@
boolean error = !isCatchBatch;
if (isCatchBatch) {
- rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, sampleCategoryModel);
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, true);
if (rootSpeciesBatch != null) {
List<SpeciesBatch> roots = rootSpeciesBatch.getChildren();
@@ -263,13 +259,13 @@
}
}
if (error) {
- rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, sampleCategoryModel);
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, true);
}
BatchContainer<BenthosBatch> rootBenthosBatch = null;
error = false;
if (isCatchBatch) {
- rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, sampleCategoryModel);
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, true);
if (rootBenthosBatch != null) {
List<BenthosBatch> roots = rootBenthosBatch.getChildren();
@@ -286,7 +282,7 @@
}
}
if (error) {
- rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, sampleCategoryModel);
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, true);
}
BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
@@ -328,7 +324,8 @@
.toString(batch.getSampleCategoryValue());
warningMap.put("species",
Lists.newArrayList(t("tutti.validator.warning.species.protocolNotRespected",
- species, categoryValue)));
+ species, categoryValue))
+ );
break;
}
}
@@ -342,7 +339,8 @@
.toString(batch.getSampleCategoryValue());
warningMap.put("benthos",
Lists.newArrayList(t("tutti.validator.warning.benthos.protocolNotRespected",
- species, categoryValue)));
+ species, categoryValue))
+ );
break;
}
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -222,7 +222,7 @@
BatchContainer<SpeciesBatch> speciesBatch =
persistenceService.getRootSpeciesBatch(
- fishingOperationId, sampleCategoryModel);
+ fishingOperationId, true);
for (SpeciesBatch batch : speciesBatch.getChildren()) {
@@ -238,7 +238,7 @@
BatchContainer<BenthosBatch> benthosBatch =
persistenceService.getRootBenthosBatch(
- fishingOperationId, sampleCategoryModel);
+ fishingOperationId, true);
for (BenthosBatch batch : benthosBatch.getChildren()) {
@@ -284,7 +284,7 @@
Set<SpeciesBatch> speciesToSave = Sets.newHashSet();
BatchContainer<SpeciesBatch> speciesBatch =
persistenceService.getRootSpeciesBatch(
- fishingOperationId, sampleCategoryModel);
+ fishingOperationId, true);
for (SpeciesBatch batch : speciesBatch.getChildren()) {
@@ -300,7 +300,7 @@
Set<BenthosBatch> benthosToSave = Sets.newHashSet();
BatchContainer<BenthosBatch> benthosBatch =
persistenceService.getRootBenthosBatch(
- fishingOperationId, sampleCategoryModel);
+ fishingOperationId, true);
for (BenthosBatch batch : benthosBatch.getChildren()) {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -132,7 +132,7 @@
} catch (ApplicationBusinessException e) {
result.put(fishingOperationId, e.getMessage());
- rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, null);
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(fishingOperationId, false);
}
BatchContainer<BenthosBatch> rootBenthosBatch;
@@ -141,7 +141,7 @@
} catch (ApplicationBusinessException e) {
result.put(fishingOperationId, e.getMessage());
- rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, null);
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(fishingOperationId, false);
}
BatchContainer<MarineLitterBatch> rootMarineLitterBatch;
@@ -370,7 +370,7 @@
BatchContainer<SpeciesBatch> rootSpeciesBatch = null;
if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
- rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operationId, null);
+ rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operationId, false);
currentSpeciesRowIndex = 0;
if (rootSpeciesBatch != null) {
@@ -563,7 +563,7 @@
BatchContainer<BenthosBatch> rootBenthosBatch = null;
if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
- rootBenthosBatch = persistenceService.getRootBenthosBatch(operationId, null);
+ rootBenthosBatch = persistenceService.getRootBenthosBatch(operationId, false);
currentBenthosRowIndex = 0;
if (rootBenthosBatch != null) {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostExportService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -27,8 +27,6 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
@@ -53,14 +51,16 @@
import org.apache.commons.io.IOUtils;
import org.nuiton.csv.Export;
import org.nuiton.csv.ExportModel;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
import java.io.File;
import java.io.Writer;
import java.util.List;
import java.util.Map;
-import static org.nuiton.i18n.I18n.t;
import static org.nuiton.i18n.I18n.n;
+import static org.nuiton.i18n.I18n.t;
/**
* Service to export batches from a satellite post into a master post.
@@ -102,8 +102,6 @@
protected char csvSeparator;
- protected SampleCategoryModel sampleCategoryModel;
-
protected Map<String, CaracteristicQualitativeValue> sampleCategoryValueMap;
@Override
@@ -114,7 +112,7 @@
csvSeparator = context.getConfig().getCsvSeparator();
- sampleCategoryModel = context.getSampleCategoryModel();
+ SampleCategoryModel sampleCategoryModel = context.getSampleCategoryModel();
sampleCategoryValueMap = Maps.newTreeMap();
@@ -143,7 +141,7 @@
// create rows
BatchContainer<SpeciesBatch> speciesBatchContainer =
- persistenceService.getRootSpeciesBatch(operationId, null);
+ persistenceService.getRootSpeciesBatch(operationId, false);
List<CatchRow> rows = Lists.newArrayList();
List<CatchFrequencyRow> frequencyRows = Lists.newArrayList();
@@ -183,7 +181,7 @@
if (persistenceService.isFishingOperationWithCatchBatch(operationId)) {
BatchContainer<BenthosBatch> benthosBatchContainer =
- persistenceService.getRootBenthosBatch(operationId, null);
+ persistenceService.getRootBenthosBatch(operationId, false);
// create rows
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -93,9 +93,6 @@
*/
public class MultiPostImportService extends AbstractTuttiService {
-// private static final Log log =
-// LogFactory.getLog(TuttiMultiPostImportExportService.class);
-
public static final String BATCHES_KEY = "batchesKey";
protected static final String ATTACHMENTS_DIRECTORY = "attachments";
@@ -184,7 +181,7 @@
final Map<String, SpeciesBatch> notImportedBatches = Maps.newLinkedHashMap();
BatchContainer<SpeciesBatch> speciesBatches =
- persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ persistenceService.getRootSpeciesBatch(operation.getId(), false);
TuttiDataContext dataContext = context.getDataContext();
List<Species> speciesList = dataContext.getReferentSpecies();
@@ -453,7 +450,7 @@
final Map<String, BenthosBatch> notImportedBatches = Maps.newLinkedHashMap();
BatchContainer<BenthosBatch> benthosBatches =
- persistenceService.getRootBenthosBatch(operation.getId(), null);
+ persistenceService.getRootBenthosBatch(operation.getId(), false);
TuttiDataContext dataContext = context.getDataContext();
List<Species> speciesList = dataContext.getReferentSpecies();
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -931,7 +931,7 @@
} catch (Exception e) {
withError = true;
rootSpeciesBatch =
- persistenceService.getRootSpeciesBatch(operationId, null);
+ persistenceService.getRootSpeciesBatch(operationId, false);
}
try {
@@ -940,7 +940,7 @@
} catch (Exception e) {
withError = true;
rootBenthosBatch =
- persistenceService.getRootBenthosBatch(operationId, null);
+ persistenceService.getRootBenthosBatch(operationId, false);
}
try {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -207,7 +207,7 @@
}
BatchContainer<SpeciesBatch> rootSpeciesBatch =
- persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ persistenceService.getRootSpeciesBatch(operation.getId(), false);
Set<Species> alreadyUsedSpecies = Sets.newHashSet();
for (SpeciesBatch speciesBatch : rootSpeciesBatch.getChildren()) {
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -32,8 +32,6 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
@@ -63,6 +61,8 @@
import org.nuiton.csv.Export;
import org.nuiton.csv.Import;
import org.nuiton.decorator.Decorator;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
import java.io.File;
import java.io.IOException;
@@ -74,8 +74,8 @@
import java.util.Map;
import java.util.Set;
+import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
-import static org.nuiton.i18n.I18n.n;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -287,7 +287,8 @@
int end = Math.min(surveyCode.length(), 7);
return surveyCode.substring(0, end);
}
- })
+ }
+ )
);
speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies()));
@@ -383,7 +384,7 @@
// delete all species batches
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
for (SpeciesBatch batch : rootSpeciesBatch.getChildren()) {
persistenceService.deleteSpeciesBatch(batch.getId());
}
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/WeightComputingServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/WeightComputingServiceTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/catches/WeightComputingServiceTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -99,7 +99,7 @@
public void computeCatchWeights() {
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(OPERATION_2_ID);
try {
- BatchContainer<SpeciesBatch> batches = persistenceService.getRootSpeciesBatch(OPERATION_2_ID, null);
+ BatchContainer<SpeciesBatch> batches = persistenceService.getRootSpeciesBatch(OPERATION_2_ID, false);
weightComputingService.computeCatchBatchWeights(catchBatch, batches, null, null);
Assert.fail();
@@ -112,7 +112,7 @@
catchBatch = persistenceService.getCatchBatchFromFishingOperation(OPERATION_3_ID);
try {
- BatchContainer<BenthosBatch> batches = persistenceService.getRootBenthosBatch(OPERATION_3_ID, null);
+ BatchContainer<BenthosBatch> batches = persistenceService.getRootBenthosBatch(OPERATION_3_ID, false);
weightComputingService.computeCatchBatchWeights(catchBatch, null, batches, null);
Assert.fail();
@@ -138,8 +138,8 @@
catchBatch = persistenceService.getCatchBatchFromFishingOperation(OPERATION_5_ID);
try {
- BatchContainer<SpeciesBatch> speciesBatches = persistenceService.getRootSpeciesBatch(OPERATION_5_ID, null);
- BatchContainer<BenthosBatch> benthosBatches = persistenceService.getRootBenthosBatch(OPERATION_5_ID, null);
+ BatchContainer<SpeciesBatch> speciesBatches = persistenceService.getRootSpeciesBatch(OPERATION_5_ID, false);
+ BatchContainer<BenthosBatch> benthosBatches = persistenceService.getRootBenthosBatch(OPERATION_5_ID, false);
weightComputingService.computeCatchBatchWeights(catchBatch, speciesBatches, benthosBatches, null);
Assert.fail();
@@ -164,8 +164,8 @@
catchBatch = persistenceService.getCatchBatchFromFishingOperation(OPERATION_7_ID);
try {
- BatchContainer<SpeciesBatch> speciesBatches = persistenceService.getRootSpeciesBatch(OPERATION_7_ID, null);
- BatchContainer<BenthosBatch> benthosBatches = persistenceService.getRootBenthosBatch(OPERATION_7_ID, null);
+ BatchContainer<SpeciesBatch> speciesBatches = persistenceService.getRootSpeciesBatch(OPERATION_7_ID, false);
+ BatchContainer<BenthosBatch> benthosBatches = persistenceService.getRootBenthosBatch(OPERATION_7_ID, false);
weightComputingService.computeCatchBatchWeights(catchBatch, speciesBatches, benthosBatches, null);
if (log.isInfoEnabled()) {
log.info("Weight computing worked on operation #7");
@@ -178,7 +178,7 @@
@Test
public void computeSpeciesBatch() {
- BatchContainer<SpeciesBatch> speciesBatchContainer = persistenceService.getRootSpeciesBatch(OPERATION_1_ID, null);
+ BatchContainer<SpeciesBatch> speciesBatchContainer = persistenceService.getRootSpeciesBatch(OPERATION_1_ID, false);
List<SpeciesBatch> speciesBatches = speciesBatchContainer.getChildren();
for (int i = 0; i < speciesBatches.size() - 1; i++) {
try {
@@ -203,7 +203,7 @@
Assert.fail();
}
- BatchContainer<BenthosBatch> benthosBatchContainer = persistenceService.getRootBenthosBatch(OPERATION_1_ID, null);
+ BatchContainer<BenthosBatch> benthosBatchContainer = persistenceService.getRootBenthosBatch(OPERATION_1_ID, false);
List<BenthosBatch> benthosBatches = benthosBatchContainer.getChildren();
for (int i = 0; i < benthosBatches.size() - 1; i++) {
try {
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -110,7 +110,7 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
int oldNbBatchs = rootSpeciesBatch.sizeChildren();
PsionImportResult importResult = service.importFile(importFile, operation, catchBatch);
@@ -127,7 +127,7 @@
Assert.assertEquals(0, errors.size());
// no batch imported
- BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(oldNbBatchs + 17, rootSpeciesBatchAfter.sizeChildren());
}
@@ -140,7 +140,7 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
int oldNbBatchs = rootSpeciesBatch.sizeChildren();
PsionImportResult importResult = service.importFile(importFile, operation, catchBatch);
@@ -156,7 +156,7 @@
Assert.assertEquals(10, nbAdded);
Assert.assertEquals(0, errors.size());
- BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(oldNbBatchs + 10, rootSpeciesBatchAfter.sizeChildren());
}
@@ -169,7 +169,7 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
int oldNbBatchs = rootSpeciesBatch.sizeChildren();
PsionImportResult importResult = service.importFile(importFile, operation, catchBatch);
@@ -185,7 +185,7 @@
Assert.assertEquals(1, errors.size());
// no batch imported
- BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(oldNbBatchs, rootSpeciesBatchAfter.sizeChildren());
}
}
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportServiceTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportServiceTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -100,7 +100,7 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
PupitriImportResult importResult = service.importPupitri(trunk, carroussel, operation, catchBatch);
@@ -113,12 +113,12 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
PupitriImportResult importResult = service.importPupitri(trunk, carroussel, operation, catchBatch);
Assert.assertTrue(importResult.isFishingOperationFound());
Assert.assertEquals(6, importResult.getNbCarrousselNotImported());
- BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(18, rootSpeciesBatchAfter.sizeChildren());
Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceTest.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceTest.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -105,11 +105,11 @@
CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
catchBatch.setFishingOperation(operation);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
int nbNotAdded = service.importPupitri(trunk, carroussel, operation, catchBatch).getNbCarrousselNotImported();
Assert.assertEquals(0, nbNotAdded);
- BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(31, rootSpeciesBatchAfter.sizeChildren());
Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveCruiseAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveCruiseAction.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SaveCruiseAction.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -36,8 +36,11 @@
import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIHandler;
import fr.ifremer.tutti.ui.swing.content.cruise.EditCruiseUIModel;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
import org.apache.commons.lang3.ObjectUtils;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.util.Set;
@@ -168,6 +171,8 @@
for (GearWithOriginalRankOrder gear : model.getGear()) {
gear.setOriginalRankOrder(gear.getRankOrder());
}
+ // update SynchronizationStatus
+ model.setSynchronizationStatus(saved.getSynchronizationStatus());
model.setModify(false);
}
@@ -177,5 +182,7 @@
getContext().getMainUI().getHandler().setBodyTitle(
EditCruiseUIHandler.getTitle(true));
+ ImageIcon icon = TuttiUIUtil.getCruiseIcon(getModel());
+ getContext().getMainUI().getBody().setLeftDecoration(new JLabel(icon));
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -25,8 +25,6 @@
*/
import com.google.common.base.Preconditions;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
-import org.nuiton.jaxx.application.swing.util.CloseableUI;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.ichtyometer.feed.FeedReader;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -61,6 +59,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.i18n.I18n;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
+import org.nuiton.jaxx.application.swing.util.CloseableUI;
import javax.swing.Icon;
import javax.swing.JButton;
@@ -101,9 +101,9 @@
String result;
if (connected) {
FeedReader ichtyometerReader = getModel().getIchtyometerReader();
- result =t("tutti.ichtyometer.status.connected.tip", ichtyometerReader.getClientName());
+ result = t("tutti.ichtyometer.status.connected.tip", ichtyometerReader.getClientName());
} else {
- result=t("tutti.ichtyometer.status.not.connected.tip");
+ result = t("tutti.ichtyometer.status.not.connected.tip");
}
return result;
}
@@ -421,7 +421,8 @@
screenUI = new EditCruiseUI(ui);
rightDecoration = ((EditCruiseUI) screenUI).getTopToolBar();
- icon = ui.getMenuActionEditCruise().getIcon();
+ Cruise cruise = context.getDataContext().getCruise();
+ icon = TuttiUIUtil.getCruiseIcon(cruise == null ? ((EditCruiseUI) screenUI).getModel() : cruise);
break;
case EDIT_PROTOCOL:
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -26,8 +26,6 @@
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
-import jaxx.runtime.SwingUtil;
-import org.nuiton.jaxx.application.swing.util.CloseableUI;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -46,6 +44,7 @@
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.jaxx.application.swing.util.CloseableUI;
import javax.swing.JComponent;
import javax.swing.JList;
@@ -106,6 +105,7 @@
getDataContext().resetValidationDataContext();
EditCruiseUIModel model = new EditCruiseUIModel();
+ model.setSynchronizationStatus("DIRTY");
if (getContext().isCruiseFilled()) {
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIModel.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -365,6 +365,18 @@
}
@Override
+ public String getSynchronizationStatus() {
+ return editObject.getSynchronizationStatus();
+ }
+
+ @Override
+ public void setSynchronizationStatus(String synchronizationStatus) {
+ String oldValue = getSynchronizationStatus();
+ editObject.setSynchronizationStatus(synchronizationStatus);
+ firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
+ }
+
+ @Override
public List<GearWithOriginalRankOrder> getGear() {
return editObject.getGear();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2014-04-22 22:43:02 UTC (rev 1722)
@@ -91,7 +91,7 @@
#cruiseLabel {
text: "tutti.selectCruise.field.cruise";
labelFor: {cruiseCombobox};
- actionIcon: cruise;
+ icon: {TuttiUIUtil.getCruiseIcon(model.getCruise())};
toolTipText: "tutti.selectCruise.field.cruise.tip";
_help: {"tutti.selectCruise.field.cruise.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUIHandler.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -129,10 +129,6 @@
}
} else {
-// TuttiProtocol selectedProtocol = null;
-// if (context.isProgramFilled()) {
-// selectedProtocol = getDataContext().getProtocol();
-// }
model.setProtocol(getDataContext().getProtocol());
}
ui.setContextValue(model);
@@ -145,26 +141,14 @@
SelectCruiseUIModel model = getModel();
-// List<Program> programs = Lists.newArrayList();
-// if (model.getPrograms() != null) {
-// programs.addAll(model.getPrograms());
-// }
initBeanFilterableComboBox(ui.getProgramCombobox(),
model.getPrograms(),
model.getProgram());
-// List<Cruise> cruises = Lists.newArrayList();
-// if (model.getCruises() != null) {
-// cruises.addAll(model.getCruises());
-// }
initBeanFilterableComboBox(ui.getCruiseCombobox(),
model.getCruises(),
model.getCruise());
-// List<TuttiProtocol> protocols = Lists.newArrayList();
-// if (model.getProtocols() != null) {
-// protocols.addAll(model.getProtocols());
-// }
initBeanFilterableComboBox(ui.getProtocolCombobox(),
model.getProtocols(),
model.getProtocol());
@@ -246,7 +230,6 @@
getValidator().setBean(model);
-// ui.applyDataBinding(SelectCruiseUI.BINDING_EDIT_PROGRAM_BUTTON_ENABLED);
ui.applyDataBinding(SelectCruiseUI.BINDING_NEW_CRUISE_BUTTON_ENABLED);
ui.applyDataBinding(SelectCruiseUI.BINDING_EDIT_CATCHES_BUTTON_ENABLED);
ui.applyDataBinding(SelectCruiseUI.BINDING_VALIDATE_CATCHES_BUTTON_ENABLED);
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -1212,6 +1212,18 @@
}
@Override
+ public String getSynchronizationStatus() {
+ return editObject.getSynchronizationStatus();
+ }
+
+ @Override
+ public void setSynchronizationStatus(String synchronizationStatus) {
+ String oldValue = getSynchronizationStatus();
+ editObject.setSynchronizationStatus(synchronizationStatus);
+ firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
+ }
+
+ @Override
public List<Person> getRecorderPerson() {
return editObject.getRecorderPerson();
}
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -28,8 +28,6 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
-import fr.ifremer.tutti.ui.swing.util.computable.ComputableData;
-import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
@@ -37,10 +35,12 @@
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel;
-import org.nuiton.jaxx.application.swing.tab.TabContentModel;
import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware;
+import fr.ifremer.tutti.ui.swing.util.computable.ComputableData;
import org.apache.commons.collections.CollectionUtils;
+import org.nuiton.jaxx.application.swing.tab.TabContentModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -349,18 +349,6 @@
return null;
}
-// public CatchBatch getCatchBatch() {
-// return editObject;
-// }
-//
-// public void setCatchBatch(CatchBatch catchBatch) {
-// Object oldValue = this.editObject;
-// Object oldObjectId = getObjectId();
-// this.editObject = catchBatch;
-// firePropertyChange(PROPERTY_CATCH_BATCH, oldValue, catchBatch);
-// firePropertyChange(PROPERTY_OBJECT_ID, oldObjectId, getObjectId());
-// }
-
@Override
public FishingOperation getFishingOperation() {
return fishingOperation;
@@ -738,34 +726,6 @@
}
//------------------------------------------------------------------------//
- //-- Plankton --//
- //------------------------------------------------------------------------//
-
- @Override
- public Float getPlanktonTotalWeight() {
- return planktonTotalWeight;
- }
-
- @Override
- public void setPlanktonTotalWeight(Float planktonTotalWeight) {
- Object oldValue = getPlanktonTotalWeight();
- this.planktonTotalWeight = planktonTotalWeight;
- firePropertyChange(PROPERTY_PLANKTON_TOTAL_WEIGHT, oldValue, planktonTotalWeight);
- }
-
- @Override
- public Float getPlanktonTotalSampleWeight() {
- return planktonTotalSampleWeight;
- }
-
- @Override
- public void setPlanktonTotalSampleWeight(Float planktonTotalSampleWeight) {
- Object oldValue = getPlanktonTotalSampleWeight();
- this.planktonTotalSampleWeight = planktonTotalSampleWeight;
- firePropertyChange(PROPERTY_PLANKTON_TOTAL_SAMPLE_WEIGHT, oldValue, planktonTotalSampleWeight);
- }
-
- //------------------------------------------------------------------------//
//-- Marine Litter --//
//------------------------------------------------------------------------//
@@ -840,6 +800,18 @@
firePropertyChange(PROPERTY_ATTACHMENT, null, getAttachment());
}
+ @Override
+ public String getSynchronizationStatus() {
+ return editObject.getSynchronizationStatus();
+ }
+
+ @Override
+ public void setSynchronizationStatus(String synchronizationStatus) {
+ String oldValue = getSynchronizationStatus();
+ editObject.setSynchronizationStatus(synchronizationStatus);
+ firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
+ }
+
public void reset() {
setSpeciesTotalInertComputedWeight(null);
setSpeciesTotalLivingNotItemizedComputedWeight(null);
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchRowModel.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -242,6 +242,18 @@
return editObject.getRankOrder();
}
+ @Override
+ public String getSynchronizationStatus() {
+ return editObject.getSynchronizationStatus();
+ }
+
+ @Override
+ public void setSynchronizationStatus(String synchronizationStatus) {
+ String oldValue = getSynchronizationStatus();
+ editObject.setSynchronizationStatus(synchronizationStatus);
+ firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
+ }
+
//------------------------------------------------------------------------//
//-- AttachmentModelAware --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -240,7 +240,7 @@
// get all batch species root (says the one with only a species sample category)
BatchContainer<BenthosBatch> rootBenthosBatch =
getPersistenceService().getRootBenthosBatch(
- bean.getId(), sampleCategoryModel);
+ bean.getId(), true);
List<BenthosBatch> catches = rootBenthosBatch.getChildren();
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 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchRowModel.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -254,6 +254,18 @@
editObject.setRankOrder(rankOrder);
}
+ @Override
+ public String getSynchronizationStatus() {
+ return editObject.getSynchronizationStatus();
+ }
+
+ @Override
+ public void setSynchronizationStatus(String synchronizationStatus) {
+ String oldValue = getSynchronizationStatus();
+ editObject.setSynchronizationStatus(synchronizationStatus);
+ firePropertyChange(PROPERTY_SYNCHRONIZATION_STATUS, oldValue, synchronizationStatus);
+ }
+
//------------------------------------------------------------------------//
//-- AttachmentModelAware --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -192,7 +192,7 @@
// get all batch species root (says the one with only a species sample category)
BatchContainer<SpeciesBatch> rootSpeciesBatch =
getPersistenceService().getRootSpeciesBatch(
- bean.getId(), sampleCategoryModel);
+ bean.getId(), true);
List<SpeciesBatch> catches = rootSpeciesBatch.getChildren();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2014-04-22 21:58:53 UTC (rev 1721)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2014-04-22 22:43:02 UTC (rev 1722)
@@ -24,6 +24,9 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.data.Cruise;
+import fr.ifremer.tutti.persistence.entities.data.Cruises;
+import jaxx.runtime.SwingUtil;
import org.nuiton.jaxx.application.ApplicationBusinessException;
import org.nuiton.jaxx.application.swing.util.ApplicationUIUtil;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
@@ -33,6 +36,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import javax.swing.ImageIcon;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
@@ -109,4 +113,18 @@
}
}
+ public static ImageIcon getCruiseIcon(Cruise cruise) {
+ String iconName = "cruise";
+ if (cruise != null) {
+
+ if (Cruises.isDirty(cruise)) {
+ iconName = "cruise-dirty";
+ } else if (Cruises.isReadyToSynch(cruise)) {
+ iconName = "cruise-ready-to-sync";
+ } else if (Cruises.isSynch(cruise)) {
+ iconName = "cruise-waiting";
+ }
+ }
+ return SwingUtil.createActionIcon(iconName);
+ }
}
1
0
See <http://ci.codelutin.com/jenkins/job/tutti-ci/55/changes>
Changes:
[Tony CHEMIT] refs-60 #4979
------------------------------------------
Started by an SCM change
Building in workspace <http://ci.codelutin.com/jenkins/job/tutti-ci/ws/>
Reverting <http://ci.codelutin.com/jenkins/job/tutti-ci/ws/trunk> to depth infinity with ignoreExternals: false
Updating https://svn.codelutin.com/tutti/trunk at revision '2014-04-21T15:48:32.141 +0200'
U tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java
U tutti-service/src/test/java/fr/ifremer/tutti/service/AbstractServiceTest.java
U tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java
U tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
U tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialSynchronizeService.java
U tutti-ui-swing/src/license/THIRD-PARTY.properties
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
U tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
U tutti-ui-swing/pom.xml
U pom.xml
U tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java
U tutti-persistence/src/test/resources/beanRefFactoryWitNoDb.xml
D tutti-persistence/src/main/java/fr/ifremer/adagio
U tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
U tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java
D tutti-persistence/src/main/resources/queries-override.hbm.xml
U tutti-persistence/src/main/resources/ehcache.xml
U tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
U tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
AU tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml
U tutti-persistence/src/main/resources/tuttiBeanRefFactory.xml
AU tutti-persistence/src/main/resources/queries-failsafe.hbm.xml
AU tutti-persistence/src/main/resources/tutti-conf.xml
U tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
U tutti-persistence/src/main/resources/tutti-db-enumerations.properties
At revision 1718
Parsing POMs
Modules changed, recalculating dependency graph
[trunk] $ /opt/jdk7/bin/java -Dsettings.security=/var/local/forge/data/codelutin.com/maven/settings-security.xml -Djava.awt.headless=true -cp /var/local/forge/data/codelutin.com/jenkins/plugins/maven-plugin/WEB-INF/lib/maven31-agent-1.5.jar:/opt/maven3/boot/plexus-classworlds-2.5.1.jar:/opt/maven3/conf/logging jenkins.maven3.agent.Maven31Main /opt/maven3 /var/local/forge/exec/tomcat-codelutin.com/webapps/jenkins/WEB-INF/lib/remoting-2.36.jar /var/local/forge/data/codelutin.com/jenkins/plugins/maven-plugin/WEB-INF/lib/maven31-interceptor-1.5.jar /var/local/forge/data/codelutin.com/jenkins/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.5.jar 46617
<===[JENKINS REMOTING CAPACITY]===> channel started
log4j:WARN No appenders could be found for logger (org.apache.commons.beanutils.converters.BooleanConverter).
log4j:WARN Please initialize the log4j system properly.
Executing Maven: -B -f <http://ci.codelutin.com/jenkins/job/tutti-ci/ws/trunk/pom.xml> -s /var/local/forge/data/codelutin.com/maven/settings.xml -e -U clean verify
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Tutti
[INFO] Tutti :: Persistence
[INFO] Tutti :: Ichtyometer API
[INFO] Tutti :: Service
[INFO] Tutti :: UI
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti 3.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tutti ---
[INFO] Deleting <http://ci.codelutin.com/jenkins/job/tutti-ci/ws/trunk/target>
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (check-project-files) @ tutti ---
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-surefire-workdir) @ tutti ---
[INFO] Executing tasks
main:
[mkdir] Created dir: <http://ci.codelutin.com/jenkins/job/tutti-ci/ws/trunk/target/surefire-workd…>
[INFO] Executed tasks
[INFO]
[INFO] --- maven-site-plugin:3.3:attach-descriptor (attach-descriptor) @ tutti ---
[JENKINS] Archiving disabled
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 3.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[WARNING] The POM for fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT is missing, no dependency information available
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[WARNING] The POM for fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT is missing, no dependency information available
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (4 KB at 86.3 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R… (4 KB at 1.6 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (4 KB at 117.6 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL… (4 KB at 113.5 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (6 KB at 233.9 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R… (6 KB at 208.8 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (243 KB at 1939.1 KB/sec)
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (432 KB at 3272.1 KB/sec)
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (410 KB at 3011.9 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R… (410 KB at 3126.8 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL… (243 KB at 1836.2 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R… (432 KB at 3152.7 KB/sec)
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[JENKINS] Archiving disabled
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Tutti ............................................. SUCCESS [ 2.644 s]
[INFO] Tutti :: Persistence .............................. FAILURE [ 3.497 s]
[INFO] Tutti :: Ichtyometer API .......................... SKIPPED
[INFO] Tutti :: Service .................................. SKIPPED
[INFO] Tutti :: UI ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.248 s
[INFO] Finished at: 2014-04-21T15:48:46+01:00
[INFO] Final Memory: 22M/309M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project tutti-persistence: Could not resolve dependencies for project fr.ifremer.tutti:tutti-persistence:jar:3.5-SNAPSHOT: The following artifacts could not be resolved: fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT, fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project tutti-persistence: Could not resolve dependencies for project fr.ifremer.tutti:tutti-persistence:jar:3.5-SNAPSHOT: The following artifacts could not be resolved: fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT, fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:220)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:127)
at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:257)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:200)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.project.DependencyResolutionException: Could not resolve dependencies for project fr.ifremer.tutti:tutti-persistence:jar:3.5-SNAPSHOT: The following artifacts could not be resolved: fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT, fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:198)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:195)
... 33 more
Caused by: org.eclipse.aether.resolution.DependencyResolutionException: The following artifacts could not be resolved: fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT, fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:384)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:192)
... 34 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The following artifacts could not be resolved: fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT, fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:367)
... 35 more
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT in snapshots (http://nexus.nuiton.org/nexus/content/repositories/snapshots)
at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1012)
at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$6.wrap(WagonRepositoryConnector.java:1004)
at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:725)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
... 3 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionExcept…
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :tutti-persistence
Sending e-mails to: tutti-commits(a)list.forge.codelutin.com chemit+codelutin-ci(a)codelutin.com
channel stopped
1
3
Build failed in Jenkins: tutti-ci » Tutti :: Persistence #55
by admin+ci-codelutin.com@codelutin.com 22 Apr '14
by admin+ci-codelutin.com@codelutin.com 22 Apr '14
22 Apr '14
See <http://ci.codelutin.com/jenkins/job/tutti-ci/fr.ifremer.tutti$tutti-persist…>
Changes:
[Tony CHEMIT] refs-60 #4979
------------------------------------------
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Tutti :: Persistence 3.5-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[WARNING] The POM for fr.ifremer.adagio:adagio-core-shared:jar:3.5.2-SNAPSHOT is missing, no dependency information available
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[WARNING] The POM for fr.ifremer.adagio:adagio-core-allegro:jar:3.5.2-SNAPSHOT is missing, no dependency information available
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (4 KB at 86.3 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R… (4 KB at 1.6 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (4 KB at 117.6 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL… (4 KB at 113.5 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (6 KB at 233.9 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R… (6 KB at 208.8 KB/sec)
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/snapshots/fr/ifremer/ada…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/fr/ifremer/adagio…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: http://nexus.nuiton.org/nexus/content/repositories/central-releases/org/spr…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloading: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo…
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (243 KB at 1939.1 KB/sec)
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (432 KB at 3272.1 KB/sec)
[INFO] Downloaded: https://nexus.nuiton.org/nexus/content/groups/tutti-group/org/springframewo… (410 KB at 3011.9 KB/sec)
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL…
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R…
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-jdbc/4.0.1.R… (410 KB at 3126.8 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-tx/4.0.1.REL… (243 KB at 1836.2 KB/sec)
[INFO] Downloaded: http://repo.maven.apache.org/maven2/org/springframework/spring-test/4.0.1.R… (432 KB at 3152.7 KB/sec)
[JENKINS] Archiving disabled
1
3
Author: tchemit
Date: 2014-04-22 23:58:53 +0200 (Tue, 22 Apr 2014)
New Revision: 1721
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1721
Log:
fix i18n version
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-22 17:00:37 UTC (rev 1720)
+++ trunk/pom.xml 2014-04-22 21:58:53 UTC (rev 1721)
@@ -136,7 +136,7 @@
<signatureVersion>1.0</signatureVersion>
<!-- libraries version -->
- <nuitonI18nVersion>3.1</nuitonI18nVersion>
+ <nuitonI18nVersion>3.0</nuitonI18nVersion>
<nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion>
<eugenePluginVersion>2.7.4</eugenePluginVersion>
<!--<hibernateVersion>3.6.10.Final</hibernateVersion>-->
1
0
Author: tchemit
Date: 2014-04-22 19:00:37 +0200 (Tue, 22 Apr 2014)
New Revision: 1720
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1720
Log:
refs #4979 (use adagio 3.5.2)
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-22 16:10:25 UTC (rev 1719)
+++ trunk/pom.xml 2014-04-22 17:00:37 UTC (rev 1720)
@@ -136,14 +136,14 @@
<signatureVersion>1.0</signatureVersion>
<!-- libraries version -->
- <nuitonI18nVersion>3.0</nuitonI18nVersion>
+ <nuitonI18nVersion>3.1</nuitonI18nVersion>
<nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion>
<eugenePluginVersion>2.7.4</eugenePluginVersion>
<!--<hibernateVersion>3.6.10.Final</hibernateVersion>-->
<jaxxVersion>2.8.4</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<slf4jVersion>1.7.5</slf4jVersion>
- <adagioVersion>3.5.2-SNAPSHOT</adagioVersion>
+ <adagioVersion>3.5.2</adagioVersion>
<bluecoveVersion>2.1.0</bluecoveVersion>
<hibernateVersion>4.3.1.Final</hibernateVersion>
<springVersion>4.0.1.RELEASE</springVersion>
1
0
r1719 - trunk/tutti-ui-swing/src/main/resources/icons
by tchemit@users.forge.codelutin.com 22 Apr '14
by tchemit@users.forge.codelutin.com 22 Apr '14
22 Apr '14
Author: tchemit
Date: 2014-04-22 18:10:25 +0200 (Tue, 22 Apr 2014)
New Revision: 1719
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1719
Log:
refs #4958 (add icons)
Added:
trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-dirty.png
trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-ready-to-sync.png
trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-waiting.png
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-dirty.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-dirty.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-ready-to-sync.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-ready-to-sync.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-waiting.png
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise-waiting.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
1
0
21 Apr '14
Author: tchemit
Date: 2014-04-21 15:27:20 +0200 (Mon, 21 Apr 2014)
New Revision: 1718
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1718
Log:
refs-60 #4979
Added:
trunk/tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml
trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml
trunk/tutti-persistence/src/main/resources/tutti-conf.xml
Removed:
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/
trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
Modified:
trunk/pom.xml
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.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/ProtocolPersistenceService.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/ReferentialPersistenceService.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/TechnicalPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.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/TuttiPersistenceServiceLocator.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java
trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
trunk/tutti-persistence/src/main/resources/ehcache.xml
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
trunk/tutti-persistence/src/main/resources/tuttiBeanRefFactory.xml
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java
trunk/tutti-persistence/src/test/resources/beanRefFactoryWitNoDb.xml
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialSynchronizeService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/AbstractServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java
trunk/tutti-ui-swing/pom.xml
trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/pom.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -139,13 +139,14 @@
<nuitonI18nVersion>3.0</nuitonI18nVersion>
<nuitonValidatorVersion>3.0-rc-1</nuitonValidatorVersion>
<eugenePluginVersion>2.7.4</eugenePluginVersion>
- <hibernateVersion>3.6.10.Final</hibernateVersion>
+ <!--<hibernateVersion>3.6.10.Final</hibernateVersion>-->
<jaxxVersion>2.8.4</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<slf4jVersion>1.7.5</slf4jVersion>
- <adagioVersion>3.4.1</adagioVersion>
+ <adagioVersion>3.5.2-SNAPSHOT</adagioVersion>
<bluecoveVersion>2.1.0</bluecoveVersion>
- <springVersion>3.2.3.RELEASE</springVersion>
+ <hibernateVersion>4.3.1.Final</hibernateVersion>
+ <springVersion>4.0.1.RELEASE</springVersion>
<hsqldbVersion>1.8.0.10</hsqldbVersion>
<!-- I18n configuration -->
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -25,14 +25,11 @@
*/
import com.google.common.base.Charsets;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Sets;
-import com.google.common.io.Files;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
+import fr.ifremer.adagio.core.config.AdagioConfiguration;
+import fr.ifremer.adagio.core.config.AdagioConfigurationOption;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import fr.ifremer.tutti.type.CoordinateEditorType;
import fr.ifremer.tutti.type.WeightUnit;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.logging.Log;
@@ -41,6 +38,7 @@
import org.nuiton.config.ApplicationConfigHelper;
import org.nuiton.config.ApplicationConfigProvider;
import org.nuiton.config.ArgumentsParserException;
+import org.nuiton.config.ConfigOptionDef;
import org.nuiton.jaxx.application.ApplicationConfiguration;
import org.nuiton.jaxx.application.ApplicationIOUtil;
import org.nuiton.jaxx.application.ApplicationTechnicalException;
@@ -48,15 +46,13 @@
import javax.swing.KeyStroke;
import java.awt.Color;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URL;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
-import java.util.Properties;
+import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n.t;
@@ -82,10 +78,48 @@
TuttiConfiguration.instance = instance;
}
+ public static Set<ApplicationConfigProvider> getDefaultApplicationConfig(ApplicationConfig applicationConfig) {
+
+ // get all config providers
+ Set<ApplicationConfigProvider> providers =
+ ApplicationConfigHelper.getProviders(null,
+ null,
+ null,
+ true);
+
+ // load all default options
+ ApplicationConfigHelper.loadAllDefaultOption(applicationConfig,
+ providers);
+
+ // Override some adagio default config
+ Map<ConfigOptionDef, ConfigOptionDef> translateOptions = new HashMap<>();
+
+ translateOptions.put(TuttiConfigurationOption.BASEDIR, AdagioConfigurationOption.BASEDIR);
+ translateOptions.put(TuttiConfigurationOption.DATA_DIRECTORY, AdagioConfigurationOption.DATA_DIRECTORY);
+ translateOptions.put(TuttiConfigurationOption.DB_NAME, AdagioConfigurationOption.DB_NAME);
+ translateOptions.put(TuttiConfigurationOption.JDBC_USERNAME, AdagioConfigurationOption.JDBC_USERNAME);
+ translateOptions.put(TuttiConfigurationOption.JDBC_PASSWORD, AdagioConfigurationOption.JDBC_PASSWORD);
+ translateOptions.put(TuttiConfigurationOption.JDBC_URL, AdagioConfigurationOption.JDBC_URL);
+
+ for (Map.Entry<ConfigOptionDef, ConfigOptionDef> entry : translateOptions.entrySet()) {
+ ConfigOptionDef tuttiKey = entry.getKey();
+ ConfigOptionDef adagioKey = entry.getValue();
+ String tuttiOptionValue = String.format("${%s}", tuttiKey.getKey());
+ applicationConfig.setDefaultOption(adagioKey.getKey(), tuttiOptionValue);
+ }
+
+ applicationConfig.setDefaultOption(AdagioConfigurationOption.DB_ENUMERATION_RESOURCE.getKey(),
+ "classpath*:adagio-db-enumerations.properties,classpath*:tutti-db-enumerations.properties");
+
+ return providers;
+ }
+
protected final String[] optionKeyToNotSave;
protected File configFile;
+ protected AdagioConfiguration adagioConfig;
+
public TuttiConfiguration(ApplicationConfig applicationConfig) {
super(applicationConfig);
optionKeyToNotSave = null;
@@ -94,18 +128,8 @@
public TuttiConfiguration(String file, String... args) {
super(new ApplicationConfig());
applicationConfig.setEncoding(Charsets.UTF_8.name());
+ Set<ApplicationConfigProvider> providers = getDefaultApplicationConfig(applicationConfig);
- // get all config providers
- Set<ApplicationConfigProvider> providers =
- ApplicationConfigHelper.getProviders(null,
- null,
- null,
- true);
-
- // load all default options
- ApplicationConfigHelper.loadAllDefaultOption(applicationConfig,
- providers);
-
// get all transient and final option keys
Set<String> optionToSkip =
ApplicationConfigHelper.getTransientOptionKeys(providers);
@@ -148,8 +172,12 @@
tuttiBasedir.getAbsolutePath());
}
- public void initConfig(RessourceClassLoader resourceLoader) {
+ public void initConfig() {
+ // Give the same applicationConfig to adagio
+ adagioConfig = new AdagioConfiguration(applicationConfig);
+ AdagioConfiguration.setInstance(adagioConfig);
+
File directory = getDbDirectory();
ApplicationIOUtil.forceMkdir(directory, t("tutti.io.mkDir.error", directory));
directory = getDbAttachmentDirectory();
@@ -174,34 +202,6 @@
ApplicationIOUtil.forceMkdir(tmpDirectory, t("tutti.io.mkDir.error", tmpDirectory));
ApplicationIOUtil.forceMkdir(getReportBackupDirectory(), t("tutti.io.mkDir.error", getReportBackupDirectory()));
-
- // add a predicate to search the configuration file from his directory instead of the class-path
- resourceLoader.addSearchInDirectoriesPredicate(new Predicate<String>() {
-
- Set<String> matchingNames = Sets.newHashSet(
- getDbConfigurationPath().getName(),
- getDbEnumerationPath().getName());
-
- @Override
- public boolean apply(String input) {
- return matchingNames.contains(input);
- }
- });
-
- // get configuration file path
- File configurationPath = getDbConfigurationPath();
-
- // add his directory in path to search
- resourceLoader.addDirectory(configurationPath.getParentFile());
-
- // get enumeration file path
- File enumerationPath = getDbEnumerationPath();
-
- // add his directory in path to search
- resourceLoader.addDirectory(enumerationPath.getParentFile());
-
- // generate external configuration files if required
- generateExternalDbFiles(false);
}
public void prepareDirectories() {
@@ -227,25 +227,6 @@
t("tutti.io.mkDir.error", getReportBackupDirectory()));
}
- public void generateExternalDbFiles(boolean force) {
-
- try {
- // always generate db configuration file
- // see http://forge.codelutin.com/issues/2352
- generateDbConfiguration(true);
-
- } catch (IOException e) {
- throw new ApplicationTechnicalException(t("tutti.persistence.config.generateFile.error"));
- }
-
- try {
-
- generateDbEnumerationConfiguration(force);
- } catch (IOException e) {
- throw new ApplicationTechnicalException(t("tutti.persistence.config.generateEnumFile.error"));
- }
- }
-
public File newTempFile(String basename) {
return new File(getTmpDirectory(), basename + "_" + System.nanoTime());
}
@@ -339,10 +320,6 @@
//--- Option getter ------------------------------------------------------//
//------------------------------------------------------------------------//
- public File getDbConfigurationPath() {
- return applicationConfig.getOptionAsFile(TuttiConfigurationOption.DB_CONFIGURATION_PATH.getKey());
- }
-
public File getDbDirectory() {
return applicationConfig.getOptionAsFile(TuttiConfigurationOption.DB_DIRECTORY.getKey());
}
@@ -372,10 +349,6 @@
return result;
}
- public File getDbEnumerationPath() {
- return applicationConfig.getOptionAsFile(TuttiConfigurationOption.DB_ENUMERATION_PATH.getKey());
- }
-
public String getJdbcUrl() {
return applicationConfig.getOption(TuttiConfigurationOption.JDBC_URL.getKey());
}
@@ -663,96 +636,96 @@
//--- Internal methods ---------------------------------------------------//
//------------------------------------------------------------------------//
- protected void generateDbConfiguration(boolean force) throws IOException {
+// protected void generateDbConfiguration(boolean force) throws IOException {
+//
+// File destination = getDbConfigurationPath();
+//
+// if (force || !destination.exists()) {
+//
+// // load db configuration template (tutti-db.properties)
+//
+// if (log.isInfoEnabled()) {
+// log.info("Generate " + destination + " from classpath.");
+// }
+// Properties result = new Properties();
+// InputStream in = getClass().getResourceAsStream("/tutti-db-conf.properties");
+// try {
+// result.load(in);
+// in.close();
+// } finally {
+// IOUtils.closeQuietly(in);
+// }
+//
+// // replace some values from ApplicationConfig
+//
+// result.put("dataSource.jdbc.driver", getJdbcDriver().getName());
+// result.put("dataSource.jdbc.username", getJdbcUsername());
+// result.put("dataSource.jdbc.password", getJdbcPassword());
+// result.put("dataSource.jdbc.url", getJdbcUrl());
+// result.put("hibernate.dialect", getHibernateDialect().getName());
+// result.put("hibernate.show_sql", isHibernateShowSql() + "");
+// result.put("hibernate.format_sql", isHibernateFormatSql() + "");
+// result.put("hibernate.use_sql_comments", isHibernateUseSqlComment() + "");
+// result.put("ehcache.disk.store.dir", getCacheDirectory().getAbsolutePath());
+//
+// // write result file at destination
+//
+// BufferedWriter writer = Files.newWriter(destination, Charsets.UTF_8);
+// try {
+// result.store(writer, "Generated by " + getClass().getName());
+// writer.close();
+// } finally {
+// IOUtils.closeQuietly(writer);
+// }
+// }
+// }
- File destination = getDbConfigurationPath();
+// protected void generateDbEnumerationConfiguration(boolean force) throws IOException {
+//
+// File destination = getDbEnumerationPath();
+//
+// if (force || !destination.exists()) {
+//
+// // load enumeration mapping from classpath (enumerations.properties)
+//
+// if (log.isInfoEnabled()) {
+// log.info("Generate " + destination + " from classpath.");
+// }
+//
+// Properties result = new Properties();
+// InputStream in = getClass().getResourceAsStream("/tutti-db-enumerations.properties");
+// try {
+// result.load(in);
+// in.close();
+// } finally {
+// IOUtils.closeQuietly(in);
+// }
+//
+// // replace some values from ApplicationConfig
+//
+//
+// // write result file at destination
+//
+// BufferedWriter writer =
+// Files.newWriter(destination, Charsets.UTF_8);
+// try {
+// result.store(writer, "Generated by " + getClass().getName());
+// writer.close();
+// } finally {
+// IOUtils.closeQuietly(writer);
+// }
+// }
+// }
- if (force || !destination.exists()) {
-
- // load db configuration template (tutti-db.properties)
-
- if (log.isInfoEnabled()) {
- log.info("Generate " + destination + " from classpath.");
- }
- Properties result = new Properties();
- InputStream in = getClass().getResourceAsStream("/tutti-db-conf.properties");
- try {
- result.load(in);
- in.close();
- } finally {
- IOUtils.closeQuietly(in);
- }
-
- // replace some values from ApplicationConfig
-
- result.put("dataSource.jdbc.driver", getJdbcDriver().getName());
- result.put("dataSource.jdbc.username", getJdbcUsername());
- result.put("dataSource.jdbc.password", getJdbcPassword());
- result.put("dataSource.jdbc.url", getJdbcUrl());
- result.put("hibernate.dialect", getHibernateDialect().getName());
- result.put("hibernate.show_sql", isHibernateShowSql() + "");
- result.put("hibernate.format_sql", isHibernateFormatSql() + "");
- result.put("hibernate.use_sql_comments", isHibernateUseSqlComment() + "");
- result.put("ehcache.disk.store.dir", getCacheDirectory().getAbsolutePath());
-
- // write result file at destination
-
- BufferedWriter writer = Files.newWriter(destination, Charsets.UTF_8);
- try {
- result.store(writer, "Generated by " + getClass().getName());
- writer.close();
- } finally {
- IOUtils.closeQuietly(writer);
- }
- }
- }
-
- protected void generateDbEnumerationConfiguration(boolean force) throws IOException {
-
- File destination = getDbEnumerationPath();
-
- if (force || !destination.exists()) {
-
- // load enumeration mapping from classpath (enumerations.properties)
-
- if (log.isInfoEnabled()) {
- log.info("Generate " + destination + " from classpath.");
- }
-
- Properties result = new Properties();
- InputStream in = getClass().getResourceAsStream("/tutti-db-enumerations.properties");
- try {
- result.load(in);
- in.close();
- } finally {
- IOUtils.closeQuietly(in);
- }
-
- // replace some values from ApplicationConfig
-
-
- // write result file at destination
-
- BufferedWriter writer =
- Files.newWriter(destination, Charsets.UTF_8);
- try {
- result.store(writer, "Generated by " + getClass().getName());
- writer.close();
- } finally {
- IOUtils.closeQuietly(writer);
- }
- }
- }
-
- public Properties getDbEnumerations() throws IOException {
- Properties result = new Properties();
- BufferedReader in = Files.newReader(getDbEnumerationPath(), Charsets.UTF_8);
- try {
- result.load(in);
- in.close();
- } finally {
- IOUtils.closeQuietly(in);
- }
- return result;
- }
+// public Properties getDbEnumerations() throws IOException {
+// Properties result = new Properties();
+// BufferedReader in = Files.newReader(getDbEnumerationPath(), Charsets.UTF_8);
+// try {
+// result.load(in);
+// in.close();
+// } finally {
+// IOUtils.closeQuietly(in);
+// }
+// return result;
+// }
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -123,18 +123,6 @@
"${tutti.data.directory}/protocol",
File.class),
- DB_CONFIGURATION_PATH(
- "tutti.persistence.db.configurationPath",
- n("tutti.config.option.persistence.db.configurationPath.description"),
- "${tutti.data.directory}/dbconf/conf.properties",
- File.class),
-
- DB_ENUMERATION_PATH(
- "tutti.persistence.db.enumerationPath",
- n("tutti.config.option.persistence.db.enumerationPath.description"),
- "${tutti.data.directory}/dbconf/enumerations-v3.properties",
- File.class),
-
DB_NAME(
"tutti.persistence.db.name",
n("tutti.config.option.persistence.db.name.description"),
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -61,664 +61,6 @@
AccidentalBatchPersistenceService,
IndividualObservationBatchPersistenceService {
- //------------------------------------------------------------------------//
- //-- Technical methods --//
- //------------------------------------------------------------------------//
-
String getImplementationName();
-// /**
-// * To clear all caches.
-// *
-// * @since 1.0.1
-// */
-// void clearAllCaches();
-//
-//// /**
-//// * @return the enumeration file (where all constant mapping are defined).
-//// * @since 2.4
-//// */
-//// TuttiEnumerationFile getEnumerationFile();
-//
-// /**
-// * To invoke the given call code.
-// * <p/>
-// * <strong>Note:</strong> this is mainly to execute a code in a single
-// * transaction.
-// *
-// * @param call call to invoke
-// * @param <V> return type
-// * @return the return of the call
-// * @since 2.4
-// */
-// @Transactional(readOnly = false)
-// <V> V invoke(Callable<V> call);
-//
-// Version getDbVersion();
-//
-// Version getApplicationVersion();
-//
-// void updateSchema();
-//
-// void sanityDb();
-
-// //------------------------------------------------------------------------//
-// //-- Referential methods --//
-// //------------------------------------------------------------------------//
-//
-// /**
-// * @return all available zones (used by a {@link Program}.
-// * @see Program#getZone()
-// * @see Program#setZone(TuttiLocation)
-// * @since 0.3
-// */
-// List<TuttiLocation> getAllProgramZone();
-//
-// /**
-// * @return all countries.
-// * @since 0.1
-// */
-// List<TuttiLocation> getAllCountry();
-//
-// /**
-// * @return all harbours (used by a {@link Cruise}).
-// * @see {@link Cruise#getDepartureLocation()}
-// * @see {@link Cruise#setDepartureLocation(TuttiLocation)}
-// * @see {@link Cruise#getReturnLocation()}
-// * @see {@link Cruise#setReturnLocation(TuttiLocation)}
-// * @since 1.2
-// */
-//
-// List<TuttiLocation> getAllHarbour();
-//
-// /**
-// * Get the list of location of type strata that match the given zone id.
-// *
-// * @param zoneId id of the parent zone (can not be null)
-// * @return the stratas with given zone id as location parent
-// * @since 1.0
-// */
-// List<TuttiLocation> getAllFishingOperationStrata(String zoneId);
-//
-// /**
-// * Get the list of location of type substra that match the given zone id or
-// * if not null the given strata id.
-// *
-// * @param zoneId id of the parent zone (can not be null)
-// * @param strataId id of the optional parent strata
-// * @return the list of localite with given zone id as location parent / or strata
-// * @since 1.0
-// */
-// List<TuttiLocation> getAllFishingOperationSubStrata(String zoneId, String strataId);
-//
-// /**
-// * Get the list of location of type substra that match the given zone id or
-// * if not null the given strata id or if not null the given substrata id if
-// * not null.
-// *
-// * @param zoneId id of the parent zone (can not be null)
-// * @param strataId id of the optional parent strata
-// * @param subStrataId id of the optional parent subStrata
-// * @return the list of localite with given zone id as location parent / or strata or substrata
-// * @since 1.0
-// */
-// List<TuttiLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId);
-//
-// /**
-// * @return all scientific vessels (used by a {@link Cruise}).
-// * @see Cruise#getVessel()
-// * @see Cruise#setVessel(Vessel)
-// * @since 0.3
-// */
-// List<Vessel> getAllScientificVessel();
-//
-// /**
-// * @return all commercial vessels (used by a {@link Cruise}).
-// * @see Cruise#getVessel()
-// * @see Cruise#setVessel(Vessel)
-// * @since 0.3
-// */
-// List<Vessel> getAllFishingVessel();
-//
-// /**
-// * Get all species (referent or synonym) with with {@link Species#getSurveyCode()}
-// * filled by optional protocol.
-// *
-// * @return all species with {@code surveyCode} filled if possible.
-// * @since 0.1
-// */
-// List<Species> getAllSpecies();
-//
-// /**
-// * Get all {@code referent} species with {@link Species#getSurveyCode()}
-// * filled by optional protocol.
-// *
-// * @return all species with {@code surveyCode} filled if possible.
-// * @since 1.0
-// */
-// List<Species> getAllReferentSpecies();
-//
-// /**
-// * Obtain a species with external code as vernacular code given his referenceTaxonId.
-// * <p/>
-// * <strong>Note:</strong> {@link Species#getRefTaxCode()} will not be
-// * filled by with method.
-// *
-// * @param referenceTaxonId id of the reference taxon of the species to load
-// * @return the species or {@code null} if not found.
-// * @see Species#getReferenceTaxonId()
-// * @see Species#getVernacularCode()
-// * @since 2.0
-// */
-// Species getSpeciesByReferenceTaxonIdWithVernacularCode(Integer referenceTaxonId);
-//
-// /**
-// * @return all caracteristics of the system.
-// * @since 1.0
-// */
-// List<Caracteristic> getAllCaracteristic();
-//
-// /**
-// * @return all caracteristics of the system with the ones which are protected.
-// * @since 2.3
-// */
-// List<Caracteristic> getAllCaracteristicWithProtected();
-//
-// /**
-// * @return all caracteristics of the system useable for {@link SampleCategoryModel}.
-// * @since 2.4
-// */
-// List<Caracteristic> getAllCaracteristicForSampleCategory();
-//
-// /**
-// * @return all numeric caracteristics of the system.
-// * @since 1.0.2
-// */
-// List<Caracteristic> getAllNumericCaracteristic();
-//
-// Caracteristic getSizeCategoryCaracteristic();
-//
-// Caracteristic getSexCaracteristic();
-//
-// Caracteristic getSortedUnsortedCaracteristic();
-//
-// Caracteristic getMaturityCaracteristic();
-//
-// Caracteristic getAgeCaracteristic();
-//
-// Caracteristic getMarineLitterCategoryCaracteristic();
-//
-// Caracteristic getMarineLitterSizeCategoryCaracteristic();
-//
-// Caracteristic getVerticalOpeningCaracteristic();
-//
-// Caracteristic getHorizontalOpeningWingCaracteristic();
-//
-// Caracteristic getHorizontalOpeningDoorCaracteristic();
-//
-// Caracteristic getDeadOrAliveCaracteristic();
-//
-// Caracteristic getPmfmIdCaracteristic();
-//
-// Caracteristic getWeightMeasuredCaracteristic();
-//
-// Caracteristic getCaracteristic(Integer pmfmId);
-//
-// Predicate<SpeciesAbleBatch> getVracBatchPredicate();
-//
-// boolean isVracBatch(SpeciesAbleBatch speciesBatch);
-//
-// boolean isTemporary(TuttiReferentialEntity entity);
-//
-// List<Gear> getAllScientificGear();
-//
-// List<Gear> getAllFishingGear();
-//
-// List<Person> getAllPerson();
-//
-// /**
-// * @return all object type
-// * @since 1.0.2
-// */
-// List<ObjectType> getAllObjectType();
-//
-// Person getPerson(Integer personId);
-//
-// Gear getGear(Integer gearCode);
-//
-// Vessel getVessel(String vesselCode);
-//
-// ObjectType getObjectType(String objectTypeCode);
-//
-// /**
-// * Import given temporary species.
-// *
-// * @param species species to import
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<Species> importTemporarySpecies(List<Species> species);
-//
-// /**
-// * Import given temporary vessels.
-// *
-// * @param vessels vessels to import
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<Vessel> importTemporaryVessel(List<Vessel> vessels);
-//
-// /**
-// * Import given temporary persons.
-// *
-// * @param persons persons to import
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<Person> importTemporaryPerson(List<Person> persons);
-//
-// /**
-// * Import given temporary gears.
-// *
-// * @param gears gears to import
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<Gear> importTemporaryGear(List<Gear> gears);
-
- //------------------------------------------------------------------------//
- //-- Attachments methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * Get all attachments for the given object {@code objectId} of type.
-// *
-// * @param objectType type of attachment (see {@link AttachementObjectTypeEnum})
-// * @param objectId id of the object
-// * @return list of all attachments for the given {@code objectId}.
-// * @see AttachementObjectTypeEnum
-// */
-// List<Attachment> getAllAttachments(AttachementObjectTypeEnum objectType,
-// Integer objectId);
-//
-// /**
-// * Get the file of the given {@code attachmentId}.
-// *
-// * @param attachmentId id of the attachment
-// * @return the file for the given attachment
-// */
-// File getAttachmentFile(String attachmentId);
-//
-// /**
-// * Creates the given attachment.
-// *
-// * @param attachment attachment to create
-// * @param file file to store in this attachment
-// * @return the attachment with his id.
-// */
-// @Transactional(readOnly = false)
-// Attachment createAttachment(Attachment attachment, File file);
-//
-// /**
-// * Saves the given attachment.
-// *
-// * @param attachment attachment to create
-// * @return the attachment with his id.
-// */
-// @Transactional(readOnly = false)
-// Attachment saveAttachment(Attachment attachment);
-//
-// /**
-// * Deletes the given attachment given his id.
-// *
-// * @param attachmentId id of the attachment to delete
-// */
-// @Transactional(readOnly = false)
-// void deleteAttachment(String attachmentId);
-
- //------------------------------------------------------------------------//
- //-- Program methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * Get all programs.
-// * <p/>
-// * <strong>Note:</strong> For each program, his zone is loaded.
-// *
-// * @return the list of programs found in db.
-// */
-// List<Program> getAllProgram();
-//
-// /**
-// * Get the program for the given {@code id}.
-// * <p/>
-// * <strong>Note:</strong> his zone is loaded.
-// *
-// * @param id id of the program to load
-// * @return the loaded program
-// */
-// Program getProgram(String id);
-//
-// @Transactional(readOnly = false)
-// Program createProgram(Program bean);
-//
-// @Transactional(readOnly = false)
-// Program saveProgram(Program bean);
-
- //------------------------------------------------------------------------//
- //-- Cruise methods --//
- //------------------------------------------------------------------------//
-
-// List<Cruise> getAllCruise(String programId);
-//
-// Cruise getCruise(String id);
-//
-// @Transactional(readOnly = false)
-// Cruise createCruise(Cruise bean);
-//
-// @Transactional(readOnly = false)
-// Cruise saveCruise(Cruise bean, boolean updateVessel, boolean updateGear);
-//
-// CaracteristicMap getGearCaracteristics(String cruiseId,
-// String gearId,
-// short rankOrder);
-//
-// boolean isOperationUseGears(Integer cruiseId, Collection<Gear> gears);
-//
-// @Transactional(readOnly = false)
-// void saveGearCaracteristics(Gear gear, Cruise cruise);
-
- //------------------------------------------------------------------------//
- //-- Protocol methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * The protocol used by the persistence lay (used to consolidate entites).
-// *
-// * @return The protocol used by the persistence layer
-// * @see #setProtocol(TuttiProtocol)
-// * @since 2.6
-// */
-// TuttiProtocol getProtocol();
-//
-// /**
-// * Set the protocol to use by the persistence layer.
-// *
-// * @param protocol the new protocol to use (can be null)
-// * @see #getProtocol()
-// * @since 2.6
-// */
-// void setProtocol(TuttiProtocol protocol);
-//
-// List<String> getAllProtocolNames();
-//
-// List<TuttiProtocol> getAllProtocol();
-//
-// boolean isProtocolExist(String id);
-//
-// TuttiProtocol getProtocol(String id);
-//
-// @Transactional(readOnly = false)
-// TuttiProtocol createProtocol(TuttiProtocol bean);
-//
-// @Transactional(readOnly = false)
-// TuttiProtocol saveProtocol(TuttiProtocol bean);
-//
-// @Transactional(readOnly = false)
-// void deleteProtocol(String id);
-
- //------------------------------------------------------------------------//
- //-- FishingOperation methods --//
- //------------------------------------------------------------------------//
-
-// int getFishingOperationCount(String cruiseId);
-//
-// List<String> getAllFishingOperationIds(String cruiseId);
-//
-// List<FishingOperation> getAllFishingOperation(String cruiseId);
-//
-// FishingOperation getFishingOperation(String id);
-//
-// List<Vessel> getFishingOperationSecondaryVessel(String fishingOperationId);
-//
-// @Transactional(readOnly = false)
-// FishingOperation createFishingOperation(FishingOperation bean);
-//
-// @Transactional(readOnly = false)
-// FishingOperation saveFishingOperation(FishingOperation bean);
-//
-// @Transactional(readOnly = false)
-// void deleteFishingOperation(String id);
-
- //------------------------------------------------------------------------//
- //-- CatchBatch methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * @param operationId id of the fishing operation
-// * @return {@code true} if there is a catchBatch for the given fishing
-// * operation, {@code false} otherwise.
-// * @since 2.2
-// */
-// boolean isFishingOperationWithCatchBatch(String operationId);
-//
-// /**
-// * Get the catchBatch from the fishing Operation id.
-// * <p/>
-// * If batch model is not compatible with Tutti then a
-// * {@link InvalidBatchModelException} will be thrown.
-// *
-// * @param id id of the fihsing operation
-// * @return found catchbatch
-// * @throws InvalidBatchModelException if batch model is not compatible
-// * with Tutti.
-// */
-// CatchBatch getCatchBatchFromFishingOperation(String id) throws InvalidBatchModelException;
-//
-// /**
-// * Create the given CatchBatch and return it.
-// *
-// * @param bean catchBatch to create
-// * @return created catchBatch
-// */
-// @Transactional(readOnly = false)
-// CatchBatch createCatchBatch(CatchBatch bean);
-//
-// /**
-// * Save the given catchBatch and return it.
-// *
-// * @param bean batch to save
-// * @return the saved catchBatch
-// */
-// @Transactional(readOnly = false)
-// CatchBatch saveCatchBatch(CatchBatch bean);
-
- //------------------------------------------------------------------------//
- //-- Species Batch methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * Get the batch parent of all root {@link SpeciesBatch} for the given
-// * fishing operation.
-// * <p/>
-// * <strong>Note:</strong> All childs of the batch should be loaded here.
-// *
-// * @param fishingOperationId if of the fishing operation to seek
-// * @param sampleCategoryModel [optional] sample category model to check
-// * @return the list of root {@link SpeciesBatch}
-// * @throws InvalidBatchModelException if batch does not respect the sample category model
-// * @since 2.4
-// */
-// BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId,
-// SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException;
-//
-// @Transactional(readOnly = false)
-// SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId);
-//
-// @Transactional(readOnly = false)
-// SpeciesBatch saveSpeciesBatch(SpeciesBatch bean);
-//
-// @Transactional(readOnly = false)
-// void deleteSpeciesBatch(String id);
-//
-// @Transactional(readOnly = false)
-// void deleteSpeciesSubBatch(String id);
-//
-// @Transactional(readOnly = false)
-// void changeSpeciesBatchSpecies(String batchId, Species species);
-//
-// /**
-// * Get all frequencies for the given species batch.
-// *
-// * @param speciesBatchId the id of the species batch to seek.
-// * @return the list of frequencies for the given specues batch id
-// * @since 1.0
-// */
-// List<SpeciesBatchFrequency> getAllSpeciesBatchFrequency(String speciesBatchId);
-//
-// /**
-// * Get all frequencies for the given root species batch container.
-// *
-// * @param batchContainer the root batch containter
-// * @return the list of species frequencies indexed by their species
-// * @since 3.3
-// */
-// Multimap<Species, SpeciesBatchFrequency> getAllSpeciesBatchFrequencyForBatch(BatchContainer<SpeciesBatch> batchContainer);
-//
-// /**
-// * Save all given {@link SpeciesBatchFrequency} into the given
-// * {@code speciesBatchId}. If some are not existing then creates them.
-// * <p/>
-// * <strong>Note:</strong> This will as a side effect remove all previous frequency for this species batch.
-// *
-// * @param speciesBatchId id of the {@link SpeciesBatch} to use
-// * @param frequencies list of frequencies to create or update
-// * @return the persisted list of frequencies
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<SpeciesBatchFrequency> saveSpeciesBatchFrequency(String speciesBatchId,
-// List<SpeciesBatchFrequency> frequencies);
-
- //------------------------------------------------------------------------//
- //-- Benthos Batch methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * Get the batch parent of all root {@link BenthosBatch} for the given
-// * fishing operation.
-// * <p/>
-// * <strong>Note:</strong> All childs of the batch should be loaded here.
-// *
-// * @param fishingOperationId if of the fishing operation to seek
-// * @param sampleCategoryModel [optional] sample category model to check
-// * @return the list of root {@link BenthosBatch}
-// * @throws InvalidBatchModelException if batch does not respect the sample category model
-// * @since 2.4
-// */
-// BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId,
-// SampleCategoryModel sampleCategoryModel) throws InvalidBatchModelException;
-//
-// @Transactional(readOnly = false)
-// BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId);
-//
-// @Transactional(readOnly = false)
-// BenthosBatch saveBenthosBatch(BenthosBatch bean);
-//
-// @Transactional(readOnly = false)
-// void deleteBenthosBatch(String id);
-//
-// @Transactional(readOnly = false)
-// void deleteBenthosSubBatch(String id);
-//
-// @Transactional(readOnly = false)
-// void changeBenthosBatchSpecies(String batchId, Species species);
-//
-// /**
-// * Get all frequencies for the given species batch.
-// *
-// * @param benthosBatchId the id of the species batch to seek.
-// * @return the list of frequencies for the given specues batch id
-// * @since 1.0
-// */
-// List<BenthosBatchFrequency> getAllBenthosBatchFrequency(String benthosBatchId);
-//
-// /**
-// * Get all frequencies for the given root benthos batch container.
-// *
-// * @param batchContainer the root batch containter
-// * @return the list of benthos frequencies indexed by their species
-// * @since 3.3
-// */
-// Multimap<Species, BenthosBatchFrequency> getAllBenthosBatchFrequencyForBatch(BatchContainer<BenthosBatch> batchContainer);
-//
-// /**
-// * Save all given {@link BenthosBatchFrequency} into the given
-// * {@code benthosBatchId}. If some are not existing then creates them.
-// * <p/>
-// * <strong>Note:</strong> This will as a side effect remove all previous frequency for this species batch.
-// *
-// * @param benthosBatchId id of the {@link BenthosBatch} to use
-// * @param frequencies list of frequencies to create or update
-// * @return the persisted list of frequencies
-// * @since 1.0
-// */
-// @Transactional(readOnly = false)
-// List<BenthosBatchFrequency> saveBenthosBatchFrequency(String benthosBatchId,
-// List<BenthosBatchFrequency> frequencies);
-
- //------------------------------------------------------------------------//
- //-- MarineLitter Batch methods --//
- //------------------------------------------------------------------------//
-
-// /**
-// * Get the batch parent of all root {@link MarineLitterBatch} for the given
-// * fishing operation.
-// * <p/>
-// * <strong>Note:</strong> All childs of the batch should be loaded here.
-// *
-// * @param fishingOperationId if of the fishing operation to seek
-// * @return the list of root {@link MarineLitterBatch}
-// * @since 1.3
-// */
-// BatchContainer<MarineLitterBatch> getRootMarineLitterBatch(String fishingOperationId);
-//
-// @Transactional(readOnly = false)
-// MarineLitterBatch createMarineLitterBatch(MarineLitterBatch bean);
-//
-// @Transactional(readOnly = false)
-// MarineLitterBatch saveMarineLitterBatch(MarineLitterBatch bean);
-//
-// @Transactional(readOnly = false)
-// void deleteMarineLitterBatch(String id);
-
- //------------------------------------------------------------------------//
- //-- Accidental Batch methods --//
- //------------------------------------------------------------------------//
-
-// List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId);
-//
-// @Transactional(readOnly = false)
-// AccidentalBatch createAccidentalBatch(AccidentalBatch bean);
-//
-// @Transactional(readOnly = false)
-// AccidentalBatch saveAccidentalBatch(AccidentalBatch bean);
-//
-// @Transactional(readOnly = false)
-// void deleteAccidentalBatch(String id);
-
- //------------------------------------------------------------------------//
- //-- IndividualObservation Batch methods --//
- //------------------------------------------------------------------------//
-
-// List<IndividualObservationBatch> getAllIndividualObservationBatch(String fishingOperationId);
-//
-// @Transactional(readOnly = false)
-// IndividualObservationBatch createIndividualObservationBatch(IndividualObservationBatch bean);
-//
-// @Transactional(readOnly = false)
-// IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean);
-//
-// @Transactional(readOnly = false)
-// void deleteIndividualObservationBatch(String id);
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -115,9 +115,6 @@
@Resource(name = "benthosBatchPersistenceService")
protected BenthosBatchPersistenceService benthosBatchService;
-// @Resource(name = "commonBatchPersistenceService")
-// protected CommonBatchPersistenceService commonBatchService;
-
@Resource(name = "marineLitterBatchPersistenceService")
protected MarineLitterBatchPersistenceService marineLitterBatchService;
@@ -177,6 +174,11 @@
}
@Override
+ public void clearCache(String cacheName) {
+ technicalPersistenceService.clearCache(cacheName);
+ }
+
+ @Override
public void init() {
if (log.isInfoEnabled()) {
log.info("Open persistence driver " + getImplementationName());
@@ -188,7 +190,6 @@
catchBatchService.init();
speciesBatchService.init();
benthosBatchService.init();
-// commonBatchService.init();
marineLitterBatchService.init();
accidentalBatchService.init();
individualObservationBatchService.init();
@@ -215,13 +216,12 @@
catchBatchService.close();
speciesBatchService.close();
benthosBatchService.close();
-// commonBatchService.close();
marineLitterBatchService.close();
accidentalBatchService.close();
individualObservationBatchService.close();
protocolService.close();
attachmentService.close();
- TuttiPersistenceServiceLocator.close();
+ TuttiPersistenceServiceLocator.shutdownTutti();
}
}
}
@@ -366,8 +366,8 @@
}
@Override
- public Caracteristic getHorizontalOpeningWingCaracteristic() {
- return referentialService.getHorizontalOpeningWingCaracteristic();
+ public Caracteristic getHorizontalOpeningWingsCaracteristic() {
+ return referentialService.getHorizontalOpeningWingsCaracteristic();
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -108,6 +108,10 @@
public void clearAllCaches() {
throw notImplemented();
}
+ @Override
+ public void clearCache(String cacheName) {
+ throw notImplemented();
+ }
@Override
public List<TuttiLocation> getAllProgramZone() {
@@ -225,7 +229,7 @@
}
@Override
- public Caracteristic getHorizontalOpeningWingCaracteristic() {
+ public Caracteristic getHorizontalOpeningWingsCaracteristic() {
throw notImplemented();
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AbstractPersistenceService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -30,8 +30,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
+import org.hibernate.Session;
import org.hibernate.SessionFactory;
-import org.hibernate.classic.Session;
import org.hibernate.type.Type;
import javax.annotation.Resource;
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -33,11 +33,13 @@
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocationDao;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingArea2RegulationLocationPK;
import fr.ifremer.adagio.core.dao.data.fishingArea.FishingAreaDao;
+import fr.ifremer.adagio.core.dao.data.fishingArea.FishingAreaImpl;
import fr.ifremer.adagio.core.dao.data.measure.GearPhysicalMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.GearUseMeasurement;
import fr.ifremer.adagio.core.dao.data.measure.VesselUseMeasurement;
import fr.ifremer.adagio.core.dao.data.operation.FishingOperationDao;
import fr.ifremer.adagio.core.dao.data.operation.Operation;
+import fr.ifremer.adagio.core.dao.data.operation.OperationImpl;
import fr.ifremer.adagio.core.dao.data.operation.OperationVesselAssociation;
import fr.ifremer.adagio.core.dao.data.operation.OperationVesselAssociationDao;
import fr.ifremer.adagio.core.dao.data.operation.OperationVesselAssociationPK;
@@ -575,8 +577,8 @@
if (CollectionUtils.isNotEmpty(fishingAreas)) {
for (FishingArea fishingArea : fishingAreas) {
fishingArea.setProduce(null);
- fishingArea2RegulationLocationDao.remove(fishingArea.getRegulationLocation());
- fishingArea.getRegulationLocation().clear();
+ fishingArea2RegulationLocationDao.remove(fishingArea.getRegulationLocations());
+ fishingArea.getRegulationLocations().clear();
}
getCurrentSession().flush();
fishingAreaDao.remove(fishingAreas);
@@ -845,7 +847,7 @@
} else {
fishingArea = gearUseFeatures.getFishingAreas().iterator().next();
- notChangedRegulationLocation = Lists.newArrayList(fishingArea.getRegulationLocation());
+ notChangedRegulationLocation = Lists.newArrayList(fishingArea.getRegulationLocations());
// Reset all other fishing areas
}
@@ -1136,14 +1138,14 @@
FishingArea2RegulationLocation fa2rl = FishingArea2RegulationLocation.Factory.newInstance();
FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK();
fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK);
- fa2rlPK.setFishingArea(fishingArea);
+ fa2rlPK.setFishingArea((FishingAreaImpl) fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, source.getStrata().getIdAsInt()));
notChangedRegulationLocation.remove(fa2rl);
- if (fishingArea.getRegulationLocation() == null) {
- fishingArea.setRegulationLocation(Sets.newHashSet(fa2rl));
+ if (fishingArea.getRegulationLocations() == null) {
+ fishingArea.setRegulationLocations(Sets.newHashSet(fa2rl));
} else {
- fishingArea.getRegulationLocation().add(fa2rl);
+ fishingArea.getRegulationLocations().add(fa2rl);
}
if (statisticalLocationId == null) {
statisticalLocationId = source.getStrata().getIdAsInt();
@@ -1155,15 +1157,15 @@
FishingArea2RegulationLocation fa2rl = FishingArea2RegulationLocation.Factory.newInstance();
FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK();
fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK);
- fa2rlPK.setFishingArea(fishingArea);
+ fa2rlPK.setFishingArea((FishingAreaImpl) fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, source.getSubStrata().getIdAsInt()));
notChangedRegulationLocation.remove(fa2rl);
- if (fishingArea.getRegulationLocation() == null) {
- fishingArea.setRegulationLocation(Sets.newHashSet(fa2rl));
+ if (fishingArea.getRegulationLocations() == null) {
+ fishingArea.setRegulationLocations(Sets.newHashSet(fa2rl));
} else {
- fishingArea.getRegulationLocation().add(fa2rl);
+ fishingArea.getRegulationLocations().add(fa2rl);
}
if (statisticalLocationId == null) {
statisticalLocationId = source.getSubStrata().getIdAsInt();
@@ -1175,28 +1177,28 @@
FishingArea2RegulationLocation fa2rl = FishingArea2RegulationLocation.Factory.newInstance();
FishingArea2RegulationLocationPK fa2rlPK = new FishingArea2RegulationLocationPK();
fa2rl.setFishingArea2RegulationLocationPk(fa2rlPK);
- fa2rlPK.setFishingArea(fishingArea);
+ fa2rlPK.setFishingArea((FishingAreaImpl) fishingArea);
fa2rlPK.setLocation(load(LocationImpl.class, source.getLocation().getIdAsInt()));
notChangedRegulationLocation.remove(fa2rl);
- if (fishingArea.getRegulationLocation() == null) {
- fishingArea.setRegulationLocation(Sets.newHashSet(fa2rl));
+ if (fishingArea.getRegulationLocations() == null) {
+ fishingArea.setRegulationLocations(Sets.newHashSet(fa2rl));
} else {
- fishingArea.getRegulationLocation().add(fa2rl);
+ fishingArea.getRegulationLocations().add(fa2rl);
}
if (statisticalLocationId == null) {
statisticalLocationId = source.getLocation().getIdAsInt();
}
}
- fishingArea.getRegulationLocation().removeAll(notChangedRegulationLocation);
+ fishingArea.getRegulationLocations().removeAll(notChangedRegulationLocation);
// Fishing Area location (should be a statistical location)
if (statisticalLocationId == null) {
gearUseFeatures.getFishingAreas().remove(fishingArea);
//Nothing to do : a gearUseFeatures.getFishingAreas().clear() has been done before
- if (fishingArea.getRegulationLocation() != null) {
- fishingArea.getRegulationLocation().clear();
+ if (fishingArea.getRegulationLocations() != null) {
+ fishingArea.getRegulationLocations().clear();
}
} else if (statisticalLocationId != null) {
fishingArea.setLocation(load(LocationImpl.class, statisticalLocationId));
@@ -1388,10 +1390,9 @@
for (String vesselCode : vesselCodes) {
OperationVesselAssociation ova = null;
- OperationVesselAssociationPK ovaPK =
- OperationVesselAssociationPK.Factory.newInstance();
+ OperationVesselAssociationPK ovaPK = new OperationVesselAssociationPK();
ovaPK.setVessel(load(VesselImpl.class, vesselCode));
- ovaPK.setOperation(target);
+ ovaPK.setOperation((OperationImpl) target);
// If vessel is equal as cruise vessel : do note store any VesselOperationAssociation entity
if (vesselCode.equals(target.getVessel().getCode())) {
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -26,7 +26,6 @@
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import org.springframework.cache.annotation.CacheEvict;
import java.util.List;
@@ -54,7 +53,6 @@
* @see #getProtocol()
* @since 2.6
*/
- @CacheEvict(value = {"species", "referentSpecies", "referentSpeciesById", "referentSpeciesByIdVernacular"}, allEntries = true)
void setProtocol(TuttiProtocol protocol);
boolean isProtocolExist(String id);
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -25,7 +25,6 @@
*/
import com.google.common.collect.Lists;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols;
@@ -34,10 +33,12 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
@@ -61,6 +62,9 @@
public static TuttiProtocol sharedProtocol;
+ @Resource(name = "technicalPersistenceService")
+ protected TechnicalPersistenceService technicalService;
+
public TuttiProtocol getProtocol() {
return sharedProtocol;
}
@@ -70,6 +74,19 @@
log.debug("Set shared protocol: " + protocol);
}
sharedProtocol = protocol;
+
+ try {
+ technicalService.clearCache("species");
+ technicalService.clearCache("referentSpecies");
+ technicalService.clearCache("referentSpeciesById");
+ technicalService.clearCache("referentSpeciesByIdVernacula");
+ } catch (Exception e) {
+
+ //FIXME This
+ if (log.isErrorEnabled()) {
+ log.error("Could not clear caches", e);
+ }
+ }
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -241,7 +241,7 @@
Caracteristic getVerticalOpeningCaracteristic();
- Caracteristic getHorizontalOpeningWingCaracteristic();
+ Caracteristic getHorizontalOpeningWingsCaracteristic();
Caracteristic getHorizontalOpeningDoorCaracteristic();
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -628,8 +628,8 @@
}
@Override
- public Caracteristic getHorizontalOpeningWingCaracteristic() {
- Integer pmfmId = enumeration.PMFM_ID_HORIZONTAL_OPENING_WING;
+ public Caracteristic getHorizontalOpeningWingsCaracteristic() {
+ Integer pmfmId = enumeration.PMFM_ID_HORIZONTAL_OPENING_WINGS;
Caracteristic result = thisService.getCaracteristic(pmfmId);
return result;
}
@@ -772,7 +772,8 @@
null,
source.getInternationalRegistrationCode(),
registrationLocationId, source.getName(),
- vesselTypeId);
+ vesselTypeId,
+ true);
// Fill the result bean
Vessel result = Vessels.newVessel();
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -30,6 +30,8 @@
*/
void clearAllCaches();
+ void clearCache(String cacheName);
+
/**
* To invoke the given call code.
* <p/>
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TechnicalPersistenceServiceImpl.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -5,11 +5,14 @@
import fr.ifremer.adagio.core.dao.technical.VersionNotFoundException;
import fr.ifremer.adagio.core.service.technical.CacheService;
import fr.ifremer.adagio.core.service.technical.sanity.DatabaseSanityService;
+import net.sf.ehcache.Ehcache;
+import net.sf.ehcache.Status;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.jaxx.application.ApplicationTechnicalException;
import org.nuiton.util.Version;
import org.nuiton.util.VersionUtil;
+import org.springframework.cache.Cache;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -97,4 +100,15 @@
public void clearAllCaches() {
cacheService.clearAllCaches();
}
+
+ @Override
+ public void clearCache(String cacheName) {
+ Cache cache = cacheService.getCache(cacheName);
+ if (cache != null) {
+ Ehcache nativeCache = (Ehcache) cache.getNativeCache();
+ if (Status.STATUS_ALIVE.equals(nativeCache.getStatus())) {
+ cacheService.clearCache(cacheName);
+ }
+ }
+ }
}
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiEnumerationFile.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -44,265 +44,265 @@
*/
public class TuttiEnumerationFile {
- @Value("${GearClassificationId.SCIENTIFIC_CRUISE}")
+ @Value("${adagio.enumeration.GearClassificationId.SCIENTIFIC_CRUISE}")
public final Integer GEAR_CLASSIFICIATION_ID_SCIENTIFIC = null;
- @Value("${GearClassificationId.FAO}")
+ @Value("${adagio.enumeration.GearClassificationId.FAO}")
public final Integer GEAR_CLASSIFICIATION_ID_FISHING = null;
- @Value("${LocationClassificationId.TERRITORIAL}")
+ @Value("${adagio.enumeration.LocationClassificationId.TERRITORIAL}")
public final Integer LOCATION_CLASSIFICATION_ID_TERRITORIAL = null;
- @Value("${LocationClassificationId.SECTOR}")
+ @Value("${adagio.enumeration.LocationClassificationId.SECTOR}")
public final Integer LOCATION_CLASSIFICATION_ID_SECTOR = null;
- @Value("${LocationLabel.FRANCE}")
+ @Value("${adagio.enumeration.LocationLabel.FRANCE}")
public final String LOCATION_LABEL_DEFAULT_COUNTRY = null;
- @Value("${LocationLevelId.PAYS_ISO3}")
+ @Value("${adagio.enumeration.LocationLevelId.PAYS_ISO3}")
public final Integer LOCATION_LEVEL_ID_COUNTRY = null;
- @Value("${LocationLevelId.PORT}")
+ @Value("${adagio.enumeration.LocationLevelId.PORT}")
public final Integer LOCATION_LEVEL_ID_HARBOUR = null;
- @Value("${LocationLevelId.LOCALITE}")
+ @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_LOCALITE}")
public final Integer LOCATION_LEVEL_ID_LOCALITE = null;
- @Value("${LocationLevelId.PROGRAM}")
+ @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_PROGRAM}")
public final Integer LOCATION_LEVEL_ID_PROGRAM = null;
- @Value("${LocationLevelId.STRATA}")
+ @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_STRATA}")
public final Integer LOCATION_LEVEL_ID_STRATA = null;
- @Value("${LocationLevelId.SUB_STRATA}")
+ @Value("${adagio.enumeration.LocationLevelId.SCIENTIFIC_CRUISE_SUB_STRATA}")
public final Integer LOCATION_LEVEL_ID_SUB_STRATA = null;
- @Value("${ParameterCode.AGE}")
+ @Value("${adagio.enumeration.ParameterCode.AGE}")
public final String PARAMETER_CODE_AGE = null;
- @Value("${ParameterCode.WEIGHT}")
+ @Value("${adagio.enumeration.ParameterCode.WEIGHT}")
public final String PARAMETER_CODE_WEIGHT = null;
- @Value("${PmfmId.SIZE_CATEGORY}")
+ @Value("${adagio.enumeration.PmfmId.SIZE_CATEGORY}")
public final Integer PMFM_ID_SIZE_CATEGORY = null;
- @Value("${PmfmId.SEX}")
+ @Value("${adagio.enumeration.PmfmId.SEX}")
public final Integer PMFM_ID_SEX = null;
- @Value("${PmfmId.SORTED_UNSORTED}")
+ @Value("${adagio.enumeration.PmfmId.SORTED_UNSORTED}")
public final Integer PMFM_ID_SORTED_UNSORTED = null;
- @Value("${PmfmId.MATURITY}")
+ @Value("${adagio.enumeration.PmfmId.MATURITY}")
public final Integer PMFM_ID_MATURITY = null;
- @Value("${PmfmId.MARINE_LITTER_TYPE}")
+ @Value("${adagio.enumeration.PmfmId.MARINE_LITTER_TYPE}")
public final Integer PMFM_ID_MARINE_LITTER_TYPE = null;
- @Value("${PmfmId.MARINE_LITTER_SIZE_CATEGORY}")
+ @Value("${adagio.enumeration.PmfmId.MARINE_LITTER_SIZE_CATEGORY}")
public final Integer PMFM_ID_MARINE_LITTER_SIZE_CATEGORY = null;
- @Value("${PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE}")
+ @Value("${adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE}")
public final Integer PMFM_ID_SORTING_TYPE = null;
- @Value("${PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE_2}")
+ @Value("${adagio.enumeration.PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE_2}")
public final Integer PMFM_ID_SORTING_TYPE_2 = null;
- @Value("${UnitId.NONE}")
+ @Value("${adagio.enumeration.UnitId.NONE}")
public final Integer UNIT_ID_NONE = null;
- @Value("${UserProfilId.OBSERVER}")
+ @Value("${adagio.enumeration.UserProfilId.OBSERVER}")
public final Integer USER_PROFIL_ID_OBSERVER = null;
- @Value("${UserProfilId.PROJECT_MEMBER}")
+ @Value("${adagio.enumeration.UserProfilId.PROJECT_MEMBER}")
public final Integer USER_PROFIL_ID_PROJECT_MEMBER = null;
- @Value("${UserProfilId.USER}")
+ @Value("${adagio.enumeration.UserProfilId.USER}")
public final Integer USER_PROFIL_ID_USER = null;
- @Value("${UserProfilId.DEPARTEMENT_PREFIX}")
+ @Value("${adagio.enumeration.UserProfilId.DEPARTEMENT_PREFIX}")
public final String USER_PROFIL_ID_DEPARTEMENT_PREFIX = null;
- @Value("${VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL}")
+ @Value("${adagio.enumeration.VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL}")
public final Integer VESSEL_TYPE_ID_SCIENTIFIC = null;
- @Value("${VesselTypeId.FISHING_VESSEL}")
+ @Value("${adagio.enumeration.VesselTypeId.FISHING_VESSEL}")
public final Integer VESSEL_TYPE_ID_FISHING = null;
- @Value("${LocationLevelId.RECTANGLE_STATISTIQUE_MED}")
- public final Integer RECTANGLE_STATISTIQUE_MED = null;
+// @Value("${adagio.enumeration.LocationLevelId.RECTANGLE_STATISTIQUE_MED}")
+// public final Integer RECTANGLE_STATISTIQUE_MED = null;
- @Value("${LocationLevelId.RECTANGLE_STATISTIQUE}")
+ @Value("${adagio.enumeration.LocationLevelId.RECTANGLE_STATISTIQUE}")
public final Integer RECTANGLE_STATISTIQUE = null;
- @Value("${QualitativeValueId.SORTED_VRAC}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTED_VRAC}")
public final Integer QUALITATIVE_VRAC_ID = null;
- @Value("${QualitativeValueId.SORTED_HORS_VRAC}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTED_HORS_VRAC}")
public final Integer QUALITATIVE_HORS_VRAC_ID = null;
- @Value("${QualitativeValueId.UNSORTED}")
+ @Value("${adagio.enumeration.QualitativeValueId.UNSORTED}")
public final Integer QUALITATIVE_UNSORTED_ID = null;
- @Value("${QualitativeValueId.SEX_MALE}")
+ @Value("${adagio.enumeration.QualitativeValueId.SEX_MALE}")
public final Integer QUALITATIVE_SEX_MALE_ID = null;
- @Value("${QualitativeValueId.SEX_FEMALE}")
+ @Value("${adagio.enumeration.QualitativeValueId.SEX_FEMALE}")
public final Integer QUALITATIVE_SEX_FEMALE_ID = null;
- @Value("${QualitativeValueId.SEX_UNDEFINED}")
+ @Value("${adagio.enumeration.QualitativeValueId.SEX_UNDEFINED}")
public final Integer QUALITATIVE_SEX_UNDEFINED_ID = null;
- @Value("${QualitativeValueId.MATURITY_1}")
+ @Value("${adagio.enumeration.QualitativeValueId.MATURITY_1}")
public final Integer QUALITATIVE_MATURITY_1_ID = null;
- @Value("${QualitativeValueId.MATURITY_2}")
+ @Value("${adagio.enumeration.QualitativeValueId.MATURITY_2}")
public final Integer QUALITATIVE_MATURITY_2_ID = null;
- @Value("${QualitativeValueId.MATURITY_3}")
+ @Value("${adagio.enumeration.QualitativeValueId.MATURITY_3}")
public final Integer QUALITATIVE_MATURITY_3_ID = null;
- @Value("${QualitativeValueId.MATURITY_4}")
+ @Value("${adagio.enumeration.QualitativeValueId.MATURITY_4}")
public final Integer QUALITATIVE_MATURITY_4_ID = null;
- @Value("${QualitativeValueId.MATURITY_5}")
+ @Value("${adagio.enumeration.QualitativeValueId.MATURITY_5}")
public final Integer QUALITATIVE_MATURITY_5_ID = null;
- @Value("${QualitativeValueId.SIZE_SMALL}")
+ @Value("${adagio.enumeration.QualitativeValueId.SIZE_SMALL}")
public final Integer QUALITATIVE_SIZE_SMALL_ID = null;
- @Value("${QualitativeValueId.SIZE_MEDIUM}")
+ @Value("${adagio.enumeration.QualitativeValueId.SIZE_MEDIUM}")
public final Integer QUALITATIVE_SIZE_MEDIUM_ID = null;
- @Value("${QualitativeValueId.SIZE_BIG}")
+ @Value("${adagio.enumeration.QualitativeValueId.SIZE_BIG}")
public final Integer QUALITATIVE_SIZE_BIG_ID = null;
- @Value("${QualitativeValueId.SORTING_TYPE_SPECIES}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_SPECIES}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_SPECIES = null;
- @Value("${QualitativeValueId.SORTING_TYPE_BENTHOS}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_BENTHOS}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_BENTHOS = null;
- @Value("${QualitativeValueId.SORTING_TYPE_MARINE_LITTER}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_MARINE_LITTER}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_MARINE_LITTER = null;
- @Value("${QualitativeValueId.SORTING_TYPE_2_ALIVE_NOT_ITEMIZED}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_ALIVE_NOT_ITEMIZED}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_NOT_ITEMIZED = null;
- @Value("${QualitativeValueId.SORTING_TYPE_2_INERT}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_INERT}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_2_INERT = null;
- @Value("${QualitativeValueId.SORTING_TYPE_2_ALIVE_ITEMIZED}")
+ @Value("${adagio.enumeration.QualitativeValueId.SORTING_TYPE_2_ALIVE_ITEMIZED}")
public final Integer QUALITATIVE_ID_SORTING_TYPE_2_ALIVE_ITEMIZED = null;
- @Value("${StatusCode.ENABLE}")
+ @Value("${adagio.enumeration.StatusCode.ENABLE}")
public final String STATUS_VALID_CODE = null;
- @Value("${StatusCode.TEMPORARY}")
+ @Value("${adagio.enumeration.StatusCode.TEMPORARY}")
public final String STATUS_TEMPORARY_CODE = null;
- @Value("${PersonId.UNKNOWN_RECORDER_PERSON}")
+ @Value("${adagio.enumeration.PersonId.UNKNOWN_RECORDER_PERSON}")
public final Integer PERSON_ID_UNKNOWN_RECORDER_PERSON = null;
- @Value("${QualityFlagCode.NOTQUALIFIED}")
+ @Value("${adagio.enumeration.QualityFlagCode.NOTQUALIFIED}")
public final String QUALITY_FLAG_CODE_NOT_QUALIFIED = null;
- @Value("${QualityFlagCode.DOUBTFUL}")
+ @Value("${adagio.enumeration.QualityFlagCode.DOUBTFUL}")
public final String QUALITY_FLAG_CODE_DOUBTFUL = null;
- @Value("${PmfmId.STATION_NUMBER}")
+ @Value("${adagio.enumeration.PmfmId.STATION_NUMBER}")
public final Integer PMFM_ID_STATION_NUMBER = null;
- @Value("${PmfmId.TRAWL_DISTANCE}")
+ @Value("${adagio.enumeration.PmfmId.TRAWL_DISTANCE}")
public final Integer PMFM_ID_TRAWL_DISTANCE = null;
- @Value("${PmfmId.RECTILINEAR_OPERATION}")
+ @Value("${adagio.enumeration.PmfmId.RECTILINEAR_OPERATION}")
public final Integer PMFM_ID_RECTILINEAR_OPERATION = null;
- @Value("${QualitativeValueId.RECTILINEAR_OPERATION_YES}")
+ @Value("${adagio.enumeration.QualitativeValueId.RECTILINEAR_OPERATION_YES}")
public final Integer QUALITATIVE_RECTILINEAR_OPERATION_YES = null;
- @Value("${QualitativeValueId.RECTILINEAR_OPERATION_NO}")
+ @Value("${adagio.enumeration.QualitativeValueId.RECTILINEAR_OPERATION_NO}")
public final Integer QUALITATIVE_RECTILINEAR_OPERATION_NO = null;
- @Value("${PmfmId.HAUL_VALID}")
+ @Value("${adagio.enumeration.PmfmId.HAUL_VALID}")
public final Integer PMFM_ID_HAUL_VALID = null;
- @Value("${QualitativeValueId.HAUL_VALID_YES}")
+ @Value("${adagio.enumeration.QualitativeValueId.HAUL_VALID_YES}")
public final Integer QUALITATIVE_HAUL_VALID_YES = null;
- @Value("${QualitativeValueId.HAUL_VALID_NO}")
+ @Value("${adagio.enumeration.QualitativeValueId.HAUL_VALID_NO}")
public final Integer QUALITATIVE_HAUL_VALID_NO = null;
- @Value("${PmfmId.MULTIRIG_NUMBER}")
+ @Value("${adagio.enumeration.PmfmId.MULTIRIG_NUMBER}")
public final Integer PMFM_ID_MULTIRIG_NUMBER = null;
- @Value("${PmfmId.MULTIRIG_AGGREGATION}")
+ @Value("${adagio.enumeration.PmfmId.MULTIRIG_AGGREGATION}")
public final Integer PMFM_ID_MULTIRIG_AGGREGATION = null;
- @Value("${PmfmId.WEIGHT_MEASURED}")
+ @Value("${adagio.enumeration.PmfmId.WEIGHT_MEASURED}")
public final Integer PMFM_ID_WEIGHT_MEASURED = null;
- @Value("${DepartmentId.UNKNOWN_RECORDER_DEPARTMENT}")
+ @Value("${adagio.enumeration.DepartmentId.UNKNOWN_RECORDER_DEPARTMENT}")
public final Integer DEPARTMENT_ID_UNKNOWN_RECORDER_DEPARTMENT = null;
- @Value("${PmfmId.AGE}")
+ @Value("${adagio.enumeration.PmfmId.AGE}")
public final Integer PMFM_ID_AGE = null;
- @Value("${PmfmId.SURVEY_PART}")
+ @Value("${adagio.enumeration.PmfmId.SURVEY_PART}")
public final Integer PMFM_ID_SURVEY_PART = null;
- @Value("${PmfmId.VERTICAL_OPENING}")
+ @Value("${adagio.enumeration.PmfmId.VERTICAL_OPENING}")
public final Integer PMFM_ID_VERTICAL_OPENING = null;
- @Value("${PmfmId.HORIZONTAL_OPENING_WING}")
- public final Integer PMFM_ID_HORIZONTAL_OPENING_WING = null;
+ @Value("${adagio.enumeration.PmfmId.HORIZONTAL_OPENING_WINGS}")
+ public final Integer PMFM_ID_HORIZONTAL_OPENING_WINGS = null;
- @Value("${PmfmId.HORIZONTAL_OPENING_DOOR}")
+ @Value("${adagio.enumeration.PmfmId.HORIZONTAL_OPENING_DOOR}")
public final Integer PMFM_ID_HORIZONTAL_OPENING_DOOR = null;
- @Value("${PmfmId.DEAD_OR_ALIVE}")
+ @Value("${adagio.enumeration.PmfmId.DEAD_OR_ALIVE}")
public final Integer PMFM_ID_DEAD_OR_ALIVE = null;
- @Value("${ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
+ @Value("${adagio.enumeration.ProgramCode.SCIENTIFIC_CRUISE_PREFIX}")
public final String PROGRAM_CODE_SCIENTIFIC_CRUISE_PREFIX = null;
- @Value("${TaxonGroupTypeCode.COMMERCIAL_SPECIES}")
+ @Value("${adagio.enumeration.TaxonGroupTypeCode.COMMERCIAL_SPECIES}")
public final String TAXON_GROUP_TYPE_ID_COMMERCIAL_SPECIES = null;
- @Value("${ObjectTypeCode.SCIENTIFIC_CRUISE}")
+ @Value("${adagio.enumeration.ObjectTypeCode.SCIENTIFIC_CRUISE}")
public final String OBJECT_TYPE_SCIENTIFIC_CRUISE = null;
- @Value("${ObjectTypeCode.CATCH_BATCH}")
+ @Value("${adagio.enumeration.ObjectTypeCode.CATCH_BATCH}")
public final String OBJECT_TYPE_CATCH_BATCH = null;
- @Value("${ObjectTypeCode.BATCH}")
+ @Value("${adagio.enumeration.ObjectTypeCode.BATCH}")
public final String OBJECT_TYPE_BATCH = null;
- @Value("${ObjectTypeCode.OPERATION}")
+ @Value("${adagio.enumeration.ObjectTypeCode.OPERATION}")
public final String OBJECT_TYPE_OPERATION = null;
- @Value("${ObjectTypeCode.SAMPLE}")
+ @Value("${adagio.enumeration.ObjectTypeCode.SAMPLE}")
public final String OBJECT_TYPE_SAMPLE = null;
- @Value("${VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER}")
+ @Value("${adagio.enumeration.VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER}")
public final Integer VESSEL_PERSON_ROLE_ID_SCIENTIFIC_CRUISE_MANAGER = null;
- @Value("${VesselPersonRoleId.SORT_ROOM_MANAGER}")
+ @Value("${adagio.enumeration.VesselPersonRoleId.SORT_ROOM_MANAGER}")
public final Integer VESSEL_PERSON_ROLE_ID_SORT_ROOM_MANAGER = null;
- @Value("${VesselPersonRoleId.RECORDER_PERSON}")
+ @Value("${adagio.enumeration.VesselPersonRoleId.RECORDER_PERSON}")
public final Integer VESSEL_PERSON_ROLE_ID_RECORDER_PERSON = null;
- @Value("${TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE}")
+ @Value("${adagio.enumeration.TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE}")
public final Integer TRANSCRIBING_TYPE_ID_REFTAX = null;
- @Value("${TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE}")
+ @Value("${adagio.enumeration.TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE}")
public final Integer TRANSCRIBING_TYPE_ID_VERNACULAIRE = null;
- @Value("${MatrixId.PRODUCT_BATCH}")
+ @Value("${adagio.enumeration.MatrixId.PRODUCT_BATCH}")
public final Integer MATRIX_ID_PRODUCT_BATCH = null;
- @Value("${PmfmId.ID_PSFM}")
+ @Value("${adagio.enumeration.PmfmId.ID_PSFM}")
public final Integer PMFM_ID_ID_PSFM = null;
protected Set<Integer> propertedPmfmIds;
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -146,7 +146,7 @@
return service;
}
- public static void close() {
+ public static void shutdownTutti() {
instance().shutdown();
}
}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -32,7 +32,6 @@
import com.google.common.io.Files;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.TuttiConfigurationOption;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
@@ -76,10 +75,10 @@
public static long BUILD_TIMESTAMP = System.nanoTime();
- private static ClassLoader oldClassLoader;
+// private static ClassLoader oldClassLoader;
+//
+// protected RessourceClassLoader loader;
- protected RessourceClassLoader loader;
-
private File resourceDirectory;
private TuttiConfiguration config;
@@ -156,10 +155,6 @@
this.destroyResources = destroyResources;
}
- public void updateSchema(TuttiPersistence persistenceService) {
-
- }
-
@Override
public Statement apply(final Statement base, final Description description) {
@@ -181,11 +176,10 @@
public void prepareConfig(ApplicationConfig applicationConfig,
File resourceDirectory) {
- applicationConfig.loadDefaultOptions(
- TuttiConfigurationOption.values());
- applicationConfig.setDefaultOption(
- "tutti.data.directory",
- new File(resourceDirectory, "data").getAbsolutePath());
+ TuttiConfiguration.getDefaultApplicationConfig(applicationConfig);
+
+ applicationConfig.setDefaultOption(TuttiConfigurationOption.DATA_DIRECTORY.getKey(),
+ new File(resourceDirectory, "data").getAbsolutePath());
}
public File copyClassPathResource(String path, String destinationName) throws IOException {
@@ -225,11 +219,6 @@
resourceDirectory = FileUtil.getTestSpecificDirectory(testClass, "", null, BUILD_TIMESTAMP);
- loader = new RessourceClassLoader(testClass.getClassLoader());
-
- oldClassLoader = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(loader);
-
ConverterUtil.deregister();
ConverterUtil.initConverters();
@@ -313,16 +302,12 @@
Preconditions.checkState("true".equals(readonly), "readonly property must be at true value in read mode test in db confg: " + dbConfig);
}
- config.initConfig(loader);
+ config.initConfig();
if (log.isInfoEnabled()) {
log.info("Use db: " + config.getJdbcUrl());
}
- if (log.isDebugEnabled()) {
- log.debug("Use conf.properties at " + config.getDbConfigurationPath());
- }
-
if (beanFactoryReferenceLocation != null) {
TuttiPersistenceServiceLocator.initTutti(
beanFactoryReferenceLocation,
@@ -416,15 +401,15 @@
}
}
- // push back old classLoader
- if (oldClassLoader != null) {
- Thread.currentThread().setContextClassLoader(oldClassLoader);
- }
+// // push back old classLoader
+// if (oldClassLoader != null) {
+// Thread.currentThread().setContextClassLoader(oldClassLoader);
+// }
}
protected void closeSpring() {
- TuttiPersistenceServiceLocator.close();
+ TuttiPersistenceServiceLocator.shutdownTutti();
if (beanFactoryReferenceLocation != null) {
Added: trunk/tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml (rev 0)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ #%L
+ Tutti :: Persistence API
+ $Id$
+ $HeadURL: http://svn.forge.codelutin.com/svn/tutti/trunk/tutti-persistence/src/main/r… $
+ %%
+ Copyright (C) 2012 Ifremer
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero 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 Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+
+ <bean id="adagioConfiguration" class="fr.ifremer.adagio.core.config.AdagioConfiguration"
+ factory-method="getInstance" depends-on="tuttiConfiguration">
+ </bean>
+
+ <bean id="tuttiConfiguration" class="fr.ifremer.tutti.TuttiConfiguration"
+ factory-method="getInstance">
+ </bean>
+
+
+</beans>
Property changes on: trunk/tutti-persistence/src/main/resources/applicationContext-conf-tutti.xml
___________________________________________________________________
Added: svn:mime-type
+ text/xml
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/applicationContext-service-tutti.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -47,26 +47,26 @@
<bean id="tuttiProgramsCache" parent="abstractEternalCache">
<property name="cacheName" value="programs" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiProgramZonesCache" parent="abstractEternalCache">
<property name="cacheName" value="programZones" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="countriesCache" parent="abstractEternalCache">
<property name="cacheName" value="countries" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="harboursCache" parent="abstractEternalCache">
<property name="cacheName" value="harbours" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPmfmsCache" parent="abstractEternalCache">
@@ -90,56 +90,56 @@
<bean id="tuttiFishingVesselsCache" parent="abstractEternalCache">
<property name="cacheName" value="fishingVessels" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiFishingVesselByCodeCache" parent="abstractEternalCache">
<property name="cacheName" value="vesselByCode" />
- <property name="maxElementsInMemory" value="40000"/>
- <property name="maxElementsOnDisk" value="40000"/>
+ <!--<property name="maxElementsInMemory" value="40000"/>-->
+ <!--<property name="maxElementsOnDisk" value="40000"/>-->
</bean>
<bean id="tuttiSpeciesCache" parent="abstractEternalCache">
<property name="cacheName" value="species" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiReferentSpeciesCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpecies" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiReferentSpeciesByIdCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpeciesById" />
- <property name="maxElementsInMemory" value="20000"/>
- <property name="maxElementsOnDisk" value="20000"/>
+ <!--<property name="maxElementsInMemory" value="20000"/>-->
+ <!--<property name="maxElementsOnDisk" value="20000"/>-->
</bean>
<bean id="tuttiReferentSpeciesByIdVenacularCache" parent="abstractEternalCache">
<property name="cacheName" value="referentSpeciesByIdVernacular" />
- <property name="maxElementsInMemory" value="20000"/>
- <property name="maxElementsOnDisk" value="20000"/>
+ <!--<property name="maxElementsInMemory" value="20000"/>-->
+ <!--<property name="maxElementsOnDisk" value="20000"/>-->
</bean>
<bean id="tuttiGearsCache" parent="abstractEternalCache">
<property name="cacheName" value="gears" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPersonsCache" parent="abstractEternalCache">
<property name="cacheName" value="persons" />
- <property name="maxElementsInMemory" value="1"/>
- <property name="maxElementsOnDisk" value="1"/>
+ <!--<property name="maxElementsInMemory" value="1"/>-->
+ <!--<property name="maxElementsOnDisk" value="1"/>-->
</bean>
<bean id="tuttiPersonByIdCache" parent="abstractEternalCache">
<property name="cacheName" value="personById" />
- <property name="maxElementsInMemory" value="1000"/>
- <property name="maxElementsOnDisk" value="1000"/>
+ <!--<property name="maxElementsInMemory" value="1000"/>-->
+ <!--<property name="maxElementsOnDisk" value="1000"/>-->
</bean>
</beans>
\ No newline at end of file
Modified: trunk/tutti-persistence/src/main/resources/ehcache.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/ehcache.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/ehcache.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -62,19 +62,27 @@
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
- overflowToDisk="true"/>
+ overflowToDisk="true" />
- <cache name="org.hibernate.cache.UpdateTimestampsCache"
+ <cache name="org.hibernate.cache.StandardQueryCache"
eternal="false"
maxElementsInMemory="10000"
timeToIdleSeconds="300"
timeToLiveSeconds="300"
overflowToDisk="false"/>
- <cache name="org.hibernate.cache.StandardQueryCache"
+
+ <cache name="org.hibernate.cache.spi.UpdateTimestampsCache"
eternal="false"
maxElementsInMemory="10000"
timeToIdleSeconds="300"
timeToLiveSeconds="300"
overflowToDisk="false"/>
+ <cache name="org.hibernate.cache.internal.StandardQueryCache"
+ eternal="false"
+ maxElementsInMemory="10000"
+ timeToIdleSeconds="300"
+ timeToLiveSeconds="300"
+ overflowToDisk="false"/>
+
</ehcache>
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-04-21 13:27:20 UTC (rev 1718)
@@ -21,11 +21,13 @@
tutti.config.option.persistence.db.cache.directory.description=
tutti.config.option.persistence.db.configurationPath.description=
tutti.config.option.persistence.db.directory.description=
+tutti.config.option.persistence.db.enumeration.path=
tutti.config.option.persistence.db.enumerationPath.description=
tutti.config.option.persistence.db.name.description=
tutti.config.option.persistence.db.protocol.directory.description=
tutti.config.option.persistence.hibernate.dialect.description=
tutti.config.option.persistence.hibernate.formatSql.description=
+tutti.config.option.persistence.hibernate.queriesFile.description=
tutti.config.option.persistence.hibernate.showSql.description=
tutti.config.option.persistence.hibernate.useSqlComment.description=
tutti.config.option.persistence.jdbc.driver.description=
@@ -108,11 +110,3 @@
tutti.persistence.loader.error=
tutti.persistence.protocol.delete.error=
tutti.persistence.protocol.fromFile.error=
-tutti.persistence.synchronizeReferential.prepare.step1=
-tutti.persistence.synchronizeReferential.prepare.step2=
-tutti.persistence.synchronizeReferential.prepare.step3=
-tutti.persistence.synchronizeReferential.prepare.step4=
-tutti.persistence.synchronizeReferential.synchronize.step1=
-tutti.persistence.synchronizeReferential.synchronize.step2=
-tutti.persistence.synchronizeReferential.synchronizeTable=
-tutti.persistence.tableMetadata.instanciation.error=
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-04-21 13:27:20 UTC (rev 1718)
@@ -21,11 +21,13 @@
tutti.config.option.persistence.db.cache.directory.description=Répertoire où sont stockées les caches de persistance
tutti.config.option.persistence.db.configurationPath.description=Chemin du fichier de configuration d'Adagio
tutti.config.option.persistence.db.directory.description=Répertoire où est la base de données
+tutti.config.option.persistence.db.enumeration.path=
tutti.config.option.persistence.db.enumerationPath.description=Chemin du fichier de correspondance des constantes
tutti.config.option.persistence.db.name.description=Nom du fichier de la base de données
tutti.config.option.persistence.db.protocol.directory.description=Répertoire où sont conservés les protocoles
tutti.config.option.persistence.hibernate.dialect.description=Le dialecte hibernate utilisée pour communiquer avec la base de données
tutti.config.option.persistence.hibernate.formatSql.description=Option pour ajouter les commentaires dans les requêtes sql générées
+tutti.config.option.persistence.hibernate.queriesFile.description=Option pour changer les requêtes supplémentaires
tutti.config.option.persistence.hibernate.showSql.description=Option pour afficher ou non les requête sql dans les logs
tutti.config.option.persistence.hibernate.useSqlComment.description=Option pour ajouter les commentaires dans les requêtes sql générées
tutti.config.option.persistence.jdbc.driver.description=Le pilote JDBC utilisé pour communiquer avec la base de données
@@ -108,11 +110,3 @@
tutti.persistence.loader.error=Erreur de conversion du dossier %s en URL
tutti.persistence.protocol.delete.error=Erreur lors de la suppression du protocole %1s (fichier %2s)
tutti.persistence.protocol.fromFile.error=Erreur lors de l'import du protocole du fichier %s
-tutti.persistence.synchronizeReferential.prepare.step1=Connexion à la base de synchronisation
-tutti.persistence.synchronizeReferential.prepare.step2=Connexion à la base à synchroniser
-tutti.persistence.synchronizeReferential.prepare.step3=Vérification de la compatibilité des schémas
-tutti.persistence.synchronizeReferential.prepare.step4=Lecture de la table %s
-tutti.persistence.synchronizeReferential.synchronize.step1=Mise à jour de la table %s
-tutti.persistence.synchronizeReferential.synchronize.step2=Sauvegarde des données dans la base locale
-tutti.persistence.synchronizeReferential.synchronizeTable=Mise à jour de la table %s
-tutti.persistence.tableMetadata.instanciation.error=Erreur à l'initialisation de %s
Copied: trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml (from rev 1712, trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml)
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml (rev 0)
+++ trunk/tutti-persistence/src/main/resources/queries-failsafe.hbm.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -0,0 +1,889 @@
+<?xml version="1.0"?>
+<!--
+ #%L
+ Tutti :: Persistence API
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2012 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%
+ -->
+
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+ <!-- ===================================================================== -->
+ <!-- === Requete sur données thématiques [DAT-XXX] === -->
+ <!-- ===================================================================== -->
+
+ <!-- [DAT-01] Get all programs (to list with no detail) -->
+ <query cacheable="true" name="allPrograms">
+ <![CDATA[
+ SELECT
+ p.code,
+ p.name,
+ p.description,
+ l.id,
+ l.label,
+ l.name
+ FROM
+ ProgramImpl p
+ LEFT OUTER JOIN p.locations l
+ WHERE
+ p.code LIKE :codePattern
+ AND (
+ l is null OR (
+ l.locationLevel.id = :locationLevelId
+ AND l.locationClassification.id = :locationClassificationId
+ )
+ )
+ ]]>
+ <query-param name="codePattern" type="java.lang.String"/>
+ <query-param name="locationLevelId" type="java.lang.Integer"/>
+ <query-param name="locationClassificationId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- [DAT-02] Get all cruises for a given program (to list with no detail) -->
+ <query cacheable="true" name="allCruises">
+ <![CDATA[
+ SELECT
+ c.id,
+ c.name,
+ c.departureDateTime
+ FROM
+ ScientificCruiseImpl c
+ WHERE
+ c.program.code = :programCode
+ ORDER BY
+ c.departureDateTime desc
+ ]]>
+ <query-param name="programCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [DAT-03] Get a detail program -->
+ <query cacheable="true" name="program">
+ <![CDATA[
+ SELECT
+ p.code,
+ p.name,
+ p.description,
+ l.id,
+ l.label,
+ l.name
+ FROM
+ ProgramImpl p
+ LEFT OUTER JOIN p.locations l
+ WHERE
+ p.code = :programCode
+ AND (
+ l is null OR (
+ l.locationLevel.id = :locationLevelId
+ AND l.locationClassification.id = :locationClassificationId
+ )
+ )
+ ORDER BY l.label
+ ]]>
+ <query-param name="programCode" type="java.lang.String"/>
+ <query-param name="locationLevelId" type="java.lang.Integer"/>
+ <query-param name="locationClassificationId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- [DAT-04] Get a detail cruise -->
+ <query cacheable="true" name="cruise">
+ <![CDATA[
+ SELECT
+ ft.departureLocation.id as departureLocationId,
+ ft.returnLocation.id as returnLocationId,
+ sc.program.code AS programCode,
+ sc.name AS name,
+ sc.departureDateTime AS departureDateTime,
+ sc.returnDateTime AS returnDateTime,
+ sc.vessel.code AS vesselCode,
+ mp.id AS managerId,
+ sc.comments AS scientificCruiseComments,
+ (SELECT sm.alphanumericalValue
+ FROM SurveyMeasurementImpl sm
+ WHERE sm.fishingTrip.id=ft.id AND sm.pmfm.id= :pmfmIdSurveyPart
+ ) AS surveyPart
+ FROM
+ ScientificCruiseImpl sc
+ LEFT OUTER JOIN sc.fishingTrips ft
+ LEFT OUTER JOIN sc.managerPerson mp
+ WHERE
+ sc.id = :cruiseId
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="pmfmIdSurveyPart" type="java.lang.Integer"/>
+ </query>
+
+ <!-- [DAT-05] Get all vesselPersonFeatures for a given cruise -->
+ <query cacheable="true" name="allCruiseVesselPersonFeatures">
+ <![CDATA[
+ SELECT
+ vpf.person.id AS personId,
+ vpr.id AS roleId,
+ vpf.rankOrder
+ FROM
+ ScientificCruiseImpl sc
+ JOIN sc.fishingTrips ft
+ JOIN ft.vesselPersonFeatures vpf
+ JOIN vpf.vesselPersonRoles vpr
+ WHERE
+ sc.id = :cruiseId
+ ORDER By vpf.rankOrder
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allCruiseGears">
+ <![CDATA[
+ SELECT
+ gpf.gear.id AS gearId,
+ gpf.rankOrder AS rankOrder,
+ MAX(CASE gpm.pmfm.id
+ WHEN :pmfmIdTrawlNet THEN gpm.numericalValue
+ ELSE 0
+ END) as trawlNet,
+ count(o.id) as operationCount
+ FROM
+ ScientificCruiseImpl sc
+ JOIN sc.fishingTrips ft
+ JOIN ft.gearPhysicalFeatures gpf
+ LEFT OUTER JOIN gpf.gearPhysicalMeasurements gpm
+ LEFT OUTER JOIN gpf.operations o
+ WHERE
+ sc.id = :cruiseId
+ GROUP BY
+ 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>
+
+ <query cacheable="true" name="updateOperationsVessel">
+ <![CDATA[
+ UPDATE FishingOperationImpl o
+ SET o.vessel.id=:vesselId
+ WHERE
+ o IN (
+ FROM FishingOperationImpl fo
+ WHERE fo.fishingTrip.scientificCruise.id=:cruiseId
+ )
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="vesselId" type="java.lang.String"/>
+ </query>
+
+ <query cacheable="true" name="gearCaracteristics">
+ <![CDATA[
+ SELECT
+ gpm
+ FROM
+ ScientificCruiseImpl sc
+ JOIN sc.fishingTrips ft
+ JOIN ft.gearPhysicalFeatures gpf
+ LEFT OUTER JOIN gpf.gearPhysicalMeasurements gpm
+ WHERE
+ sc.id = :cruiseId
+ AND gpf.gear.id = :gearId
+ AND gpf.rankOrder = :rankOrder
+ AND gpm != null
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="gearId" type="java.lang.Integer"/>
+ <query-param name="rankOrder" type="java.lang.Short"/>
+ </query>
+
+ <query cacheable="true" name="allCruiseSecondaryVessels">
+ <![CDATA[
+ SELECT
+ va.operationVesselAssociationPk.vessel.code AS associatedVesselCode
+ FROM
+ ScientificCruiseImpl sc
+ JOIN sc.fishingTrips ft
+ JOIN ft.operations o
+ JOIN o.operationVesselAssociations va
+ WHERE
+ sc.id = :cruiseId
+ GROUP BY
+ va.operationVesselAssociationPk.vessel
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allFishingOperationIds">
+ <![CDATA[
+ SELECT
+ o.id AS id
+ FROM
+ FishingOperationImpl o
+ WHERE
+ o.fishingTrip.scientificCruise.id=:cruiseId
+ ORDER BY
+ o.startDateTime
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allFishingOperations">
+ <![CDATA[
+ SELECT
+ o.id AS id,
+ o.name AS name,
+ o.startDateTime AS startDateTime,
+ (select vum.alphanumericalValue from VesselUseMeasurementImpl vum where vum.vesselUseFeatures.id = vuf.id and vum.pmfm.id=:pmfmIdStationNumber) AS stationNumber,
+ (select gum.alphanumericalValue from GearUseMeasurementImpl gum where gum.gearUseFeatures.id = guf.id and gum.pmfm.id=:pmfmIdMultirigAggregation) AS multirigAggregation
+ FROM
+ FishingOperationImpl o
+ LEFT OUTER JOIN o.gearUseFeatures guf
+ LEFT OUTER JOIN guf.gear g
+ LEFT OUTER JOIN o.vesselUseFeatures vuf
+ WHERE
+ o.fishingTrip.scientificCruise.id=:cruiseId
+ ORDER BY
+ o.startDateTime
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="pmfmIdStationNumber" type="java.lang.Integer"/>
+ <query-param name="pmfmIdMultirigAggregation" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allFishingOperationsWithGear">
+ <![CDATA[
+ SELECT
+ g.id AS gearId,
+ guf.rankOrder as gufRankOrder
+ FROM
+ FishingOperationImpl o
+ INNER JOIN o.gearUseFeatures guf
+ LEFT OUTER JOIN guf.gear g
+ WHERE
+ o.fishingTrip.scientificCruise.id=:cruiseId
+ AND g.id in (:gearIds)
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="gearIds" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="updateOperationsGear">
+ <![CDATA[
+ UPDATE GearUseFeaturesImpl guf
+ SET guf.rankOrder=:newRankOrder
+ WHERE
+ guf IN (
+ SELECT
+ guf
+ FROM
+ FishingOperationImpl o
+ INNER JOIN o.gearUseFeatures guf
+ WHERE
+ o.fishingTrip.scientificCruise.id=:cruiseId
+ AND guf.rankOrder= :oldRankOrder
+ AND guf.gear.id= :gearId
+ )
+ ]]>
+ <query-param name="cruiseId" type="java.lang.Integer"/>
+ <query-param name="gearId" type="java.lang.Integer"/>
+ <query-param name="oldRankOrder" type="java.lang.Short"/>
+ <query-param name="newRankOrder" type="java.lang.Short"/>
+ </query>
+
+ <query cacheable="true" name="fishingOperation">
+ <![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,
+ max(g.id) AS gearId,
+ (select vp_start from VesselPositionImpl vp_start where vp_start.operation.id = o.id and vp_start.dateTime = o.startDateTime) AS startVesselPosition,
+ (select vp_end from VesselPositionImpl vp_end where vp_end.operation.id = o.id and vp_end.dateTime = o.endDateTime) AS endVesselPosition,
+ max(case when (rl.locationLevel.id = :locationLevelIdStrata) then rl.id else null end) AS strataId,
+ max(case when (rl.locationLevel.id = :locationLevelIdSubStrata) then rl.id else null end) AS subStrataId,
+ max(case when (rl.locationLevel.id = :locationLevelIdLocalite) then rl.id else null end) AS localiteId,
+ max(o.vessel.code) as vesselCode
+ FROM
+ FishingOperationImpl o
+ INNER JOIN o.gearUseFeatures guf
+ LEFT OUTER JOIN guf.gear g
+ LEFT OUTER JOIN guf.fishingAreas fa
+ LEFT OUTER JOIN fa.regulationLocations fa2rl
+ LEFT OUTER JOIN fa2rl.id.location rl
+ WHERE
+ o.id=:fishingOperationId
+ GROUP BY o.name, guf.rankOrder
+ ]]>
+ <!--LEFT OUTER JOIN o.operationVesselAssociations va-->
+ <!--max(case when (va.isCatchOnOperationVessel = false) then va.id.vessel.code else o.vessel.code end) as vesselCode-->
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="locationLevelIdStrata" type="java.lang.Integer"/>
+ <query-param name="locationLevelIdSubStrata" type="java.lang.Integer"/>
+ <query-param name="locationLevelIdLocalite" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="fishingOperationSecondaryVessel">
+ <![CDATA[
+ SELECT
+ va.operationVesselAssociationPk.vessel.code,
+ va.isCatchOnOperationVessel
+ FROM
+ FishingOperationImpl o
+ LEFT OUTER JOIN o.operationVesselAssociations va
+ WHERE
+ o.id=:fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="fishingOperationRankOrder">
+ <![CDATA[
+ SELECT
+ count(o1.id) + 1 as fishingOperationRankOrder
+ FROM
+ FishingOperationImpl o1,
+ FishingOperationImpl o2
+ WHERE
+ o1.fishingTrip.id = o2.fishingTrip.id
+ AND o1.startDateTime < o2.startDateTime
+ AND o2.id = :fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="fishingOperationVesselUseFeatures">
+ <![CDATA[
+ SELECT
+ vum.pmfm.id as pmfmId,
+ vum.numericalValue as numericalValue,
+ vum.alphanumericalValue as alphanumericalValue,
+ vum.qualitativeValue.id as qualitativeValueId
+ from
+ VesselUseFeaturesImpl vuf
+ join vuf.vesselUseMeasurements vum
+ WHERE
+ vuf.operation.id = :fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="fishingOperationGearUseFeatures">
+ <![CDATA[
+ SELECT
+ gum.pmfm.id as pmfmId,
+ gum.numericalValue as numericalValue,
+ gum.alphanumericalValue as alphanumericalValue,
+ gum.qualitativeValue.id as qualitativeValueId
+ from
+ GearUseFeaturesImpl guf
+ join guf.gearUseMeasurements gum
+ WHERE
+ guf.operation.id = :fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- Get all vesselPersonFeatures for a given fishing operation -->
+ <query cacheable="true" name="fishingOperationVesselPersonFeatures">
+ <![CDATA[
+ SELECT
+ vpf.person.id AS personId,
+ 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>
+
+ <query cacheable="true" name="updateFishingOperationCatchBatch">
+ <![CDATA[
+ UPDATE FishingOperationImpl o
+ SET o.catchBatch.id=:catchBatchId
+ WHERE
+ o.id=:fishingOperationId
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="catchBatchId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allFishingOperationSamplesWithoutBatch">
+ <![CDATA[
+ SELECT
+ s.id AS id,
+ s.referenceTaxon.id AS referenceTaxon,
+ s.comments AS comment
+ FROM
+ SampleImpl s
+ WHERE
+ s.fishingOperation.id= :fishingOperationId
+ AND s.batch IS NULL
+ ORDER BY
+ s.id
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allFishingOperationSamplesWithBatch">
+ <![CDATA[
+ SELECT
+ s.id AS id,
+ s.referenceTaxon.id AS referenceTaxon,
+ s.comments AS comment
+ FROM
+ SampleImpl s
+ WHERE
+ s.fishingOperation.id= :fishingOperationId
+ AND s.batch.id = :batchId
+ ORDER BY
+ s.id
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="batchId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="sampleMeasurements">
+ <![CDATA[
+ SELECT
+ sm.pmfm.id as pmfmId,
+ sm.numericalValue as numericalValue,
+ sm.alphanumericalValue as alphanumericalValue,
+ sm.qualitativeValue.id as qualitativeValueId
+ from
+ SampleMeasurementImpl sm
+ WHERE
+ sm.sample.id = :sampleId
+ ]]>
+ <query-param name="sampleId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="catchBatch">
+ <![CDATA[
+ SELECT
+ cb.id AS catchBatchId,
+ cbQm.numericalValue as totalWeight,
+ b1.id AS id1,
+ b1.samplingRatioText as samplingRatioText1,
+ (select qm.numericalValue from QuantificationMeasurementImpl qm where qm.batch.id=b1.id and qm.isReferenceQuantification=true) AS weight1,
+ (select sm.qualitativeValue.id from SortingMeasurementImpl sm where sm.sortingBatch.id=b1.id and sm.pmfm.id=:pmfmIdSorted) AS qv2,
+ b2.id AS id2,
+ b2.samplingRatioText AS samplingRatioText2,
+ (select qm.numericalValue from QuantificationMeasurementImpl qm where qm.batch.id=b2.id and qm.isReferenceQuantification=true) AS weight2,
+ (select sm.qualitativeValue.id from SortingMeasurementImpl sm where sm.sortingBatch.id=b2.id and sm.pmfm.id=:pmfmIdSortingType) AS qv2
+ FROM
+ CatchBatchImpl cb
+ INNER JOIN cb.childBatchs b1
+ LEFT OUTER JOIN b1.childBatchs b2
+ LEFT OUTER JOIN cb.quantificationMeasurements cbQm
+ WHERE
+ cb.fishingOperation.id = :fishingOperationId
+ AND (
+ cbQm is null
+ OR cbQm.isReferenceQuantification=true
+ )
+ ORDER BY b1.id, b2.id
+ ]]>
+ <query-param name="fishingOperationId" type="java.lang.Integer"/>
+ <query-param name="pmfmIdSorted" type="java.lang.Integer"/>
+ <query-param name="pmfmIdSortingType" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allSpeciesBatchFrequency">
+ <![CDATA[
+ SELECT
+ b.id as batchId,
+ b.individualCount AS individualCount,
+ qm.numericalValue AS weight,
+ b.comments AS comments,
+ sm.pmfm.id AS pmfmId,
+ sm.numericalValue AS numValue
+ FROM
+ SortingBatchImpl b
+ LEFT OUTER JOIN b.sortingMeasurements sm
+ LEFT OUTER JOIN b.quantificationMeasurements qm
+ WHERE
+ b.parentBatch.id=:parentBatchId
+ AND (
+ qm is null
+ OR qm.isReferenceQuantification=true
+ )
+ AND sm.numericalValue is not null
+ AND sm.pmfm.parameter.isAlphanumeric=false
+ AND sm.pmfm.parameter.isQualitative=false
+ ORDER BY sm.numericalValue
+ ]]>
+ <query-param name="parentBatchId" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="allAttachment">
+ <![CDATA[
+ SELECT
+ m.objectType.code as attachmentObjectType,
+ m.objectId AS attachmentObjectId,
+ m.id AS attachmentId,
+ m.path AS attachmentPath,
+ m.name AS attachmentName,
+ m.comments as attachmentComment
+ FROM
+ MeasurementFileImpl m
+ WHERE
+ m.objectId = :objectId
+ AND m.objectType.code = :objectTypeCode
+ ORDER BY m.id
+ ]]>
+ <query-param name="objectId" type="java.lang.Integer"/>
+ <query-param name="objectTypeCode" type="java.lang.Integer"/>
+ </query>
+
+ <query cacheable="true" name="attachment">
+ <![CDATA[
+ SELECT
+ m.objectType.code as attachmentObjectType,
+ m.objectId AS attachmentObjectId,
+ m.id AS attachmentId,
+ m.path AS attachmentPath,
+ m.name AS attachmentName,
+ m.comments as attachmentComment
+ FROM
+ MeasurementFileImpl m
+ WHERE
+ m.id = :attachmentId
+ ]]>
+ <query-param name="attachmentId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- ===================================================================== -->
+ <!-- === Requete techniques sur référentiels [REF-TXXX] === -->
+ <!-- ===================================================================== -->
+
+ <!-- [REF-T01] Get a pmfm caracteristics by this id -->
+ <query cacheable="true" name="pmfmById">
+ <![CDATA[
+ SELECT
+ p.id AS pmfmId,
+ p.parameter.name AS parameterName,
+ p.matrix.name AS matrixName,
+ p.fraction.name AS fractionName,
+ p.method.name AS methodName,
+ p.parameter.isAlphanumeric AS isAlphanumeric,
+ p.parameter.isQualitative AS isQualitative,
+ p.signifFiguresNumber,
+ p.maximumNumberDecimals,
+ p.precision,
+ case when (p.unit.id = :unitIdNone) then '' else p.unit.symbol end AS symbol,
+ p.status AS status
+ FROM PmfmImpl p
+ WHERE
+ p.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND p.parameter.isCalculated = false
+ AND p.id= :pmfmId
+ ]]>
+ <query-param name="pmfmId" type="java.lang.Integer"/>
+ <query-param name="unitIdNone" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-T02] Get a pmfm qualitative values from his id -->
+ <query cacheable="true" name="pmfmQualitativeValues">
+ <![CDATA[
+ SELECT
+ qv.id AS id,
+ qv.name,
+ case when (qv.description is null) then qv.name else qv.description end AS description,
+ qv.status AS status
+ FROM
+ PmfmImpl p JOIN p.qualitativeValues qv
+ WHERE
+ p.id= :pmfmId
+ AND qv.status.code IN (:statusValidCode, :statusTemporaryCode)
+ ]]>
+ <query-param name="pmfmId" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-T03] Get all caracteristics -->
+ <query cacheable="true" name="allPmfm">
+ <![CDATA[
+ SELECT
+ p.id AS pmfmId,
+ p.parameter.name AS parameterName,
+ p.matrix.name AS matrixName,
+ p.fraction.name AS fractionName,
+ p.method.name AS methodName,
+ p.parameter.isAlphanumeric AS isAlphanumeric,
+ p.parameter.isQualitative AS isQualitative,
+ p.signifFiguresNumber,
+ p.maximumNumberDecimals,
+ p.precision,
+ case when (p.unit.id = :unitIdNone) then '' else p.unit.symbol end AS symbol,
+ p.status AS status
+ FROM PmfmImpl p
+ WHERE
+ p.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND p.parameter.isCalculated = false
+ ]]>
+ <query-param name="unitIdNone" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-T04] Get all locations by level and classification -->
+ <query cacheable="true" name="allLocationsByLevelAndClassificiation">
+ <![CDATA[
+ SELECT
+ l.id as locationId,
+ l.label as locationLabel,
+ l.name as locationName,
+ l.status as status
+ FROM LocationImpl l
+ WHERE
+ l.locationLevel.id = :locationLevelId
+ AND l.locationClassification.id = :locationClassificationId
+ AND l.status.code IN (:statusValidCode, :statusTemporaryCode)
+ ]]>
+ <query-param name="locationLevelId" type="java.lang.Integer"/>
+ <query-param name="locationClassificationId" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-T05] Get a location by his id -->
+ <query cacheable="true" name="locationById">
+ <![CDATA[
+ SELECT
+ l.id as locationId,
+ l.label as locationLabel,
+ l.name as locationName,
+ l.status as status
+ FROM
+ LocationImpl l
+ WHERE
+ l.id = :locationId
+ ]]>
+ <query-param name="locationId" type="java.lang.Integer"/>
+ </query>
+
+
+ <!-- [REF-T06] Get all ObjectType -->
+ <query cacheable="true" name="allObjectType">
+ <![CDATA[
+ SELECT
+ p.code AS objectTypeCode,
+ p.name AS objectTypeName,
+ p.description AS objectTypeDescription
+ FROM ObjectTypeImpl p
+ ]]>
+ </query>
+
+ <!-- [REF-T06-1] Get one ObjectType -->
+ <query cacheable="true" name="objectType">
+ <![CDATA[
+ SELECT
+ p.code AS objectTypeCode,
+ p.name AS objectTypeName,
+ p.description AS objectTypeDescription
+ FROM ObjectTypeImpl p
+ WHERE p.code = :objectTypeCode
+ ]]>
+ <query-param name="objectTypeCode" type="java.lang.String"/>
+ </query>
+
+ <!-- ===================================================================== -->
+ <!-- === Requete sur référentiels [REF-XXX] === -->
+ <!-- ===================================================================== -->
+
+ <!-- [REF-01] Get all fishing operation strata / substrata / localite -->
+ <query cacheable="true" name="allFishingOperationLocationByParent">
+ <![CDATA[
+ SELECT
+ l.id as locationId,
+ l.label as locationLabel,
+ l.name as locationName,
+ l.status as status
+ FROM
+ LocationImpl l,
+ LocationHierarchyImpl lh
+ WHERE
+ l.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND l.locationLevel.id = :locationLevelId
+ AND l.locationClassification.id = :locationClassificationId
+ AND l.id = lh.locationHierarchyPk.location.id
+ AND lh.locationHierarchyPk.parent.id = :parentId
+ AND lh.locationHierarchyPk.parent.locationLevel.id = :parentLocationLevelId
+ ]]>
+ <query-param name="parentId" type="java.lang.Integer"/>
+ <query-param name="parentLocationLevelId" type="java.lang.Integer"/>
+ <query-param name="locationLevelId" type="java.lang.Integer"/>
+ <query-param name="locationClassificationId" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-02] Get all vessel for a given vesselType -->
+ <query cacheable="true" name="allVessels">
+ <![CDATA[
+ SELECT
+ v.code AS vesselCode,
+ vrp.registrationCode AS nationalRegistrationCode,
+ vrp.internationalRegistrationCode as internationalRegistrationCode,
+ vf.name AS vesselName,
+ v.status AS status
+ FROM
+ VesselImpl v
+ INNER JOIN v.vesselRegistrationPeriods AS vrp
+ LEFT OUTER JOIN v.vesselFeatures AS vf
+ WHERE
+ v.vesselType.id = :vesselTypeId
+ AND v.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND vrp.vesselRegistrationPeriodPk.startDateTime <= :refDate
+ AND vf.startDateTime <= :refDate
+ AND coalesce(vrp.endDateTime, :refDate) >= :refDate
+ AND coalesce(vf.endDateTime, :refDate) >= :refDate
+ )
+ ]]>
+ <query-param name="vesselTypeId" type="java.lang.Integer"/>
+ <query-param name="refDate" type="java.util.Date"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-02-1] Get a vessel -->
+ <query cacheable="true" name="vessel">
+ <![CDATA[
+ SELECT
+ v.code AS vesselCode,
+ vrp.registrationCode AS nationalRegistrationCode,
+ vrp.internationalRegistrationCode as internationalRegistrationCode,
+ vf.name AS vesselName,
+ v.status AS status
+ FROM
+ VesselImpl v
+ INNER JOIN v.vesselRegistrationPeriods AS vrp
+ LEFT OUTER JOIN v.vesselFeatures AS vf
+ WHERE
+ v.code = :vesselCode
+ AND v.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND NOT(coalesce(vrp.endDateTime, '2999-12-31 00:00:00') < coalesce(:refDate,sysdate)
+ OR vrp.vesselRegistrationPeriodPk.startDateTime > coalesce(:refDate,sysdate)
+ )
+ ORDER BY vf.startDateTime DESC
+ ]]>
+ <query-param name="vesselCode" type="java.lang.String"/>
+ <query-param name="refDate" type="java.util.Date"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-03] Get all gears for a given gearType -->
+ <query cacheable="true" name="allGears">
+ <![CDATA[
+ SELECT
+ g.id,
+ g.label,
+ g.name,
+ g.gearClassification,
+ g.status AS status
+ FROM GearImpl g
+ WHERE
+ g.gearClassification.id= :gearClassificiationId
+ AND g.status.code IN (:statusValidCode, :statusTemporaryCode)
+ ]]>
+ <query-param name="gearClassificiationId" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-03-1] Get a gear -->
+ <query cacheable="true" name="gear">
+ <![CDATA[
+ SELECT
+ g.id,
+ g.label,
+ g.name,
+ g.gearClassification,
+ g.status AS status
+ FROM GearImpl g
+ WHERE
+ g.id = :gearId
+ ]]>
+ <query-param name="gearId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- [REF-04] Get all persons -->
+ <query cacheable="true" name="allPersons">
+ <![CDATA[
+ SELECT DISTINCT
+ p.id,
+ p.lastname,
+ p.firstname,
+ p.department.code,
+ p.status
+ FROM
+ PersonImpl p
+ LEFT OUTER JOIN p.profils pp
+ WHERE
+ p.status.code IN (:statusValidCode, :statusTemporaryCode)
+ AND pp.id IN (
+ :observerProfilId,
+ :projectMemberProfilId,
+ :userProfilId
+ )
+ AND p.department.code LIKE concat(:departementPrefixCode , '%')
+ ]]>
+ <query-param name="observerProfilId" type="java.lang.Integer"/>
+ <query-param name="projectMemberProfilId" type="java.lang.Integer"/>
+ <query-param name="userProfilId" type="java.lang.Integer"/>
+ <query-param name="statusValidCode" type="java.lang.String"/>
+ <query-param name="statusTemporaryCode" type="java.lang.String"/>
+ <query-param name="departementPrefixCode" type="java.lang.String"/>
+ </query>
+
+ <!-- [REF-04-1] Get one person -->
+ <query cacheable="true" name="person">
+ <![CDATA[
+ SELECT DISTINCT
+ p.id,
+ p.lastname,
+ p.firstname,
+ p.department.code,
+ p.status
+ FROM PersonImpl p
+ WHERE p.id = :personId
+ ]]>
+ <query-param name="personId" type="java.lang.Integer"/>
+ </query>
+
+ <!-- ===================================================================== -->
+ <!-- === Fetch profiles === -->
+ <!-- ===================================================================== -->
+
+
+ <!--<fetch-profile name="tutti">-->
+ <!--TODO Create fetch profile to avoid eager loading -->
+ <!--</fetch-profile>-->
+
+
+</hibernate-mapping>
Deleted: trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/queries-override.hbm.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -1,889 +0,0 @@
-<?xml version="1.0"?>
-<!--
- #%L
- Tutti :: Persistence API
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2012 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%
- -->
-
-<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
-<hibernate-mapping>
-
- <!-- ===================================================================== -->
- <!-- === Requete sur données thématiques [DAT-XXX] === -->
- <!-- ===================================================================== -->
-
- <!-- [DAT-01] Get all programs (to list with no detail) -->
- <query cacheable="true" name="allPrograms">
- <![CDATA[
- SELECT
- p.code,
- p.name,
- p.description,
- l.id,
- l.label,
- l.name
- FROM
- ProgramImpl p
- LEFT OUTER JOIN p.locations l
- WHERE
- p.code LIKE :codePattern
- AND (
- l is null OR (
- l.locationLevel.id = :locationLevelId
- AND l.locationClassification.id = :locationClassificationId
- )
- )
- ]]>
- <query-param name="codePattern" type="java.lang.String"/>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="locationClassificationId" type="java.lang.Integer"/>
- </query>
-
- <!-- [DAT-02] Get all cruises for a given program (to list with no detail) -->
- <query cacheable="true" name="allCruises">
- <![CDATA[
- SELECT
- c.id,
- c.name,
- c.departureDateTime
- FROM
- ScientificCruiseImpl c
- WHERE
- c.program.code = :programCode
- ORDER BY
- c.departureDateTime desc
- ]]>
- <query-param name="programCode" type="java.lang.String"/>
- </query>
-
- <!-- [DAT-03] Get a detail program -->
- <query cacheable="true" name="program">
- <![CDATA[
- SELECT
- p.code,
- p.name,
- p.description,
- l.id,
- l.label,
- l.name
- FROM
- ProgramImpl p
- LEFT OUTER JOIN p.locations l
- WHERE
- p.code = :programCode
- AND (
- l is null OR (
- l.locationLevel.id = :locationLevelId
- AND l.locationClassification.id = :locationClassificationId
- )
- )
- ORDER BY l.label
- ]]>
- <query-param name="programCode" type="java.lang.String"/>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="locationClassificationId" type="java.lang.Integer"/>
- </query>
-
- <!-- [DAT-04] Get a detail cruise -->
- <query cacheable="true" name="cruise">
- <![CDATA[
- SELECT
- ft.departureLocation.id as departureLocationId,
- ft.returnLocation.id as returnLocationId,
- sc.program.code AS programCode,
- sc.name AS name,
- sc.departureDateTime AS departureDateTime,
- sc.returnDateTime AS returnDateTime,
- sc.vessel.code AS vesselCode,
- mp.id AS managerId,
- sc.comments AS scientificCruiseComments,
- (SELECT sm.alphanumericalValue
- FROM SurveyMeasurementImpl sm
- WHERE sm.fishingTrip.id=ft.id AND sm.pmfm.id= :pmfmIdSurveyPart
- ) AS surveyPart
- FROM
- ScientificCruiseImpl sc
- LEFT OUTER JOIN sc.fishingTrips ft
- LEFT OUTER JOIN sc.managerPerson mp
- WHERE
- sc.id = :cruiseId
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="pmfmIdSurveyPart" type="java.lang.Integer"/>
- </query>
-
- <!-- [DAT-05] Get all vesselPersonFeatures for a given cruise -->
- <query cacheable="true" name="allCruiseVesselPersonFeatures">
- <![CDATA[
- SELECT
- vpf.person.id AS personId,
- vpr.id AS roleId,
- vpf.rankOrder
- FROM
- ScientificCruiseImpl sc
- JOIN sc.fishingTrips ft
- JOIN ft.vesselPersonFeatures vpf
- JOIN vpf.vesselPersonRoles vpr
- WHERE
- sc.id = :cruiseId
- ORDER By vpf.rankOrder
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allCruiseGears">
- <![CDATA[
- SELECT
- gpf.gear.id AS gearId,
- gpf.rankOrder AS rankOrder,
- MAX(CASE gpm.pmfm.id
- WHEN :pmfmIdTrawlNet THEN gpm.numericalValue
- ELSE 0
- END) as trawlNet,
- count(o.id) as operationCount
- FROM
- ScientificCruiseImpl sc
- JOIN sc.fishingTrips ft
- JOIN ft.gearPhysicalFeatures gpf
- LEFT OUTER JOIN gpf.gearPhysicalMeasurements gpm
- LEFT OUTER JOIN gpf.operations o
- WHERE
- sc.id = :cruiseId
- GROUP BY
- 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>
-
- <query cacheable="true" name="updateOperationsVessel">
- <![CDATA[
- UPDATE FishingOperationImpl o
- SET o.vessel.id=:vesselId
- WHERE
- o IN (
- FROM FishingOperationImpl fo
- WHERE fo.fishingTrip.scientificCruise.id=:cruiseId
- )
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="vesselId" type="java.lang.String"/>
- </query>
-
- <query cacheable="true" name="gearCaracteristics">
- <![CDATA[
- SELECT
- gpm
- FROM
- ScientificCruiseImpl sc
- JOIN sc.fishingTrips ft
- JOIN ft.gearPhysicalFeatures gpf
- LEFT OUTER JOIN gpf.gearPhysicalMeasurements gpm
- WHERE
- sc.id = :cruiseId
- AND gpf.gear.id = :gearId
- AND gpf.rankOrder = :rankOrder
- AND gpm != null
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="gearId" type="java.lang.Integer"/>
- <query-param name="rankOrder" type="java.lang.Short"/>
- </query>
-
- <query cacheable="true" name="allCruiseSecondaryVessels">
- <![CDATA[
- SELECT
- va.operationVesselAssociationPk.vessel.code AS associatedVesselCode
- FROM
- ScientificCruiseImpl sc
- JOIN sc.fishingTrips ft
- JOIN ft.operations o
- JOIN o.operationVesselAssociations va
- WHERE
- sc.id = :cruiseId
- GROUP BY
- va.operationVesselAssociationPk.vessel
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allFishingOperationIds">
- <![CDATA[
- SELECT
- o.id AS id
- FROM
- FishingOperationImpl o
- WHERE
- o.fishingTrip.scientificCruise.id=:cruiseId
- ORDER BY
- o.startDateTime
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allFishingOperations">
- <![CDATA[
- SELECT
- o.id AS id,
- o.name AS name,
- o.startDateTime AS startDateTime,
- (select vum.alphanumericalValue from VesselUseMeasurementImpl vum where vum.vesselUseFeatures.id = vuf.id and vum.pmfm.id=:pmfmIdStationNumber) AS stationNumber,
- (select gum.alphanumericalValue from GearUseMeasurementImpl gum where gum.gearUseFeatures.id = guf.id and gum.pmfm.id=:pmfmIdMultirigAggregation) AS multirigAggregation
- FROM
- FishingOperationImpl o
- LEFT OUTER JOIN o.gearUseFeatures guf
- LEFT OUTER JOIN guf.gear g
- LEFT OUTER JOIN o.vesselUseFeatures vuf
- WHERE
- o.fishingTrip.scientificCruise.id=:cruiseId
- ORDER BY
- o.startDateTime
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="pmfmIdStationNumber" type="java.lang.Integer"/>
- <query-param name="pmfmIdMultirigAggregation" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allFishingOperationsWithGear">
- <![CDATA[
- SELECT
- g.id AS gearId,
- guf.rankOrder as gufRankOrder
- FROM
- FishingOperationImpl o
- INNER JOIN o.gearUseFeatures guf
- LEFT OUTER JOIN guf.gear g
- WHERE
- o.fishingTrip.scientificCruise.id=:cruiseId
- AND g.id in (:gearIds)
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="gearIds" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="updateOperationsGear">
- <![CDATA[
- UPDATE GearUseFeaturesImpl guf
- SET guf.rankOrder=:newRankOrder
- WHERE
- guf IN (
- SELECT
- guf
- FROM
- FishingOperationImpl o
- INNER JOIN o.gearUseFeatures guf
- WHERE
- o.fishingTrip.scientificCruise.id=:cruiseId
- AND guf.rankOrder= :oldRankOrder
- AND guf.gear.id= :gearId
- )
- ]]>
- <query-param name="cruiseId" type="java.lang.Integer"/>
- <query-param name="gearId" type="java.lang.Integer"/>
- <query-param name="oldRankOrder" type="java.lang.Short"/>
- <query-param name="newRankOrder" type="java.lang.Short"/>
- </query>
-
- <query cacheable="true" name="fishingOperation">
- <![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,
- max(g.id) AS gearId,
- (select vp_start from VesselPositionImpl vp_start where vp_start.operation.id = o.id and vp_start.dateTime = o.startDateTime) AS startVesselPosition,
- (select vp_end from VesselPositionImpl vp_end where vp_end.operation.id = o.id and vp_end.dateTime = o.endDateTime) AS endVesselPosition,
- max(case when (rl.locationLevel.id = :locationLevelIdStrata) then rl.id else null end) AS strataId,
- max(case when (rl.locationLevel.id = :locationLevelIdSubStrata) then rl.id else null end) AS subStrataId,
- max(case when (rl.locationLevel.id = :locationLevelIdLocalite) then rl.id else null end) AS localiteId,
- max(o.vessel.code) as vesselCode
- FROM
- FishingOperationImpl o
- INNER JOIN o.gearUseFeatures guf
- LEFT OUTER JOIN guf.gear g
- LEFT OUTER JOIN guf.fishingAreas fa
- LEFT OUTER JOIN fa.regulationLocation fa2rl
- LEFT OUTER JOIN fa2rl.id.location rl
- WHERE
- o.id=:fishingOperationId
- GROUP BY o.name, guf.rankOrder
- ]]>
- <!--LEFT OUTER JOIN o.operationVesselAssociations va-->
- <!--max(case when (va.isCatchOnOperationVessel = false) then va.id.vessel.code else o.vessel.code end) as vesselCode-->
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- <query-param name="locationLevelIdStrata" type="java.lang.Integer"/>
- <query-param name="locationLevelIdSubStrata" type="java.lang.Integer"/>
- <query-param name="locationLevelIdLocalite" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="fishingOperationSecondaryVessel">
- <![CDATA[
- SELECT
- va.operationVesselAssociationPk.vessel.code,
- va.isCatchOnOperationVessel
- FROM
- FishingOperationImpl o
- LEFT OUTER JOIN o.operationVesselAssociations va
- WHERE
- o.id=:fishingOperationId
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="fishingOperationRankOrder">
- <![CDATA[
- SELECT
- count(o1.id) + 1 as fishingOperationRankOrder
- FROM
- FishingOperationImpl o1,
- FishingOperationImpl o2
- WHERE
- o1.fishingTrip.id = o2.fishingTrip.id
- AND o1.startDateTime < o2.startDateTime
- AND o2.id = :fishingOperationId
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="fishingOperationVesselUseFeatures">
- <![CDATA[
- SELECT
- vum.pmfm.id as pmfmId,
- vum.numericalValue as numericalValue,
- vum.alphanumericalValue as alphanumericalValue,
- vum.qualitativeValue.id as qualitativeValueId
- from
- VesselUseFeaturesImpl vuf
- join vuf.vesselUseMeasurements vum
- WHERE
- vuf.operation.id = :fishingOperationId
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="fishingOperationGearUseFeatures">
- <![CDATA[
- SELECT
- gum.pmfm.id as pmfmId,
- gum.numericalValue as numericalValue,
- gum.alphanumericalValue as alphanumericalValue,
- gum.qualitativeValue.id as qualitativeValueId
- from
- GearUseFeaturesImpl guf
- join guf.gearUseMeasurements gum
- WHERE
- guf.operation.id = :fishingOperationId
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- </query>
-
- <!-- Get all vesselPersonFeatures for a given fishing operation -->
- <query cacheable="true" name="fishingOperationVesselPersonFeatures">
- <![CDATA[
- SELECT
- vpf.person.id AS personId,
- 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>
-
- <query cacheable="true" name="updateFishingOperationCatchBatch">
- <![CDATA[
- UPDATE FishingOperationImpl o
- SET o.catchBatch.id=:catchBatchId
- WHERE
- o.id=:fishingOperationId
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- <query-param name="catchBatchId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allFishingOperationSamplesWithoutBatch">
- <![CDATA[
- SELECT
- s.id AS id,
- s.referenceTaxon.id AS referenceTaxon,
- s.comments AS comment
- FROM
- SampleImpl s
- WHERE
- s.fishingOperation.id= :fishingOperationId
- AND s.batch IS NULL
- ORDER BY
- s.id
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allFishingOperationSamplesWithBatch">
- <![CDATA[
- SELECT
- s.id AS id,
- s.referenceTaxon.id AS referenceTaxon,
- s.comments AS comment
- FROM
- SampleImpl s
- WHERE
- s.fishingOperation.id= :fishingOperationId
- AND s.batch.id = :batchId
- ORDER BY
- s.id
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- <query-param name="batchId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="sampleMeasurements">
- <![CDATA[
- SELECT
- sm.pmfm.id as pmfmId,
- sm.numericalValue as numericalValue,
- sm.alphanumericalValue as alphanumericalValue,
- sm.qualitativeValue.id as qualitativeValueId
- from
- SampleMeasurementImpl sm
- WHERE
- sm.sample.id = :sampleId
- ]]>
- <query-param name="sampleId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="catchBatch">
- <![CDATA[
- SELECT
- cb.id AS catchBatchId,
- cbQm.numericalValue as totalWeight,
- b1.id AS id1,
- b1.samplingRatioText as samplingRatioText1,
- (select qm.numericalValue from QuantificationMeasurementImpl qm where qm.batch.id=b1.id and qm.isReferenceQuantification=true) AS weight1,
- (select sm.qualitativeValue.id from SortingMeasurementImpl sm where sm.sortingBatch.id=b1.id and sm.pmfm.id=:pmfmIdSorted) AS qv2,
- b2.id AS id2,
- b2.samplingRatioText AS samplingRatioText2,
- (select qm.numericalValue from QuantificationMeasurementImpl qm where qm.batch.id=b2.id and qm.isReferenceQuantification=true) AS weight2,
- (select sm.qualitativeValue.id from SortingMeasurementImpl sm where sm.sortingBatch.id=b2.id and sm.pmfm.id=:pmfmIdSortingType) AS qv2
- FROM
- CatchBatchImpl cb
- INNER JOIN cb.childBatchs b1
- LEFT OUTER JOIN b1.childBatchs b2
- LEFT OUTER JOIN cb.quantificationMeasurements cbQm
- WHERE
- cb.fishingOperation.id = :fishingOperationId
- AND (
- cbQm is null
- OR cbQm.isReferenceQuantification=true
- )
- ORDER BY b1.id, b2.id
- ]]>
- <query-param name="fishingOperationId" type="java.lang.Integer"/>
- <query-param name="pmfmIdSorted" type="java.lang.Integer"/>
- <query-param name="pmfmIdSortingType" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allSpeciesBatchFrequency">
- <![CDATA[
- SELECT
- b.id as batchId,
- b.individualCount AS individualCount,
- qm.numericalValue AS weight,
- b.comments AS comments,
- sm.pmfm.id AS pmfmId,
- sm.numericalValue AS numValue
- FROM
- SortingBatchImpl b
- LEFT OUTER JOIN b.sortingMeasurements sm
- LEFT OUTER JOIN b.quantificationMeasurements qm
- WHERE
- b.parentBatch.id=:parentBatchId
- AND (
- qm is null
- OR qm.isReferenceQuantification=true
- )
- AND sm.numericalValue is not null
- AND sm.pmfm.parameter.isAlphanumeric=false
- AND sm.pmfm.parameter.isQualitative=false
- ORDER BY sm.numericalValue
- ]]>
- <query-param name="parentBatchId" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="allAttachment">
- <![CDATA[
- SELECT
- m.objectType.code as attachmentObjectType,
- m.objectId AS attachmentObjectId,
- m.id AS attachmentId,
- m.path AS attachmentPath,
- m.name AS attachmentName,
- m.comments as attachmentComment
- FROM
- MeasurementFileImpl m
- WHERE
- m.objectId = :objectId
- AND m.objectType.code = :objectTypeCode
- ORDER BY m.id
- ]]>
- <query-param name="objectId" type="java.lang.Integer"/>
- <query-param name="objectTypeCode" type="java.lang.Integer"/>
- </query>
-
- <query cacheable="true" name="attachment">
- <![CDATA[
- SELECT
- m.objectType.code as attachmentObjectType,
- m.objectId AS attachmentObjectId,
- m.id AS attachmentId,
- m.path AS attachmentPath,
- m.name AS attachmentName,
- m.comments as attachmentComment
- FROM
- MeasurementFileImpl m
- WHERE
- m.id = :attachmentId
- ]]>
- <query-param name="attachmentId" type="java.lang.Integer"/>
- </query>
-
- <!-- ===================================================================== -->
- <!-- === Requete techniques sur référentiels [REF-TXXX] === -->
- <!-- ===================================================================== -->
-
- <!-- [REF-T01] Get a pmfm caracteristics by this id -->
- <query cacheable="true" name="pmfmById">
- <![CDATA[
- SELECT
- p.id AS pmfmId,
- p.parameter.name AS parameterName,
- p.matrix.name AS matrixName,
- p.fraction.name AS fractionName,
- p.method.name AS methodName,
- p.parameter.isAlphanumeric AS isAlphanumeric,
- p.parameter.isQualitative AS isQualitative,
- p.signifFiguresNumber,
- p.maximumNumberDecimals,
- p.precision,
- case when (p.unit.id = :unitIdNone) then '' else p.unit.symbol end AS symbol,
- p.status AS status
- FROM PmfmImpl p
- WHERE
- p.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND p.parameter.isCalculated = false
- AND p.id= :pmfmId
- ]]>
- <query-param name="pmfmId" type="java.lang.Integer"/>
- <query-param name="unitIdNone" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-T02] Get a pmfm qualitative values from his id -->
- <query cacheable="true" name="pmfmQualitativeValues">
- <![CDATA[
- SELECT
- qv.id AS id,
- qv.name,
- case when (qv.description is null) then qv.name else qv.description end AS description,
- qv.status AS status
- FROM
- PmfmImpl p JOIN p.qualitativeValues qv
- WHERE
- p.id= :pmfmId
- AND qv.status.code IN (:statusValidCode, :statusTemporaryCode)
- ]]>
- <query-param name="pmfmId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-T03] Get all caracteristics -->
- <query cacheable="true" name="allPmfm">
- <![CDATA[
- SELECT
- p.id AS pmfmId,
- p.parameter.name AS parameterName,
- p.matrix.name AS matrixName,
- p.fraction.name AS fractionName,
- p.method.name AS methodName,
- p.parameter.isAlphanumeric AS isAlphanumeric,
- p.parameter.isQualitative AS isQualitative,
- p.signifFiguresNumber,
- p.maximumNumberDecimals,
- p.precision,
- case when (p.unit.id = :unitIdNone) then '' else p.unit.symbol end AS symbol,
- p.status AS status
- FROM PmfmImpl p
- WHERE
- p.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND p.parameter.isCalculated = false
- ]]>
- <query-param name="unitIdNone" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-T04] Get all locations by level and classification -->
- <query cacheable="true" name="allLocationsByLevelAndClassificiation">
- <![CDATA[
- SELECT
- l.id as locationId,
- l.label as locationLabel,
- l.name as locationName,
- l.status as status
- FROM LocationImpl l
- WHERE
- l.locationLevel.id = :locationLevelId
- AND l.locationClassification.id = :locationClassificationId
- AND l.status.code IN (:statusValidCode, :statusTemporaryCode)
- ]]>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="locationClassificationId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-T05] Get a location by his id -->
- <query cacheable="true" name="locationById">
- <![CDATA[
- SELECT
- l.id as locationId,
- l.label as locationLabel,
- l.name as locationName,
- l.status as status
- FROM
- LocationImpl l
- WHERE
- l.id = :locationId
- ]]>
- <query-param name="locationId" type="java.lang.Integer"/>
- </query>
-
-
- <!-- [REF-T06] Get all ObjectType -->
- <query cacheable="true" name="allObjectType">
- <![CDATA[
- SELECT
- p.code AS objectTypeCode,
- p.name AS objectTypeName,
- p.description AS objectTypeDescription
- FROM ObjectTypeImpl p
- ]]>
- </query>
-
- <!-- [REF-T06-1] Get one ObjectType -->
- <query cacheable="true" name="objectType">
- <![CDATA[
- SELECT
- p.code AS objectTypeCode,
- p.name AS objectTypeName,
- p.description AS objectTypeDescription
- FROM ObjectTypeImpl p
- WHERE p.code = :objectTypeCode
- ]]>
- <query-param name="objectTypeCode" type="java.lang.String"/>
- </query>
-
- <!-- ===================================================================== -->
- <!-- === Requete sur référentiels [REF-XXX] === -->
- <!-- ===================================================================== -->
-
- <!-- [REF-01] Get all fishing operation strata / substrata / localite -->
- <query cacheable="true" name="allFishingOperationLocationByParent">
- <![CDATA[
- SELECT
- l.id as locationId,
- l.label as locationLabel,
- l.name as locationName,
- l.status as status
- FROM
- LocationImpl l,
- LocationHierarchyImpl lh
- WHERE
- l.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND l.locationLevel.id = :locationLevelId
- AND l.locationClassification.id = :locationClassificationId
- AND l.id = lh.locationHierarchyPk.location.id
- AND lh.locationHierarchyPk.parent.id = :parentId
- AND lh.locationHierarchyPk.parent.locationLevel.id = :parentLocationLevelId
- ]]>
- <query-param name="parentId" type="java.lang.Integer"/>
- <query-param name="parentLocationLevelId" type="java.lang.Integer"/>
- <query-param name="locationLevelId" type="java.lang.Integer"/>
- <query-param name="locationClassificationId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-02] Get all vessel for a given vesselType -->
- <query cacheable="true" name="allVessels">
- <![CDATA[
- SELECT
- v.code AS vesselCode,
- vrp.registrationCode AS nationalRegistrationCode,
- vrp.internationalRegistrationCode as internationalRegistrationCode,
- vf.name AS vesselName,
- v.status AS status
- FROM
- VesselImpl v
- INNER JOIN v.vesselRegistrationPeriods AS vrp
- LEFT OUTER JOIN v.vesselFeatures AS vf
- WHERE
- v.vesselType.id = :vesselTypeId
- AND v.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND vrp.vesselRegistrationPeriodPk.startDateTime <= :refDate
- AND vf.startDateTime <= :refDate
- AND coalesce(vrp.endDateTime, :refDate) >= :refDate
- AND coalesce(vf.endDateTime, :refDate) >= :refDate
- )
- ]]>
- <query-param name="vesselTypeId" type="java.lang.Integer"/>
- <query-param name="refDate" type="java.util.Date"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-02-1] Get a vessel -->
- <query cacheable="true" name="vessel">
- <![CDATA[
- SELECT
- v.code AS vesselCode,
- vrp.registrationCode AS nationalRegistrationCode,
- vrp.internationalRegistrationCode as internationalRegistrationCode,
- vf.name AS vesselName,
- v.status AS status
- FROM
- VesselImpl v
- INNER JOIN v.vesselRegistrationPeriods AS vrp
- LEFT OUTER JOIN v.vesselFeatures AS vf
- WHERE
- v.code = :vesselCode
- AND v.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND NOT(coalesce(vrp.endDateTime, '2999-12-31 00:00:00') < coalesce(:refDate,sysdate)
- OR vrp.vesselRegistrationPeriodPk.startDateTime > coalesce(:refDate,sysdate)
- )
- ORDER BY vf.startDateTime DESC
- ]]>
- <query-param name="vesselCode" type="java.lang.String"/>
- <query-param name="refDate" type="java.util.Date"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-03] Get all gears for a given gearType -->
- <query cacheable="true" name="allGears">
- <![CDATA[
- SELECT
- g.id,
- g.label,
- g.name,
- g.gearClassification,
- g.status AS status
- FROM GearImpl g
- WHERE
- g.gearClassification.id= :gearClassificiationId
- AND g.status.code IN (:statusValidCode, :statusTemporaryCode)
- ]]>
- <query-param name="gearClassificiationId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-03-1] Get a gear -->
- <query cacheable="true" name="gear">
- <![CDATA[
- SELECT
- g.id,
- g.label,
- g.name,
- g.gearClassification,
- g.status AS status
- FROM GearImpl g
- WHERE
- g.id = :gearId
- ]]>
- <query-param name="gearId" type="java.lang.Integer"/>
- </query>
-
- <!-- [REF-04] Get all persons -->
- <query cacheable="true" name="allPersons">
- <![CDATA[
- SELECT DISTINCT
- p.id,
- p.lastname,
- p.firstname,
- p.department.code,
- p.status
- FROM
- PersonImpl p
- LEFT OUTER JOIN p.profils pp
- WHERE
- p.status.code IN (:statusValidCode, :statusTemporaryCode)
- AND pp.id IN (
- :observerProfilId,
- :projectMemberProfilId,
- :userProfilId
- )
- AND p.department.code LIKE concat(:departementPrefixCode , '%')
- ]]>
- <query-param name="observerProfilId" type="java.lang.Integer"/>
- <query-param name="projectMemberProfilId" type="java.lang.Integer"/>
- <query-param name="userProfilId" type="java.lang.Integer"/>
- <query-param name="statusValidCode" type="java.lang.String"/>
- <query-param name="statusTemporaryCode" type="java.lang.String"/>
- <query-param name="departementPrefixCode" type="java.lang.String"/>
- </query>
-
- <!-- [REF-04-1] Get one person -->
- <query cacheable="true" name="person">
- <![CDATA[
- SELECT DISTINCT
- p.id,
- p.lastname,
- p.firstname,
- p.department.code,
- p.status
- FROM PersonImpl p
- WHERE p.id = :personId
- ]]>
- <query-param name="personId" type="java.lang.Integer"/>
- </query>
-
- <!-- ===================================================================== -->
- <!-- === Fetch profiles === -->
- <!-- ===================================================================== -->
-
-
- <!--<fetch-profile name="tutti">-->
- <!--TODO Create fetch profile to avoid eager loading -->
- <!--</fetch-profile>-->
-
-
-</hibernate-mapping>
Added: trunk/tutti-persistence/src/main/resources/tutti-conf.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-conf.xml (rev 0)
+++ trunk/tutti-persistence/src/main/resources/tutti-conf.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+
+ <context:property-placeholder
+ location="classpath:conf.properties"
+ ignore-resource-not-found="false"
+ ignore-unresolvable="true"
+ system-properties-mode="OVERRIDE"/>
+ <context:property-placeholder
+ location="classpath:enumerations-v3.properties"
+ ignore-resource-not-found="false"
+ ignore-unresolvable="true"
+ system-properties-mode="OVERRIDE"/>
+
+</beans>
\ No newline at end of file
Property changes on: trunk/tutti-persistence/src/main/resources/tutti-conf.xml
___________________________________________________________________
Added: svn:mime-type
+ text/xml
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/tutti-db-enumerations.properties 2014-04-21 13:27:20 UTC (rev 1718)
@@ -21,316 +21,42 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-# Version de preprod
-AcquisitionLevelCode.ACTIVITY=MONTHLY_ACTIVITY
-AcquisitionLevelCode.ACTIVITY_CALENDAR=ACTIVITY_CALENDAR
-AcquisitionLevelCode.BATCH=BATCH
-AcquisitionLevelCode.FISHING_EFFORT_CALENDAR=EFFORT_CALENDAR
-AcquisitionLevelCode.FISHING_OPERATION=OPERATION
-AcquisitionLevelCode.FISHING_TRIP=FISHING_TRIP
-AcquisitionLevelCode.FISHING_TRIP_PHYSICAL_GEAR=OBSERVED_FISHING_TRIP_PHYSICAL_GEAR
-AcquisitionLevelCode.LANDING=LANDING
-AcquisitionLevelCode.MONTHLY_EFFORT=MONTHLY_FISHING_EFFORT
-AcquisitionLevelCode.OBSERVED_LANDING=OBSERVED_LANDING
-AcquisitionLevelCode.OBSERVED_SALE=OBSERVED_SALE
-AcquisitionLevelCode.OBSERVED_TRIP_ON_BOARD=OBSERVED_FISHING_TRIP
-AcquisitionLevelCode.OPERATION=OPERATION_fake
-AcquisitionLevelCode.OPERATION_GROUP=OPERATION_GROUP
-AcquisitionLevelCode.PHYSICAL_GEAR=PHYSICAL_GEAR_SURVEY
-AcquisitionLevelCode.SALE=SALE
-AcquisitionLevelCode.SALE_SURVEY=SALE_SURVEY
-AcquisitionLevelCode.SAMPLE=SAMPLE
-AcquisitionLevelCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
-AcquisitionLevelCode.VESSEL_PHYSICALFEATURES=VESSEL_PHYSICAL_FEATURES
-AcquisitionLevelCode.YEARLYEFFORT=YEARLY_FISHING_EFFORT
-AcquisitionLevelCode.CONTROLS_REFERENTIAL=CONTROLS_REFERENTIAL
-ActivityCalendarNumericalPmfmIds.GREATER_VALUE_PMFM=241
-ActivityCalendarNumericalPmfmIds.LOWER_VALUE_PMFM=242
-AggregationLevelId.DAY=4
-AggregationLevelId.FISHING_TRIP=9
-AggregationLevelId.HOUR=3
-AggregationLevelId.MONTH=21
-AggregationLevelId.NONE=1
-AggregationLevelId.SEMESTER=7
-AggregationLevelId.TRIMESTER=6
-AggregationLevelId.YEAR=8
-CriteriaType.DEFAULT=0
-CriteriaType.EXISTS=3
-CriteriaType.JOIN=1
-CriteriaType.NOT_EXISTS=4
-CriteriaType.SELECT=2
-DepartmentCode.OUTSIDE=EXTERIEUR
-Filters.RESULTS_SIZE_WARNING_VALUE=10000
-FractionId.ALL=1
-FractionId.GEAR=2
-GearClassificationId.CNTS=5
-GearClassificationId.EU=4
-GearClassificationId.FAO=1
-GearClassificationId.SCIENTIFIC_CRUISE=5
-GearUseFeaturesOriginMapping.ACTIVITY_CALENDAR=Activit\u00E9 N-1|<PROGRAM>,Enqu\u00EAteur|<INVESTIGATOR>,Document d\u00E9claratif|<DECLARATIVE>,Ventes|OFIMER
-GearUseFeaturesOriginMapping.EFFORT_CALENDAR=Activit\u00E9 N-1|<PROGRAM>,Enqu\u00EAteur|<INVESTIGATOR>,Document d\u00E9claratif|<DECLARATIVE>,Ventes|OFIMER
-isActive.ACTIVE=1
-isActive.INACTIVE=0
-isActive.NOT_EXISTS=2
-LocationClassificationId.REGULATION=3
-LocationClassificationId.SECTOR=2
-LocationClassificationId.TERRITORIAL=1
-LocationLabel.FRANCE=FRA
-LocationLabel.MEDITERRANEAN_AND_BLACK_SEA=37
-LocationLevelId.CRIEE=7
-LocationLevelId.DEPARTEMENT=32
-LocationLevelId.FAO_ZONE=101
-LocationLevelId.PAYS_ISO3=21
-LocationLevelId.PORT=6
-LocationLevelId.QUARTIER=13
-LocationLevelId.RECTANGLE_STATISTIQUE=113
-LocationLevelId.REGION=31
-LocationLevelId.SOUS_RECTANGLE_STATISTIQUE=114
-ManageDataTypeId.ACTIVITY_CALENDAR=4
-ManageDataTypeId.OBSERVED_FISHING_TRIP_ON_BOARD=5
-ManageDataTypeId.PHYSICAL_GEAR_SURVEY=7
-ManageDataTypeId.SALE=8
-ManageDataTypeId.SCIENTIFIC_CRUISE=9
-MatrixId.FISHING_METIER=6
-MatrixId.GEAR=3
-MatrixId.OPERATION=21
-MatrixId.VESSEL=5
-MatrixId.SUPPORT_WITH_GEAR=17
-MatrixId.SUPPORT_WITH_METIER=18
-MethodId.ALIVE_WEIGHT_EQUIVALENT=5
-MethodId.ESTIMATED=45
-MethodId.HEIGHT_WEIGHT=47
-MethodId.TOTAL_BATCH=283
-OrderTypeId.NORTH_SOUTH_LOCATION_RANK=1
-ParameterCode.ANOTHER_SURVEY=ACCEPT_OTHER_SURVEY
-ParameterCode.BULK=SORTED
-ParameterCode.CALCULATED_WEIGHT=WEIGHT_CALCULATED
-ParameterCode.CONTRACT_CODE=CONTRACT_CODE
-ParameterCode.CREW_SIZE=CREW_SIZE
-ParameterCode.DATA_RELIABILITY=SURVEY_RELIABILITY
-ParameterCode.DISCARD_TYPE=DISCARD_TYPE
-ParameterCode.ENGIN_TIME=ENGIN_DURATION
-ParameterCode.FISHING_DAY_COUNT=FISHING_DURATION
-ParameterCode.GEAR_DEPTH=GEAR_DEPTH
-ParameterCode.IS_SAMPLING=IS_SAMPLING
-ParameterCode.LANDING_REJECTION=DISCARD_OR_LANDING
-ParameterCode.PRESENTATION=DRESSING
-ParameterCode.PROCEEDING=TRIP_PROGRESS
-ParameterCode.RECEPTION_QUALITY=WELCOME_QUALITY
-ParameterCode.SEA_DAY_COUNT=DURATION_AT_SEA
-ParameterCode.SEA_STATE=SEA_STATE
-ParameterCode.SEX=SEX
-ParameterCode.SIZE=LENGTH_TOTAL
-ParameterCode.STATUS=QUALITY
-ParameterCode.SURVEY_QUALIFICATION=SURVEY_QUALIFICATION
-ParameterCode.VALIDATION_PROGRAM=IS_VALIDATED_PRG
-ParameterCode.VALIDATION_SUPERVISOR=IS_VALIDATED
-ParameterCode.WEIGHT=WEIGHT
-ParameterCode.SIZE_UNLI_CAT=SIZE_UNLI_CAT
-ParameterCode.SIZE_UE_CAT=SIZE_UE_CAT
-ParameterCode.CASE=CASE
-ParameterCode.SORTING_TYPE=SORTING_TYPE
-ParameterCode.PRESERVATION=PRESERVATION
-ParameterCode.DRESSING=DRESSING
-ParameterCode.AGE=AGE
-ParameterCode.LENGTH_TOTAL=LENGTH_TOTAL
-ParameterCode.LONG_CARAPACE=LONG_CARAPACE
-ParameterCode.LENGTH_PREANAL=LENGTH_PREANAL
-ParameterCode.LENGTH=LENGTH
-ParameterCode.LENGTH_CARAPACE=LENGTH_CARAPACE
-ParameterCode.LENGTH_FORK=LENGTH_FORK
-ParameterCode.LENGTH_LM_FORK=LENGTH_LM_FORK
-ParameterCode.LENGTH_MANTLE=LENGTH_MANTLE
-ParameterCode.LENGTH_PELVIC=LENGTH_PELVIC
-ParameterCode.LENGTH_PRE_SUPRA_CAUDAL=LENGTH_PRE_SUPRA_CAUDAL
-ParameterCode.LENGTH_STANDARD=LENGTH_STANDARD
-ParameterCode.BEAM_LENGTH=BEAM_LENGTH
-ParameterCode.BEAM_TOTAL_LENGTH=BEAM_TOTAL_LENGTH
-ParameterCode.GEAR_TOTAL_LENGTH=GEAR_TOTAL_LENGTH
-ParameterCode.HEADLINE_LENGTH=HEADLINE_LENGTH
-ParameterCode.LBP=LBP
-ParameterCode.LG_ENGINS_PERDUS=LG_ENGINS_PERDUS
-ParameterCode.LG_RELEVEE=LG_RELEVEE
-ParameterCode.LOA=LOA
-ParameterCode.LONG=LONG
-ParameterCode.LONGLINE_LENGTH=LONGLINE_LENGTH
-ParameterCode.LONG_FORK=LONG_FORK
-ParameterCode.LONG_MANTLE=LONG_MANTLE
-ParameterCode.NET_LENGTH=NET_LENGTH
-ParameterCode.SEGMENT_LENGTH=SEGMENT_LENGTH
-ParameterCode.SEINE_LENGTH=SEINE_LENGTH
-ParameterCode.STD_CURVE_LENGTH=STD_CURVE_LENGTH
-ParameterCode.STD_STRAIGTH_LENGTH=STD_STRAIGTH_LENGTH
-ParameterCode.SWEEP_LENGTH=SWEEP_LENGTH
-ParameterCode.TOTAL_LENGTH_HAULED=TOTAL_LENGTH_HAULED
-ParameterCode.TOTAL_LENGTH_SOAKED=TOTAL_LENGTH_SOAKED
-ParameterCode.WARP_LENGTH=WARP_LENGTH
-ParameterCode.CIRCUMFERENCE=CIRCUMFERENCE
-ParameterCode.WIDTH=WIDTH
-ParameterGroupId.SURVEY_MEASUREMENT=21
-PmfmId.ALIVE_WEIGHT_CALCULATED=WEIGHT_CALCULATED;1;1;5
-PmfmId.CALCULATED_WEIGHT_CHILDREN_SUM=WEIGHT_CALCULATED;1;1;341
-PmfmId.WEIGHT_SIZE_CALCULATED=WEIGHT_CALCULATED;1;1;47
-PmfmId.WEIGHT_SIZE_EXTRAPOLATE=WEIGHT_CALCULATED;1;1;283
-PmfmId.WEIGHT_TOTAL_CALCULATED=WEIGHT_CALCULATED;1;1;22
-PmfmId.MAX_DURATION_FOR_OPERATION_WITH_GEAR=DUREE_MAX_OPERATION;17;1;1
-PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_GEAR=DISTANCE_MAX_OPERATION;17;1;1
-PmfmId.MAX_DURATION_FOR_OPERATION_WITH_METIER=DUREE_MAX_OPERATION;18;1;1
-PmfmId.MAX_DISTANCE_FOR_OPERATION_WITH_METIER=DISTANCE_MAX_OPERATION;18;1;1
-PmfmId.STORAGE_STATE=CLOSE_OBSVENTE_STOCK;61;61;21
-ProgramCode.ACTIVITY=SIH-ACTIFLOT
-ProgramCode.ACTIVITY_MERGE=SIH-ACTIFLOT-CONFLIT
-ProgramCode.DECLARATIVE_FLOW=SIH-ACTIPRED
-ProgramCode.PRE_RECOPESCA=SIH-preRECOPESCA
-ProgramCode.RECOPESCA=SIH-RECOPESCA
-ProgramCode.SIH_OBSERVED_FISHING_TRIP_ON_BOARD=SIH-OBSMER
-ProgramCode.SIH_OBSMER=SIH-OBSMER
-ProgramCode.SIH_STATPECHE_CONFLIT=SIH-ACTIFLOT-CONFLIT
-ProgramCode.STAT_PECHE=SIH-ACTIFLOT
-SaleDateControlByProgram.MAX_DAYS_AFTER_FISHING_TRIP=SIH-OBSMER|3,SIH-OBSVENTE|3
-BatchControl.SORTING_CRITERIA_PARAMETER_NEEDS_REFERENCE_WEIGHT=DRESSING,SIZE_UNLI_CAT,SEX
-BatchControl.CHILDREN_SUM_DIFFERENCE_BETWEEN_REFERENCE_AND_SIZE_WEIGHT_RULE1_THRESHOLD_PERCENT=SIH-OBSMER|50,SIH-OBSVENTE|50
-BatchControl.CHILDREN_SUM_DIFFERENCE_BETWEEN_REFERENCE_AND_SIZE_WEIGHT_RULE1_KILO_MIN=SIH-OBSMER|5,SIH-OBSVENTE|5
-BatchControl.CHILDREN_SUM_DIFFERENCE_BETWEEN_REFERENCE_AND_SIZE_WEIGHT_RULE2_THRESHOLD_PERCENT=SIH-OBSMER|100,SIH-OBSVENTE|100
-BatchControl.CHILDREN_SUM_DIFFERENCE_BETWEEN_REFERENCE_AND_SIZE_WEIGHT_RULE2_KILO_MAX=SIH-OBSMER|5,SIH-OBSVENTE|5
-ProgramManagedDataTypeMapping.FISHING_TRIP=SIH-OBSMER|5
-ProgramManagedDataTypeMapping.SALE=SIH-OBSVENTE|8
-ProgramObjectTypeMapping.FISHING_TRIP=SIH-OBSMER|OBSERVED_FISHING_TRIP
-ProgramObjectTypeMapping.SALE=SIH-OBSVENTE|OBSERVED_SALE
-ProgramPrivilegeId.MANAGER=1
-ProgramPrivilegeId.QUALIFICATOR=5
-ProgramPrivilegeId.RECORDER=2
-ProgramPrivilegeId.VALIDATOR=4
-ProgramPrivilegeId.VIEWER=3
-QualitativeValueId.ABNORMAL=328
-QualitativeValueId.ANOTHER_SURVEY_NO=847
-QualitativeValueId.ANOTHER_SURVEY_YES=846
-QualitativeValueId.DIRECT_SURVEY=965
-QualitativeValueId.DISCARD_TYPE_ANIMALS=407
-QualitativeValueId.ESTIMATE_SURVEY=967
-QualitativeValueId.FRY_STATUS=142
-QualitativeValueId.INDIRECT_SURVEY=966
-QualitativeValueId.INTEGRAL_PRESENTATION=139
-QualitativeValueId.IS_SAMPLING=415
-QualitativeValueId.LANDING=203
-QualitativeValueId.NON_SEXED_SEX=302
-QualitativeValueId.VALIDATION_PROGRAM_DO_CORRECTION=942
-QualitativeValueId.VALIDATION_SUPERVISOR_NO=418
-QualitativeValueId.VALIDATION_SUPERVISOR_YES=417
-QualitativeValueId.SORTING_TYPE_TPN=1746
-QualitativeValueId.SORTING_TYPE_TCC=1747
-QualitativeValueId.REJECTED=204
-QualitativeValueId.VRAC=311
-QualityFlagCode.BAD=4
-QualityFlagCode.CORRECTED=5
-QualityFlagCode.DOUBTFUL=3
-QualityFlagCode.GOOD=1
-QualityFlagCode.INCOMPLETE=8
-QualityFlagCode.MISSING=9
-QualityFlagCode.NOTQUALIFIED=0
-QualityFlagCode.OUT_OF_STAT=2
-QualityFlagConfiguration.COLOR_MAPPING=GOOD|0,128,0;DOUBTFUL|255,128,0;BAD|255,0,0;CORRECTED|0,128,255
-QualityFlagConfiguration.INVALID_FLAG_LIST=2,4,8,9
-SaleTypeId.COOPERATIVE=-5
-SaleTypeId.CRIEE=1
-SaleTypeId.HORS_CONTROLE=9
-SaleTypeId.MARCHE_EXTERIEUR=5
-SaleTypeId.MARCHE_INTERIEUR=4
-SaleTypeId.MAREYEUR=2
-SaleTypeId.POISSONNIER=-6
-SaleTypeId.PRODUCTEUR=6
-SaleTypeId.RESTAURATION_COLLECTIVE=-3
-SaleTypeId.RESTAURATION_PRIVEE=-2
-SaleTypeId.RETRAIT_OP=7
-SaleTypeId.RETRAIT_SANITAIRE=8
-SaleTypeId.SUPERMARCHE=-4
-SaleTypeId.TRANSFORMATEUR=3
-SaleTypeId.VENTE_PARTICULIER=-1
-SamplingSchemeControl.MANDATORY_PROGRAM_LIST=SIH-OBSVENTE
-SpatialItemTypeId.DEPTH_GRADIENT=1
-SpatialItemTypeId.DISTANCE_TO_COAST_GRADIENT=3
-SpatialItemTypeId.GEAR=5
-SpatialItemTypeId.METIER=7
-SpatialItemTypeId.NEARBY_SPECIFIC_AREA=2
-SpatialItemTypeId.TAXON_GROUP=4
-StatusCode.DELETED=3
-StatusCode.DISABLE=0
-StatusCode.ENABLE=1
-StatusCode.TEMPORARY=2
-StorageStateValues.CLOSED=69
-SurveyQualificationId.DIRECT=0
-SurveyQualificationId.ESTIMATION=0
-SurveyQualificationId.INDIRECT=0
-SurveyQualificationId.PREDOCUMENTATION=0
-SurveyQualificationId.UNKNOWN=0
-SynchronizationStatus.DELETED=DELETED
-SynchronizationStatus.DIRTY=DIRTY
-SynchronizationStatus.READY_TO_SYNCHRONIZE=READY_TO_SYNC
-SynchronizationStatus.SYNCHRONIZED=SYNC
-TaxonGroupId.FISH=1712
-TaxonGroupTypeCode.COMMERCIAL_SPECIES=2
-TaxonGroupTypeCode.METIER_SPECIES=3
-TaxonomicLevelCode.SPECIES=SPECIES
-TaxonomicLevelCode.VARIETY=SUBSPECIES
-TranscribingSideId.IN=2
-TranscribingSideId.IN_OUT=3
-TranscribingSideId.OUT=1
-TranscribingSystemId.FAO=4
-TranscribingSystemId.HARMONIE=5
-TranscribingSystemId.OFIMER=3
-TranscribingSystemId.SIPA=2
-UnitId.DAY=17
-UnitId.DECIMAL_HOURS=9
-UnitId.MILLIMETER=6
-UnitId.NONE=1
-UserProfilId.OBSERVER=2
-UserProfilId.PROJECT_MEMBER=3
-UserProfilId.REFERENTIAL_ADMINISTRATOR=1
-UserProfilId.USER=4
-VesselTypeId.FISHING_VESSEL=1
-VesselTypeId.FISHING_VESSEL_GROUP=2
-VesselTypeId.PLEASURE_BOAT=4
-VesselTypeId.SCIENTIFIC_RESEARCH_VESSEL=8
-VesselTypeId.SHELLFISH_GATHERER=3
-ZoneCompetenceMapping.GROUND=Corse|394;391,Guadeloupe|430,Guyanne|423,La Réunion|433,Martinique|425,Mayotte|424;429,Méditerranée|408;410;420;415;419;415;419,Mer du nord manche atlantique|386;387;388;389;390;392;393;395;396;397;398;399;400;401;402;403;404;405;406;407;409;411;412;414;416;417;418;421;422;432;435;436,Saint Pierre et Miquelon|434
-ZoneCompetenceMapping.SEA=Corse|4022,Guadeloupe|4020,Guyanne|4020,La Réunion|4028,Martinique|4020,Mayotte|4028,Méditerranée|4022,Mer du nord manche atlantique|4018,Saint Pierre et Miquelon|4017
-ZoneCompetenceMapping.DEFAULT_LOCATION_LEVEL=Corse|142,Guadeloupe|158;159,Guyanne|154;156,La Réunion|151;152,Martinique|158;159,Mayotte|,Méditerranée|142,Mer du nord manche atlantique|113;114,Saint Pierre et Miquelon|101
+#MatrixId.SUPPORT_WITH_GEAR=17
+#MatrixId.SUPPORT_WITH_METIER=18
+#LocationLevelId.RECTANGLE_STATISTIQUE_MED=145
-# 10/01/2012 BLA Need to retrieve a Location from a given position (Lat/Long)
-LocationLevelId.RECTANGLE_STATISTIQUE_MED=145
-
################################################################################
### Ajout pour Tutti ###########################################################
################################################################################
-# zone d'étude
-LocationLevelId.PROGRAM=301
-# strate
-LocationLevelId.STRATA=302
-# sous strate
-LocationLevelId.SUB_STRATA=303
-# localité
-LocationLevelId.LOCALITE=304
-# radiale
-LocationLevelId.RADIALE=305
+# zone d'étude SCIENTIFIC_CRUISE_PROGRAM
+#LocationLevelId.PROGRAM=301
+# strate SCIENTIFIC_CRUISE_STRATA
+#LocationLevelId.STRATA=302
+# sous strate SCIENTIFIC_CRUISE_SUB_STRATA
+#LocationLevelId.SUB_STRATA=303
+# localité SCIENTIFIC_CRUISE_LOCALITE
+#LocationLevelId.LOCALITE=304
+# radiale SCIENTIFIC_CRUISE_RADIALE
+#LocationLevelId.RADIALE=305
# Catégorie Sex
-PmfmId.SEX=196
+#PmfmId.SEX=196
QualitativeValueId.SEX_UNDEFINED=299
-QualitativeValueId.SEX_MALE=300
-QualitativeValueId.SEX_FEMALE=301
+#QualitativeValueId.SEX_MALE=300
+#QualitativeValueId.SEX_FEMALE=301
# Catégorie classe de tri
-PmfmId.SIZE_CATEGORY=198
-QualitativeValueId.SIZE_SMALL=307
-QualitativeValueId.SIZE_MEDIUM=306
-QualitativeValueId.SIZE_BIG=305
+#PmfmId.SIZE_CATEGORY=198
+#QualitativeValueId.SIZE_SMALL=307
+#QualitativeValueId.SIZE_MEDIUM=306
+#QualitativeValueId.SIZE_BIG=305
# Catégorie Age
-PmfmId.AGE=1430
+#PmfmId.AGE=1430
# Catégorie maturité
-PmfmId.MATURITY=174
+#PmfmId.MATURITY=174
QualitativeValueId.MATURITY_1=272
QualitativeValueId.MATURITY_2=273
QualitativeValueId.MATURITY_3=274
@@ -338,44 +64,44 @@
QualitativeValueId.MATURITY_5=276
# Catégorie macro-déchet
-PmfmId.MARINE_LITTER_TYPE=1421
+#PmfmId.MARINE_LITTER_TYPE=1421
# Classe de taille macro-déchet
-PmfmId.MARINE_LITTER_SIZE_CATEGORY=1422
+#PmfmId.MARINE_LITTER_SIZE_CATEGORY=1422
# Pour stocker Cruise.surveyPart
-PmfmId.SURVEY_PART=1432
+#PmfmId.SURVEY_PART=1432
-PmfmId.STATION_NUMBER=1243
-PmfmId.TRAWL_DISTANCE=113
+#PmfmId.STATION_NUMBER=1243
+#PmfmId.TRAWL_DISTANCE=113
-PmfmId.HAUL_VALID=1163
-QualitativeValueId.HAUL_VALID_YES=1575
-QualitativeValueId.HAUL_VALID_NO=1576
+#PmfmId.HAUL_VALID=1163
+#QualitativeValueId.HAUL_VALID_YES=1575
+#QualitativeValueId.HAUL_VALID_NO=1576
-PmfmId.RECTILINEAR_OPERATION=192
-QualitativeValueId.RECTILINEAR_OPERATION_YES=277
-QualitativeValueId.RECTILINEAR_OPERATION_NO=278
+#PmfmId.RECTILINEAR_OPERATION=192
+#QualitativeValueId.RECTILINEAR_OPERATION_YES=277
+#QualitativeValueId.RECTILINEAR_OPERATION_NO=278
# PSFM "Nombre de poche" d'un chalut (écran campagne)
-PmfmId.MULTIRIG_NUMBER=1420
+#PmfmId.MULTIRIG_NUMBER=1420
# PSFM "Liste des poches observées" (écran opération)
-PmfmId.MULTIRIG_AGGREGATION=1424
+#PmfmId.MULTIRIG_AGGREGATION=1424
# PSFM "Poids - observation par une observateur" (écran captures, onglet espèce, benthos, etc)
-PmfmId.WEIGHT_MEASURED=220
+#PmfmId.WEIGHT_MEASURED=220
# PSFM "Vrac/Hors Vrac" - "Organisation des données campagnes"
-PmfmId.SORTED_UNSORTED=1428
-QualitativeValueId.SORTED_VRAC=311
-QualitativeValueId.SORTED_HORS_VRAC=310
-QualitativeValueId.UNSORTED=2146
+#PmfmId.SORTED_UNSORTED=1428
+#QualitativeValueId.SORTED_VRAC=311
+#QualitativeValueId.SORTED_HORS_VRAC=310
+#QualitativeValueId.UNSORTED=2146
-PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE=1429
-QualitativeValueId.SORTING_TYPE_SPECIES=2147
-QualitativeValueId.SORTING_TYPE_BENTHOS=2148
-QualitativeValueId.SORTING_TYPE_PLANCTON=2149
-QualitativeValueId.SORTING_TYPE_MARINE_LITTER=2150
-QualitativeValueId.SORTING_TYPE_ACCIDENTAL_CATCH=2151
+#PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE=1429
+#QualitativeValueId.SORTING_TYPE_SPECIES=2147
+#QualitativeValueId.SORTING_TYPE_BENTHOS=2148
+#QualitativeValueId.SORTING_TYPE_PLANCTON=2149
+#QualitativeValueId.SORTING_TYPE_MARINE_LITTER=2150
+#QualitativeValueId.SORTING_TYPE_ACCIDENTAL_CATCH=2151
PmfmId.SCIENTIFIC_CRUISE_SORTING_TYPE_2=1431
QualitativeValueId.SORTING_TYPE_2_ALIVE_NOT_ITEMIZED=2161
@@ -383,14 +109,14 @@
QualitativeValueId.SORTING_TYPE_2_ALIVE_ITEMIZED=2160
# PSFM "Ouverture verticale (chalut ou drague)" (pour export operation)
-PmfmId.VERTICAL_OPENING=832
+#PmfmId.VERTICAL_OPENING=832
# PSFM "Ouverture Horizontale aux pointes d'ailes" (pour export operation)
-PmfmId.HORIZONTAL_OPENING_WING=827
+#PmfmId.HORIZONTAL_OPENING_WING=827
# PSFM "Ouverture horizontale aux panneaux" (pour export operation)
-PmfmId.HORIZONTAL_OPENING_DOOR=830
+#PmfmId.HORIZONTAL_OPENING_DOOR=830
#PSFM "Remis à l'eau mort ou vivant"
-PmfmId.DEAD_OR_ALIVE=1393
+#PmfmId.DEAD_OR_ALIVE=1393
# PSFM "Pour référencer un autre id de pmfm"
PmfmId.ID_PSFM=1433
@@ -400,24 +126,24 @@
PmfmId.OTOLITHE_ID=1436
# (20=observateur volant, 95=Administrateur SIH) -> L'avantage du 20 est qu'il est inactif (=20), donc plus facilement detectable
-PersonId.UNKNOWN_RECORDER_PERSON=20
+#PersonId.UNKNOWN_RECORDER_PERSON=20
UserProfilId.DEPARTEMENT_PREFIX=PDG-
# 181=PDG-RBE (à confirmer par Vincent)
-DepartmentId.UNKNOWN_RECORDER_DEPARTMENT=181
+#DepartmentId.UNKNOWN_RECORDER_DEPARTMENT=181
-ProgramCode.SCIENTIFIC_CRUISE_PREFIX=CAM-
+#ProgramCode.SCIENTIFIC_CRUISE_PREFIX=CAM-
-ObjectTypeCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
-ObjectTypeCode.OPERATION=OPERATION
+#ObjectTypeCode.SCIENTIFIC_CRUISE=SCIENTIFIC_CRUISE
+#ObjectTypeCode.OPERATION=OPERATION
ObjectTypeCode.CATCH_BATCH=CATCH_BATCH
-ObjectTypeCode.BATCH=BATCH
-ObjectTypeCode.SAMPLE=SAMPLE
+#ObjectTypeCode.BATCH=BATCH
+#ObjectTypeCode.SAMPLE=SAMPLE
-VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER=2
-VesselPersonRoleId.SORT_ROOM_MANAGER=3
-VesselPersonRoleId.RECORDER_PERSON=4
+#VesselPersonRoleId.SCIENTIFIC_CRUISE_MANAGER=2
+#VesselPersonRoleId.SORT_ROOM_MANAGER=3
+#VesselPersonRoleId.RECORDER_PERSON=4
TranscribingTypeId.TAXINOMIE_REFTAX_MNEMONIQUE=55
TranscribingTypeId.TAXINOMIE_COMMUN_NOM_VERNACULAIRE=56
Modified: trunk/tutti-persistence/src/main/resources/tuttiBeanRefFactory.xml
===================================================================
--- trunk/tutti-persistence/src/main/resources/tuttiBeanRefFactory.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/main/resources/tuttiBeanRefFactory.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -29,14 +29,12 @@
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <import resource="classpath*:applicationContext-conf.xml"/>
-
<bean id="TuttiBeanRefFactory"
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
- <value>classpath:applicationContext-conf.xml</value>
- <value>classpath:applicationContext-dataSource-${dataSource.type}.xml</value>
+ <value>classpath:applicationContext-conf-tutti.xml</value>
+ <value>classpath:applicationContext-dataSource-local.xml</value>
<value>classpath:applicationContext-entities.xml</value>
<value>classpath:applicationContext-service.xml</value>
<value>classpath:applicationContext-service-tutti.xml</value>
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/AttachmentPersistenceServiceWriteTest.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -75,7 +75,7 @@
long buildTime = System.nanoTime();
attachment.setName("AttachmentName-" + buildTime);
attachment.setComment("AttachmentComment-" + buildTime);
- File fileToAttach = dbResource.getConfig().getDbConfigurationPath();
+ File fileToAttach = dbResource.getConfig().getConfigFile();
Attachment savedAttachment = service.createAttachment(attachment, fileToAttach);
assertAttachment(attachment, savedAttachment);
Modified: trunk/tutti-persistence/src/test/resources/beanRefFactoryWitNoDb.xml
===================================================================
--- trunk/tutti-persistence/src/test/resources/beanRefFactoryWitNoDb.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-persistence/src/test/resources/beanRefFactoryWitNoDb.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -33,7 +33,7 @@
class="org.springframework.context.support.ClassPathXmlApplicationContext">
<constructor-arg>
<list>
- <value>applicationContext-conf.xml</value>
+ <value>classpath:applicationContext-conf-tutti.xml</value>
<value>applicationContext-service-resources.xml</value>
</list>
</constructor-arg>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -220,6 +220,11 @@
driver.sanityDb();
}
+ @Override
+ public void clearCache(String cacheName) {
+ driver.clearCache(cacheName);
+ }
+
public static final DateFormat EXPORT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
public static final String EXPORT_DIRECTORY_FORMAT = "tutti-%s-%s";
@@ -857,8 +862,8 @@
}
@Override
- public Caracteristic getHorizontalOpeningWingCaracteristic() {
- return driver.getHorizontalOpeningWingCaracteristic();
+ public Caracteristic getHorizontalOpeningWingsCaracteristic() {
+ return driver.getHorizontalOpeningWingsCaracteristic();
}
@Override
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiServiceContext.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -29,13 +29,12 @@
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.opensymphony.xwork2.util.ValueStack;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
import fr.ifremer.tutti.TuttiConfiguration;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
import org.nuiton.validator.xwork2.XWork2ValidatorUtil;
import java.io.Closeable;
@@ -65,19 +64,14 @@
protected final TuttiDataContext dataContext;
- protected final RessourceClassLoader resourceLoader;
-
protected final LoadingCache<Class<? extends TuttiService>, TuttiService> services;
- public TuttiServiceContext(RessourceClassLoader resourceLoader,
- TuttiConfiguration config) {
- this(resourceLoader, config, new TuttiDataContext());
+ public TuttiServiceContext(TuttiConfiguration config) {
+ this(config, new TuttiDataContext());
}
- public TuttiServiceContext(RessourceClassLoader resourceLoader,
- TuttiConfiguration config,
+ public TuttiServiceContext(TuttiConfiguration config,
TuttiDataContext dataContext) {
- this.resourceLoader = resourceLoader;
this.config = config;
this.dataContext = dataContext;
// add datacontext in shared valueStack
@@ -103,10 +97,6 @@
return config;
}
- public RessourceClassLoader getResourceLoader() {
- return resourceLoader;
- }
-
public TuttiDataContext getDataContext() {
return dataContext;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -115,7 +115,7 @@
weightComputingService = getService(WeightComputingService.class);
verticalOpeningCaracteristic = persistenceService.getVerticalOpeningCaracteristic();
- horizontalOpeningWingCaracteristic = persistenceService.getHorizontalOpeningWingCaracteristic();
+ horizontalOpeningWingCaracteristic = persistenceService.getHorizontalOpeningWingsCaracteristic();
horizontalOpeningDoorCaracteristic = persistenceService.getHorizontalOpeningDoorCaracteristic();
weightMeasuredCaracteristic = persistenceService.getWeightMeasuredCaracteristic();
pmfmIdCaracteristic = persistenceService.getPmfmIdCaracteristic();
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialSynchronizeService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialSynchronizeService.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/TuttiReferentialSynchronizeService.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -24,17 +24,16 @@
* #L%
*/
+import com.google.common.collect.ImmutableSet;
+import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroContext;
import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroResult;
import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroService;
-import fr.ifremer.tutti.TuttiConfiguration;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator;
import fr.ifremer.tutti.service.AbstractTuttiService;
-import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
import java.io.File;
-import java.util.Properties;
+import java.util.Set;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -42,40 +41,138 @@
*/
public class TuttiReferentialSynchronizeService extends AbstractTuttiService {
- protected PersistenceService persistenceService;
-
protected ReferentialSynchroService synchroService;
+ protected static Set<String> TABLE_NAMES = ImmutableSet.<String>builder().add(
+ "STATUS",
+ "QUALITY_FLAG",
+
+ // PMFM
+ "UNIT",
+ "AGGREGATION_LEVEL",
+ "PARAMETER_GROUP",
+ "QUALITATIVE_VALUE",
+ "PARAMETER",
+ "MATRIX",
+ "FRACTION",
+ "FRACTION2MATRIX",
+ "METHOD",
+ "PMFM",
+ "PMFM2QUALITATIVE_VALUE",
+
+ // GEAR
+ "GEAR_CLASSIFICATION",
+ "GEAR_CLASSIFICATION_ASSOCIATIO",
+ "GEAR",
+ "GEAR_ASSOCIATION",
+
+ // LOCATION
+ "LOCATION_CLASSIFICATION",
+ "LOCATION_LEVEL",
+ "LOCATION_ASSOCIATION",
+ "LOCATION",
+ "LOCATION_HIERARCHY",
+ "LOCATION_HIERARCHY_EXCEPTION",
+
+ // TAXON
+ "TAXONOMIC_LEVEL",
+ "REFERENCE_TAXON",
+ "TAXON_NAME",
+ "TAXON_INFORMATION",
+ "TAXON_INFORMATION_HISTORY",
+ "VIRTUAL_COMPONENT",
+ "TAXON_NAME_HISTORY",
+ "REFERENCE_DOCUMENT",
+ "AUTHOR",
+ "CITATION",
+
+ // TAXON GROUP
+ "TAXON_GROUP_TYPE",
+ "TAXON_GROUP",
+ "TAXON_GROUP_HISTORICAL_RECORD",
+ "TAXON_GROUP_INFORMATION",
+
+ // TRANSCRIBING
+ "TRANSCRIBING_ITEM",
+ "TRANSCRIBING_ITEM_TYPE",
+ "TRANSCRIBING_SIDE",
+ "TRANSCRIBING_SYSTEM",
+
+ // CONVERSION
+ "ROUND_WEIGHT_CONVERSION",
+ "WEIGHT_LENGTH_CONVERSION",
+ "UNIT_CONVERSION",
+
+ // VESSEL
+ "VESSEL_TYPE",
+ "VESSEL_REGISTRATION_PERIOD",
+ "VESSEL_FEATURES",
+ "VESSEL",
+
+ // PERSON
+ "USER_PROFIL",
+ "DEPARTMENT",
+ "PERSON",
+ "PERSON2USER_PROFIL",
+
+ // VESSEL_PERSON_ROLE
+ "VESSEL_PERSON_ROLE",
+ "VESSEL_PERSON",
+
+ // ORDER
+ "ORDER_ITEM",
+
+ // PROGRAM (since 3.3.5)
+ "PROGRAM",
+ "PROGRAM2LOCATION",
+ "PROGRAM2LOCATION_CLASSIF",
+
+ // STRATEGY (since 3.5)
+ "ACQUISITION_LEVEL",
+ "PROGRAM_PRIVILEGE",
+ "PROGRAM2DEPARTMENT",
+ "PROGRAM2PERSON_EXCEPTION",
+ "PROGRAM2PERSON",
+ "STRATEGY",
+ "STRATEGY2MANAGER_PERSON",
+ "PMFM_APPLIED_STRATEGY",
+ "APPLIED_STRATEGY",
+ "PMFM_STRATEGY",
+ "REFERENCE_TAXON_STRATEGY",
+ "STRATEGY2GEAR",
+ // FIXME-tchemit-2014-04-19 This table fails to update
+ //"APPLIED_PERIOD",
+
+ // OTHER
+ "PRECISION_TYPE",
+ "NUMERICAL_PRECISION",
+ "PHOTO_TYPE",
+ "OBJECT_TYPE",
+ "ORDER_TYPE",
+ "ANALYSIS_INSTRUMENT"
+ ).build();
+
@Override
public void setServiceContext(TuttiServiceContext context) {
super.setServiceContext(context);
synchroService = TuttiPersistenceServiceLocator.getReferentialSynchroService();
- persistenceService = getService(PersistenceService.class);
}
- public void prepare(File dbDirectory, ReferentialSynchroResult result) {
- Properties remoteConnectionProperties = getRemoteProperties(dbDirectory);
- synchroService.prepare(remoteConnectionProperties, result);
+ public ReferentialSynchroContext createSynchroContext(File dbDirectory) {
+ ReferentialSynchroContext synchroContext = ReferentialSynchroContext.newContext(
+ TABLE_NAMES,
+ dbDirectory,
+ new ReferentialSynchroResult()
+ );
+ return synchroContext;
}
- public void synchronize(File dbDirectory,
- ReferentialSynchroResult result) {
- Properties remoteConnectionProperties = getRemoteProperties(dbDirectory);
- synchroService.synchronize(remoteConnectionProperties, result);
+ public void prepare(ReferentialSynchroContext synchroContext) {
+ synchroService.prepare(synchroContext);
}
- protected Properties getRemoteProperties(File dbDirectory) {
- Properties remoteConnectionProperties = new Properties();
- TuttiConfiguration config = context.getConfig();
-
- String jdbcUrl = TuttiEntities.getJdbcUrl(dbDirectory,
- config.getDbName());
-
- TuttiEntities.fillConnectionProperties(remoteConnectionProperties,
- jdbcUrl,
- config.getJdbcUsername(),
- config.getJdbcPassword());
- return remoteConnectionProperties;
+ public void synchronize(ReferentialSynchroContext synchroContext) {
+ synchroService.synchronize(synchroContext);
}
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/AbstractServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/AbstractServiceTest.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/AbstractServiceTest.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -53,9 +53,11 @@
protected TuttiServiceContext serviceContext;
- protected abstract TuttiServiceContext createServiceContext(RessourceClassLoader loader,
- TuttiConfiguration config);
+// protected abstract TuttiServiceContext createServiceContext(RessourceClassLoader loader,
+// TuttiConfiguration config);
+ protected abstract TuttiServiceContext createServiceContext(TuttiConfiguration config);
+
@Before
public void setUp() throws Exception {
@@ -74,12 +76,12 @@
datadirectory.getAbsolutePath());
applicationConfig.parse();
- RessourceClassLoader loader =
- new RessourceClassLoader(getClass().getClassLoader());
+// RessourceClassLoader loader = new RessourceClassLoader(getClass().getClassLoader());
TuttiConfiguration config = new TuttiConfiguration(applicationConfig);
- serviceContext = createServiceContext(loader, config);
+// serviceContext = createServiceContext(loader, config);
+ serviceContext = createServiceContext(config);
ConverterUtil.deregister();
ConverterUtil.initConverters();
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/DecoratorServiceTest.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -27,7 +27,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.LabelAware;
import fr.ifremer.tutti.TuttiConfiguration;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.Attachment;
import fr.ifremer.tutti.persistence.entities.data.Attachments;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
@@ -75,9 +74,13 @@
private DecoratorService service;
+ // @Override
+// protected TuttiServiceContext createServiceContext(RessourceClassLoader loader, TuttiConfiguration config) {
+// return new TuttiServiceContext(loader, config);
+// }
@Override
- protected TuttiServiceContext createServiceContext(RessourceClassLoader loader, TuttiConfiguration config) {
- return new TuttiServiceContext(loader, config);
+ protected TuttiServiceContext createServiceContext(TuttiConfiguration config) {
+ return new TuttiServiceContext(config);
}
@Before
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -27,10 +27,8 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.io.Files;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.TuttiConfigurationOption;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
@@ -49,6 +47,7 @@
import org.junit.runner.Description;
import org.nuiton.config.ApplicationConfig;
import org.nuiton.i18n.I18n;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
import java.io.File;
import java.io.IOException;
@@ -117,9 +116,10 @@
}
}
- protected TuttiServiceContext createServiceContext(RessourceClassLoader loader,
- TuttiConfiguration config) {
- return new TuttiServiceContext(loader, config) {
+ // protected TuttiServiceContext createServiceContext(RessourceClassLoader loader,
+ protected TuttiServiceContext createServiceContext(TuttiConfiguration config) {
+// return new TuttiServiceContext(loader, config) {
+ return new TuttiServiceContext(config) {
Map<Class<?>, Integer> counts = Maps.newHashMap();
@@ -139,11 +139,11 @@
@Override
public void prepareConfig(ApplicationConfig applicationConfig,
File resourceDirectory) {
- applicationConfig.loadDefaultOptions(
- TuttiConfigurationOption.values());
+ TuttiConfiguration.getDefaultApplicationConfig(applicationConfig);
+
applicationConfig.setDefaultOption(
- "tutti.basedir",
+ TuttiConfigurationOption.BASEDIR.getKey(),
resourceDirectory.getAbsolutePath());
}
@@ -204,7 +204,8 @@
protected void before(Description description) throws Throwable {
super.before(description);
- serviceContext = createServiceContext(loader, getConfig());
+// serviceContext = createServiceContext(loader, getConfig());
+ serviceContext = createServiceContext(getConfig());
I18n.init(null, Locale.FRANCE);
serviceContext.getConfig().setCsvSeparator(';');
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 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ValidationServiceTest.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -26,7 +26,6 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.TuttiConfiguration;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.Cruises;
import fr.ifremer.tutti.persistence.entities.data.Program;
@@ -59,11 +58,16 @@
private TuttiDataContextFake dataContext;
@Override
- protected TuttiServiceContext createServiceContext(RessourceClassLoader loader,
- TuttiConfiguration config) {
- return new TuttiServiceContext(loader, config, dataContext = new TuttiDataContextFake());
+ protected TuttiServiceContext createServiceContext(TuttiConfiguration config) {
+ return new TuttiServiceContext(config, dataContext = new TuttiDataContextFake());
}
+// @Override
+// protected TuttiServiceContext createServiceContext(RessourceClassLoader loader,
+// TuttiConfiguration config) {
+// return new TuttiServiceContext(loader, config, dataContext = new TuttiDataContextFake());
+// }
+
@Before
public void setUp() throws Exception {
Modified: trunk/tutti-ui-swing/pom.xml
===================================================================
--- trunk/tutti-ui-swing/pom.xml 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/pom.xml 2014-04-21 13:27:20 UTC (rev 1718)
@@ -207,6 +207,33 @@
<artifactId>swingx-autocomplete</artifactId>
</dependency>
+ <!-- Spring -->
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
@@ -263,6 +290,15 @@
</goals>
</execution>
</executions>
+ <!-- Can't remove this, AdagionConfiguration expose it -->
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>${springVersion}</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
</plugin>
<plugin>
Modified: trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/src/license/THIRD-PARTY.properties 2014-04-21 13:27:20 UTC (rev 1718)
@@ -1,15 +1,24 @@
# Generated by org.codehaus.mojo.license.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
+# - AL 2.0
# - Affero General Public License (AGPL)
# - Apache License
+# - Apache License 2.0
+# - Apache License Version 2.0
+# - Apache License, version 2.0
# - BSD License
# - BSD-style license
+# - Common Development and Distribution License
# - Common Development and Distribution License (CDDL) v1.0
# - Common Public License Version 1.0
+# - Eclipse Distribution License (EDL), Version 1.0
+# - Eclipse Public License (EPL), Version 1.0
# - Eclipse Public License - v 1.0
# - GNU Affero General Public License v3
+# - GNU General Public License (GPL)
# - GNU General Public License - Version 2 with the class path exception
+# - GNU General Public License, Version 2 with the Classpath Exception
# - GNU Lesser General Public License (LGPL), version 2.1
# - GNU Library or Lesser General Public License
# - General Public License (GPL)
@@ -25,13 +34,12 @@
# - New BSD License
# - Public Domain
# - The Apache Software License, Version 2.0
-# - license.txt
+# - WTFPL
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
-#Wed Jan 15 09:38:43 CET 2014
-antlr--antlr--2.7.6=BSD License
+#Mon Apr 21 10:43:33 CEST 2014
batik--batik-awt-util--1.6=The Apache Software License, Version 2.0
batik--batik-bridge--1.6=The Apache Software License, Version 2.0
batik--batik-css--1.6=The Apache Software License, Version 2.0
@@ -47,4 +55,4 @@
batik--batik-xml--1.6=The Apache Software License, Version 2.0
commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0
dom4j--dom4j--1.6.1=BSD License
-javax.transaction--jta--1.1=Common Development and Distribution License (CDDL) v1.0
+javassist--javassist--3.11.0.GA=The Apache Software License, Version 2.0
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -27,15 +27,15 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import org.nuiton.jaxx.application.ApplicationIOUtil;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionException;
import fr.ifremer.tutti.LabelAware;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.ui.swing.action.AbstractTuttiAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.jaxx.application.ApplicationIOUtil;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionException;
import org.nuiton.updater.ApplicationInfo;
import org.nuiton.updater.ApplicationUpdaterCallback;
@@ -43,8 +43,8 @@
import java.util.List;
import java.util.Map;
-import static org.nuiton.i18n.I18n.t;
import static org.nuiton.i18n.I18n.n;
+import static org.nuiton.i18n.I18n.t;
/**
* CallBack to update jre, application, i18n.
@@ -203,20 +203,6 @@
TuttiConfiguration config = context.getConfig();
- // must remove the enumeration file at exit
- File enumerationPath = config.getDbEnumerationPath();
- ApplicationIOUtil.forceDeleteOnExit(
- enumerationPath,
- t("tutti.applicationUpdater.updateDone.deleteDirectory.enum.error", enumerationPath)
- );
-
- // must remove the db conf file at exit
- File dbConfPath = config.getDbConfigurationPath();
- ApplicationIOUtil.forceDeleteOnExit(
- dbConfPath,
- t("tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error", dbConfPath)
- );
-
//FIXME-check this is necessary: i18n is no more generated ?
// must also remove i18n directory
File i18nDirectory = context.getConfig().getI18nDirectory();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -26,10 +26,8 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
+import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroContext;
import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroResult;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionException;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
@@ -40,16 +38,22 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.jaxx.application.ApplicationTechnicalException;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionException;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
+import org.nuiton.jaxx.application.type.ApplicationProgressionModel;
import org.nuiton.updater.ApplicationInfo;
import org.nuiton.updater.ApplicationUpdater;
import org.nuiton.updater.ApplicationUpdaterCallback;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.IOException;
import java.util.Map;
+import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
-import static org.nuiton.i18n.I18n.n;
/**
* CallBack to update db.
@@ -166,12 +170,12 @@
info.oldVersion, info.newVersion));
}
- // before install or update, regenerate db configuration files
+// // before install or update, regenerate db configuration files
+//
+// TuttiConfiguration configuration = regenerateDbConf();
+//
+// configuration.generateExternalDbFiles(true);
- TuttiConfiguration configuration = regenerateDbConf();
-
- configuration.generateExternalDbFiles(true);
-
if (dbInstalled) {
// first database, just copy it to correct directory
@@ -237,18 +241,21 @@
log.info(String.format("A database update was downloaded (oldVersion: %s, newVersion: %s), will launch a referential synchronize operation ", info.oldVersion, info.newVersion));
}
TuttiReferentialSynchronizeService service = context.getTuttiReferentialSynchronizeService();
- ReferentialSynchroResult result = new ReferentialSynchroResult();
+
File dbDirectory = getDbDirectory(info);
+ ReferentialSynchroContext synchroContext = service.createSynchroContext(dbDirectory);
+ ReferentialSynchroResult result = synchroContext.getResult();
+
ApplicationActionUI actionUI = context.getActionUI();
- actionUI.getModel().setProgressionModel(result.getProgressionModel());
- service.prepare(dbDirectory, result);
+ actionUI.getModel().setProgressionModel(new DelegateProgressionModel(result.getProgressionModel()));
+ service.prepare(synchroContext);
if (!result.isSuccess()) {
throw new ApplicationTechnicalException(t("tutti.applicationUpdater.synchroDB.prepare.error"), result.getError());
}
- service.synchronize(dbDirectory, result);
+ service.synchronize(synchroContext);
if (!result.isSuccess()) {
throw new ApplicationTechnicalException(t("tutti.applicationUpdater.synchroDB.synchro.error"), result.getError());
@@ -283,4 +290,78 @@
t("tutti.applicationUpdater.synchroDB.writeVersion.error", versionFile));
}
}
+
+ private static class DelegateProgressionModel extends ApplicationProgressionModel {
+
+ private static final long serialVersionUID = 1L;
+
+ private final fr.ifremer.adagio.core.type.ProgressionModel progressionModel;
+
+ public DelegateProgressionModel(fr.ifremer.adagio.core.type.ProgressionModel progressionModel) {
+
+ this.progressionModel = progressionModel;
+ this.progressionModel.addPropertyChangeListener(new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ firePropertyChange(evt.getPropertyName(), evt.getOldValue(), evt.getNewValue());
+ }
+ });
+ }
+
+ @Override
+ public void setMessage(String message) {
+ progressionModel.setMessage(message);
+ }
+
+ @Override
+ public void increments(String message) {
+ progressionModel.increments(message);
+ }
+
+ @Override
+ public String getMessage() {
+ return progressionModel.getMessage();
+ }
+
+ @Override
+ public void setRate(float rate) {
+ progressionModel.setRate(rate);
+ }
+
+ @Override
+ public float getRate() {
+ return progressionModel.getRate();
+ }
+
+ @Override
+ public void increments(int nb) {
+ progressionModel.increments(nb);
+ }
+
+ @Override
+ public void setCurrent(int current) {
+ progressionModel.setCurrent(current);
+ }
+
+ @Override
+ public int getCurrent() {
+ return progressionModel.getCurrent();
+ }
+
+ @Override
+ public void adaptTotal(int total) {
+ progressionModel.adaptTotal(total);
+ }
+
+ @Override
+ public void setTotal(int total) {
+ progressionModel.setTotal(total);
+ }
+
+ @Override
+ public int getTotal() {
+ return progressionModel.getTotal();
+ }
+ }
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -29,7 +29,6 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.TuttiConfiguration;
import fr.ifremer.tutti.ichtyometer.feed.FeedReader;
-import fr.ifremer.tutti.persistence.RessourceClassLoader;
import fr.ifremer.tutti.service.ClosedPersistenceService;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
@@ -165,13 +164,6 @@
protected final TuttiConfiguration config;
/**
- * ClassLoader ressource.
- *
- * @since 0.3
- */
- protected final RessourceClassLoader resourceLoader;
-
- /**
* Service context used by any service.
*
* @since 0.1
@@ -330,8 +322,7 @@
protected TuttiUIContext(TuttiConfiguration config) {
this.config = config;
- this.resourceLoader = new RessourceClassLoader(Thread.currentThread().getContextClassLoader());
- this.serviceContext = new TuttiServiceContext(resourceLoader, config);
+ this.serviceContext = new TuttiServiceContext(config);
Map<Class, State> additionalStates = Maps.newHashMap();
additionalStates.put(BeanFilterableComboBox.class, new BeanFilterableComboBoxState());
@@ -405,9 +396,6 @@
config.prepareDirectories();
- // use our special classLoader (which will read some files from resources from a configuration directory)
- Thread.currentThread().setContextClassLoader(getResourceLoader());
-
// converters are stored in current classloader, we need then to rescan them
// each time we change current classloader
ConverterUtil.deregister();
@@ -428,7 +416,7 @@
// init db configuration
//--------------------------------------------------------------------//
- config.initConfig(getResourceLoader());
+ config.initConfig();
// // clean db cache (avoid a lots of headache :(
// File cacheDirectory = config.getServiceConfig().getPersistenceConfig().getCacheDirectory();
@@ -469,7 +457,7 @@
i18nLocale, i18nDirectory));
}
I18n.init(new UserI18nInitializer(
- i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
+ i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
i18nLocale);
@@ -950,10 +938,6 @@
}
}
- public RessourceClassLoader getResourceLoader() {
- return resourceLoader;
- }
-
//------------------------------------------------------------------------//
//-- Help methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2014-04-21 05:40:03 UTC (rev 1717)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2014-04-21 13:27:20 UTC (rev 1718)
@@ -241,12 +241,12 @@
.addOption(TuttiConfigurationOption.DB_CACHE_DIRECTORY)
.setOptionShortLabel(t("tutti.config.option.persistence.db.cache.directory.shortLabel"))
- .addOption(TuttiConfigurationOption.DB_CONFIGURATION_PATH)
- .setOptionShortLabel(t("tutti.config.option.persistence.db.configurationPath.shortLabel"))
+// .addOption(TuttiConfigurationOption.DB_CONFIGURATION_PATH)
+// .setOptionShortLabel(t("tutti.config.option.persistence.db.configurationPath.shortLabel"))
+//
+// .addOption(TuttiConfigurationOption.DB_ENUMERATION_PATH)
+// .setOptionShortLabel(t("tutti.config.option.persistence.db.enumerationPath.shortLabel"))
- .addOption(TuttiConfigurationOption.DB_ENUMERATION_PATH)
- .setOptionShortLabel(t("tutti.config.option.persistence.db.enumerationPath.shortLabel"))
-
.addOption(TuttiConfigurationOption.JDBC_URL)
.setOptionShortLabel(t("tutti.config.option.persistence.jdbc.url.shortLabel"))
1
0