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
April 2014
- 5 participants
- 75 discussions
Author: maven-release
Date: 2014-04-24 13:01:40 +0200 (Thu, 24 Apr 2014)
New Revision: 1729
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1729
Log:
[maven-release-plugin] copy for tag tutti-3.4
Added:
tags/tutti-3.4/
1
0
r1728 - in branches/tutti-3.4: . tutti-ichtyometer tutti-persistence tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 24 Apr '14
by maven-release@users.forge.codelutin.com 24 Apr '14
24 Apr '14
Author: maven-release
Date: 2014-04-24 13:01:34 +0200 (Thu, 24 Apr 2014)
New Revision: 1728
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1728
Log:
[maven-release-plugin] prepare release tutti-3.4
Modified:
branches/tutti-3.4/pom.xml
branches/tutti-3.4/tutti-ichtyometer/pom.xml
branches/tutti-3.4/tutti-persistence/pom.xml
branches/tutti-3.4/tutti-service/pom.xml
branches/tutti-3.4/tutti-ui-swing/pom.xml
Modified: branches/tutti-3.4/pom.xml
===================================================================
--- branches/tutti-3.4/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
+++ branches/tutti-3.4/pom.xml 2014-04-24 11:01:34 UTC (rev 1728)
@@ -32,7 +32,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.4</version>
<packaging>pom</packaging>
<name>Tutti</name>
@@ -99,13 +99,13 @@
<scm>
<url>
- https://forge.codelutin.com/projects/tutti/repository/branches/tutti-3.4
+ https://forge.codelutin.com/projects/tutti/repository/tags/tutti-3.4
</url>
<connection>
- scm:svn:http://svn.codelutin.com/tutti/branches/tutti-3.4
+ scm:svn:http://svn.codelutin.com/tutti/tags/tutti-3.4
</connection>
<developerConnection>
- scm:svn:https://svn.codelutin.com/tutti/branches/tutti-3.4
+ scm:svn:https://svn.codelutin.com/tutti/tags/tutti-3.4
</developerConnection>
</scm>
<distributionManagement>
Modified: branches/tutti-3.4/tutti-ichtyometer/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-ichtyometer/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
+++ branches/tutti-3.4/tutti-ichtyometer/pom.xml 2014-04-24 11:01:34 UTC (rev 1728)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.4</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-persistence/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-persistence/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
+++ branches/tutti-3.4/tutti-persistence/pom.xml 2014-04-24 11:01:34 UTC (rev 1728)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.4</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-service/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-service/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
+++ branches/tutti-3.4/tutti-service/pom.xml 2014-04-24 11:01:34 UTC (rev 1728)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.4</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-ui-swing/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-ui-swing/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
+++ branches/tutti-3.4/tutti-ui-swing/pom.xml 2014-04-24 11:01:34 UTC (rev 1728)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.4</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
r1727 - in branches/tutti-3.4: . tutti-ichtyometer tutti-persistence tutti-service tutti-ui-swing
by maven-release@users.forge.codelutin.com 24 Apr '14
by maven-release@users.forge.codelutin.com 24 Apr '14
24 Apr '14
Author: maven-release
Date: 2014-04-24 12:58:19 +0200 (Thu, 24 Apr 2014)
New Revision: 1727
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1727
Log:
prepare release 3.4
Modified:
branches/tutti-3.4/pom.xml
branches/tutti-3.4/tutti-ichtyometer/pom.xml
branches/tutti-3.4/tutti-persistence/pom.xml
branches/tutti-3.4/tutti-service/pom.xml
branches/tutti-3.4/tutti-ui-swing/pom.xml
Modified: branches/tutti-3.4/pom.xml
===================================================================
--- branches/tutti-3.4/pom.xml 2014-04-24 10:56:38 UTC (rev 1726)
+++ branches/tutti-3.4/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
@@ -32,7 +32,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.3.5</version>
+ <version>3.4-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Tutti</name>
@@ -99,13 +99,13 @@
<scm>
<url>
- https://forge.codelutin.com/projects/tutti/repository/tags/tutti-3.3.5
+ https://forge.codelutin.com/projects/tutti/repository/branches/tutti-3.4
</url>
<connection>
- scm:svn:http://svn.codelutin.com/tutti/tags/tutti-3.3.5
+ scm:svn:http://svn.codelutin.com/tutti/branches/tutti-3.4
</connection>
<developerConnection>
- scm:svn:https://svn.codelutin.com/tutti/tags/tutti-3.3.5
+ scm:svn:https://svn.codelutin.com/tutti/branches/tutti-3.4
</developerConnection>
</scm>
<distributionManagement>
Modified: branches/tutti-3.4/tutti-ichtyometer/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-ichtyometer/pom.xml 2014-04-24 10:56:38 UTC (rev 1726)
+++ branches/tutti-3.4/tutti-ichtyometer/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.3.5</version>
+ <version>3.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-persistence/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-persistence/pom.xml 2014-04-24 10:56:38 UTC (rev 1726)
+++ branches/tutti-3.4/tutti-persistence/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.3.5</version>
+ <version>3.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-service/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-service/pom.xml 2014-04-24 10:56:38 UTC (rev 1726)
+++ branches/tutti-3.4/tutti-service/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.3.5</version>
+ <version>3.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
Modified: branches/tutti-3.4/tutti-ui-swing/pom.xml
===================================================================
--- branches/tutti-3.4/tutti-ui-swing/pom.xml 2014-04-24 10:56:38 UTC (rev 1726)
+++ branches/tutti-3.4/tutti-ui-swing/pom.xml 2014-04-24 10:58:19 UTC (rev 1727)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>tutti</artifactId>
- <version>3.3.5</version>
+ <version>3.4-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.tutti</groupId>
1
0
Author: maven-release
Date: 2014-04-24 12:56:38 +0200 (Thu, 24 Apr 2014)
New Revision: 1726
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1726
Log:
for tutti-3.4 release
Added:
branches/tutti-3.4/
1
0
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