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
December 2013
- 4 participants
- 66 discussions
09 Dec '13
The Ifremer shared team is pleased to announce the shared-pom-1.0.1 release!
Module commun à l'écriture d'applications Ifremer.
Documentation of the project can be found here:
http://forge.codelutin.com/projects/tutti/ifremer-shared-application
Changes
-------
Changes in this version include:
Fixed Bugs:
o Can't convert table model coordinate when no selection Issue: 3945. Thanks to Tony Chemit. Resolved by tchemit.
Changes:
o Add useful methods on ApplicationDataUtil class Issue: 3949. Thanks to Tony Chemit. Resolved by tchemit.
o Clean poms Issue: 3948. Thanks to Tony Chemit. Resolved by tchemit.
o deploy to tutti third-parties repository (and not ohter-releases) Issue: 3947. Thanks to Tony Chemit. Resolved by tchemit.
Downloads
---------
No release file deployed. (all files are deployed in the maven repository)
Maven artifacts
---------------
Artifacts are deployed in nuiton maven repository
http://maven.nuiton.org/other-releases/
Have fun!
-Ifremer shared team
1
0
r1449 - in application/trunk: . application application-swing
by maven-release@users.forge.codelutin.com 09 Dec '13
by maven-release@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: maven-release
Date: 2013-12-09 22:14:50 +0100 (Mon, 09 Dec 2013)
New Revision: 1449
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1449
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
application/trunk/application-swing/pom.xml
application/trunk/application/pom.xml
application/trunk/pom.xml
Modified: application/trunk/application/pom.xml
===================================================================
--- application/trunk/application/pom.xml 2013-12-09 21:14:42 UTC (rev 1448)
+++ application/trunk/application/pom.xml 2013-12-09 21:14:50 UTC (rev 1449)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.0.1</version>
+ <version>1.1-SNAPSHOT</version>
</parent>
<artifactId>application</artifactId>
Modified: application/trunk/application-swing/pom.xml
===================================================================
--- application/trunk/application-swing/pom.xml 2013-12-09 21:14:42 UTC (rev 1448)
+++ application/trunk/application-swing/pom.xml 2013-12-09 21:14:50 UTC (rev 1449)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.0.1</version>
+ <version>1.1-SNAPSHOT</version>
</parent>
<artifactId>application-swing</artifactId>
Modified: application/trunk/pom.xml
===================================================================
--- application/trunk/pom.xml 2013-12-09 21:14:42 UTC (rev 1448)
+++ application/trunk/pom.xml 2013-12-09 21:14:50 UTC (rev 1449)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.0.1</version>
+ <version>1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Ifremer shared</name>
@@ -76,12 +76,12 @@
</modules>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-shared-1.…</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/application/trunk</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-s…
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/trunk
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-s…
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/trunk
</developerConnection>
</scm>
<distributionManagement>
1
0
Author: maven-release
Date: 2013-12-09 22:14:42 +0100 (Mon, 09 Dec 2013)
New Revision: 1448
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1448
Log:
[maven-release-plugin] copy for tag ifremer-shared-1.0.1
Added:
application/tags/ifremer-shared-1.0.1/
1
0
r1447 - in application/trunk: . application application-swing
by maven-release@users.forge.codelutin.com 09 Dec '13
by maven-release@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: maven-release
Date: 2013-12-09 22:14:33 +0100 (Mon, 09 Dec 2013)
New Revision: 1447
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1447
Log:
[maven-release-plugin] prepare release ifremer-shared-1.0.1
Modified:
application/trunk/application-swing/pom.xml
application/trunk/application/pom.xml
application/trunk/pom.xml
Modified: application/trunk/application/pom.xml
===================================================================
--- application/trunk/application/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
+++ application/trunk/application/pom.xml 2013-12-09 21:14:33 UTC (rev 1447)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.1-SNAPSHOT</version>
+ <version>1.0.1</version>
</parent>
<artifactId>application</artifactId>
Modified: application/trunk/application-swing/pom.xml
===================================================================
--- application/trunk/application-swing/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
+++ application/trunk/application-swing/pom.xml 2013-12-09 21:14:33 UTC (rev 1447)
@@ -27,7 +27,7 @@
<parent>
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.1-SNAPSHOT</version>
+ <version>1.0.1</version>
</parent>
<artifactId>application-swing</artifactId>
Modified: application/trunk/pom.xml
===================================================================
--- application/trunk/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
+++ application/trunk/pom.xml 2013-12-09 21:14:33 UTC (rev 1447)
@@ -33,7 +33,7 @@
<groupId>fr.ifremer.shared</groupId>
<artifactId>shared-pom</artifactId>
- <version>1.1-SNAPSHOT</version>
+ <version>1.0.1</version>
<packaging>pom</packaging>
<name>Ifremer shared</name>
@@ -76,12 +76,12 @@
</modules>
<scm>
- <url>http://svn.forge.codelutin.com/svn/tutti/application/trunk</url>
+ <url>http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-shared-1.…</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-s…
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/tutti/application/tags/ifremer-s…
</developerConnection>
</scm>
<distributionManagement>
1
0
r1446 - in application/trunk: . application application-swing
by tchemit@users.forge.codelutin.com 09 Dec '13
by tchemit@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: tchemit
Date: 2013-12-09 22:08:11 +0100 (Mon, 09 Dec 2013)
New Revision: 1446
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1446
Log:
fixes #3947: deploy to tutti third-parties repository (and not ohter-releases)
fixes #3948: Clean poms
Modified:
application/trunk/application-swing/pom.xml
application/trunk/application/pom.xml
application/trunk/pom.xml
Modified: application/trunk/application/pom.xml
===================================================================
--- application/trunk/application/pom.xml 2013-12-09 21:07:45 UTC (rev 1445)
+++ application/trunk/application/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
@@ -33,65 +33,60 @@
<artifactId>application</artifactId>
<name>Ifremer shared :: Application</name>
- <properties>
-
- </properties>
-
<dependencies>
+ <!-- Commons -->
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-utils</artifactId>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
</dependency>
-
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-config</artifactId>
+ <groupId>commons-beanutils</groupId>
+ <artifactId>commons-beanutils</artifactId>
</dependency>
-
<dependency>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>nuiton-i18n</artifactId>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ </dependency>
+ <!-- Guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <!-- Nuiton -->
<dependency>
- <groupId>commons-beanutils</groupId>
- <artifactId>commons-beanutils</artifactId>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
</dependency>
-
<dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-config</artifactId>
</dependency>
-
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>nuiton-i18n</artifactId>
</dependency>
- <!--dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency-->
-
+ <!-- SwingX -->
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-common</artifactId>
</dependency>
<!-- Logging -->
-
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jcl</artifactId>
<scope>provided</scope>
</dependency>
+ <!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -109,7 +104,6 @@
<execution>
<goals>
<goal>parserJava</goal>
- <goal>parserValidation</goal>
<goal>gen</goal>
</goals>
</execution>
Modified: application/trunk/application-swing/pom.xml
===================================================================
--- application/trunk/application-swing/pom.xml 2013-12-09 21:07:45 UTC (rev 1445)
+++ application/trunk/application-swing/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
@@ -55,101 +55,93 @@
<dependencies>
+ <!-- Sibling -->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>application</artifactId>
<version>${project.version}</version>
</dependency>
+ <!-- Commons -->
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-utils</artifactId>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
</dependency>
-
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-decorator</artifactId>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
</dependency>
-
<dependency>
- <groupId>org.nuiton</groupId>
- <artifactId>nuiton-csv</artifactId>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <scope>runtime</scope>
</dependency>
+ <!-- Guava -->
<dependency>
- <groupId>org.nuiton.i18n</groupId>
- <artifactId>nuiton-i18n</artifactId>
- </dependency>
-
- <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
+ <!-- Nuiton -->
<dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-utils</artifactId>
</dependency>
-
<dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-decorator</artifactId>
</dependency>
-
- <!-- used forApplicationUpdater -->
<dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <scope>runtime</scope>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-csv</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.nuiton.i18n</groupId>
+ <artifactId>nuiton-i18n</artifactId>
+ </dependency>
- <!-- librairie Jaxx -->
+ <!-- JAXX -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-runtime</artifactId>
</dependency>
-
<dependency>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-validator</artifactId>
</dependency>
-
<dependency>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-widgets</artifactId>
</dependency>
- <!-- swing widgets -->
-
+ <!-- SwingX -->
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-core</artifactId>
</dependency>
-
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-common</artifactId>
</dependency>
-
<dependency>
<groupId>org.swinglabs.swingx</groupId>
<artifactId>swingx-autocomplete</artifactId>
</dependency>
<!-- Logging -->
-
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jcl</artifactId>
<scope>runtime</scope>
</dependency>
-
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>runtime</scope>
</dependency>
+ <!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@@ -179,13 +171,13 @@
<executions>
<execution>
<id>scan-sources</id>
- <!--configuration>
+ <configuration>
<entries>
<entry>
<basedir>${maven.gen.dir}/java/</basedir>
</entry>
</entries>
- </configuration-->
+ </configuration>
<goals>
<goal>parserJava</goal>
<goal>parserValidation</goal>
Modified: application/trunk/pom.xml
===================================================================
--- application/trunk/pom.xml 2013-12-09 21:07:45 UTC (rev 1445)
+++ application/trunk/pom.xml 2013-12-09 21:08:11 UTC (rev 1446)
@@ -40,7 +40,9 @@
<description>
Module commun à l'écriture d'applications Ifremer.
</description>
- <url>http://forge.codelutin.com/projects/tutti/ifremer-shared-application</url>
+ <url>
+ http://forge.codelutin.com/projects/tutti/ifremer-shared-application
+ </url>
<inceptionYear>2013</inceptionYear>
<organization>
<name>Ifremer</name>
@@ -85,8 +87,16 @@
<distributionManagement>
<site>
<id>${platform}</id>
- <url>${our.site.repository}/tutti/ifremer-shared-application/${projectId}</url>
+ <url>
+ ${our.site.repository}/tutti/ifremer-shared-application/${projectId}
+ </url>
</site>
+ <repository>
+ <id>nuiton-nexus-deploy</id>
+ <url>
+ http://nexus.nuiton.org/nexus/content/repositories/tutti-third-parties
+ </url>
+ </repository>
<snapshotRepository>
<id>nuiton-nexus-deploy</id>
<url>
@@ -97,52 +107,32 @@
<properties>
+ <!-- Redmine configuration -->
<platform>forge.codelutin.com</platform>
<projectId>tutti</projectId>
- <redmine.versionId>ifremer-shared-application-1.0</redmine.versionId>
+ <redmine.versionId>
+ ifremer-shared-application-${project.version}
+ </redmine.versionId>
<!-- Java version -->
- <!--<maven.compiler.source>1.7</maven.compiler.source>-->
- <!--<maven.compiler.target>1.7</maven.compiler.target>-->
- <!--<signatureArtifactId>java17</signatureArtifactId>-->
- <!--<signatureVersion>1.0</signatureVersion>-->
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+ <signatureArtifactId>java17</signatureArtifactId>
+ <signatureVersion>1.0</signatureVersion>
- <!-- libraries version -->
+ <!-- Libraries Version -->
<nuitonI18nVersion>2.5.2</nuitonI18nVersion>
- <nuitonConfigVersion>3.0-alpha-1</nuitonConfigVersion>
- <nuitonCsvVersion>3.0-alpha-1</nuitonCsvVersion>
- <nuitonDecoratorVersion>3.0-alpha-2</nuitonDecoratorVersion>
- <nuitonUtilsVersion>2.7.1</nuitonUtilsVersion>
- <nuitonValidatorVersion>3.0-alpha-1</nuitonValidatorVersion>
-
<jaxxVersion>2.6</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
-
- <xworkVersion>2.3.15.1</xworkVersion>
- <aspectj.version>1.6.6</aspectj.version>
- <spring.version>3.2.3.RELEASE</spring.version>
- <slf4j.version>1.6.1</slf4j.version>
- <ehcache.version>2.3.0</ehcache.version>
- <javassist.version>3.12.1.GA</javassist.version>
- <hsqldb.version>2.2.9</hsqldb.version>
- <jdbc.hsqldb.version>1.8.0.10</jdbc.hsqldb.version>
-
<slf4jVersion>1.7.5</slf4jVersion>
- <hibernateVersion>3.6.10.Final</hibernateVersion>
- <adagioVersion>3.4.0-1</adagioVersion>
- <birtVersion>4.2.1a</birtVersion>
-
- <bluecoveVersion>2.1.0</bluecoveVersion>
-
+ <!-- I18n configuration -->
<i18n.bundles>fr_FR,en_GB</i18n.bundles>
<i18n.silent>true</i18n.silent>
- <!-- locales for the site generation, by default only french -->
- <locales>fr</locales>
-
- <!-- do not relatize links in generated site -->
+ <!-- Site configuration -->
+ <locales>fr</locales> <!-- locales for the site, by default only french -->
<relativizeDecorationLinks>false</relativizeDecorationLinks>
<!-- license header configuration -->
@@ -183,57 +173,63 @@
<dependencyManagement>
<dependencies>
- <!-- librairies utils -->
+ <!-- Commons -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>2.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-svnexe</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Guava -->
<dependency>
- <groupId>org.milyn</groupId>
- <artifactId>flute</artifactId>
- <version>1.3</version>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guavaVersion}</version>
</dependency>
+ <!-- Nuiton -->
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-profiling</artifactId>
<version>2.7.1</version>
</dependency>
-
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
- <version>${nuitonUtilsVersion}</version>
+ <version>2.7.1</version>
</dependency>
-
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-decorator</artifactId>
- <version>${nuitonDecoratorVersion}</version>
+ <version>3.0-alpha-2</version>
</dependency>
-
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-config</artifactId>
- <version>${nuitonConfigVersion}</version>
+ <version>3.0-alpha-1</version>
</dependency>
-
<dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-csv</artifactId>
- <version>${nuitonCsvVersion}</version>
+ <version>3.0-alpha-1</version>
</dependency>
-
<dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>${guavaVersion}</version>
- </dependency>
-
- <dependency>
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
<version>${nuitonI18nVersion}</version>
</dependency>
- <!-- librairie Jaxx -->
+ <!-- JAXX -->
<dependency>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-runtime</artifactId>
@@ -272,52 +268,6 @@
<version>${swingXVersion}</version>
</dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
- <version>2.0</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.maven.scm</groupId>
- <artifactId>maven-scm-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven.scm</groupId>
- <artifactId>maven-scm-provider-svnexe</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>${hibernateVersion}</version>
- </dependency>
-
- <dependency>
- <groupId>fr.ifremer.adagio</groupId>
- <artifactId>adagio-core-allegro</artifactId>
- <version>${adagioVersion}</version>
- <exclusions>
- <exclusion>
- <groupId>org.andromda.profiles.emf.uml2</groupId>
- <artifactId>andromda-profile-common</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.andromda.cartridges</groupId>
- <artifactId>andromda-spring-cartridge</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.andromda.cartridges</groupId>
- <artifactId>andromda-hibernate-cartridge</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.andromda.cartridges</groupId>
- <artifactId>andromda-java-cartridge</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
@@ -331,120 +281,6 @@
<version>${slf4jVersion}</version>
</dependency>
- <!-- Pour SPRING : -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>${spring.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>${commonsIoVersion}</version>
- </dependency>
-
- <dependency>
- <groupId>org.eclipse.birt.runtime</groupId>
- <artifactId>org.eclipse.birt.runtime</artifactId>
- <version>${birtVersion}</version>
- <exclusions>
- <exclusion>
- <groupId>milyn</groupId>
- <artifactId>flute</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.milyn</groupId>
- <artifactId>flute</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>${jdbc.hsqldb.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>${hsqldb.version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.esotericsoftware.yamlbeans</groupId>
- <artifactId>yamlbeans</artifactId>
- <version>1.06</version>
- </dependency>
-
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>1.9.5</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.itextpdf</groupId>
- <artifactId>itextpdf</artifactId>
- <version>5.4.1</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.xhtmlrenderer</groupId>
- <artifactId>flying-saucer-pdf-itext5</artifactId>
- <version>9.0.2</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>org.freemarker</groupId>
- <artifactId>freemarker</artifactId>
- <version>2.3.19</version>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
- <groupId>net.sf.bluecove</groupId>
- <artifactId>bluecove</artifactId>
- <version>${bluecoveVersion}</version>
- </dependency>
-
- <dependency>
- <groupId>net.sf.bluecove</groupId>
- <artifactId>bluecove-gpl</artifactId>
- <version>${bluecoveVersion}</version>
- </dependency>
-
</dependencies>
</dependencyManagement>
1
0
r1445 - application/trunk/application/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 09 Dec '13
by tchemit@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: tchemit
Date: 2013-12-09 22:07:45 +0100 (Mon, 09 Dec 2013)
New Revision: 1445
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1445
Log:
fix i18n
Modified:
application/trunk/application/src/main/resources/i18n/application_en_GB.properties
Modified: application/trunk/application/src/main/resources/i18n/application_en_GB.properties
===================================================================
--- application/trunk/application/src/main/resources/i18n/application_en_GB.properties 2013-12-09 21:07:13 UTC (rev 1444)
+++ application/trunk/application/src/main/resources/i18n/application_en_GB.properties 2013-12-09 21:07:45 UTC (rev 1445)
@@ -3,5 +3,5 @@
application.common.unit.kg=Kilogram
application.common.unit.short.g=g
application.common.unit.short.kg=kg
-application.property.get.error=
-application.property.set.error=
+application.property.get.error=Property %1s not found on object of type %2s
+application.property.set.error=Property %1s not found on object of type %2s
1
0
r1444 - application/trunk/application/src/main/java/fr/ifremer/shared/application
by tchemit@users.forge.codelutin.com 09 Dec '13
by tchemit@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: tchemit
Date: 2013-12-09 22:07:13 +0100 (Mon, 09 Dec 2013)
New Revision: 1444
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1444
Log:
fixes #3949: Add useful methods on ApplicationDataUtil class
Modified:
application/trunk/application/src/main/java/fr/ifremer/shared/application/ApplicationDataUtil.java
Modified: application/trunk/application/src/main/java/fr/ifremer/shared/application/ApplicationDataUtil.java
===================================================================
--- application/trunk/application/src/main/java/fr/ifremer/shared/application/ApplicationDataUtil.java 2013-12-09 21:06:07 UTC (rev 1443)
+++ application/trunk/application/src/main/java/fr/ifremer/shared/application/ApplicationDataUtil.java 2013-12-09 21:07:13 UTC (rev 1444)
@@ -26,9 +26,13 @@
import com.google.common.base.Preconditions;
import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang3.time.DurationFormatUtils;
+import java.math.BigDecimal;
+import java.math.MathContext;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
+import java.util.Date;
import static org.nuiton.i18n.I18n._;
@@ -46,6 +50,8 @@
public static final double EARTH_RADIUS = 6378288.0;
+ private static final MathContext MATH_CONTEXT_4_DIGIT = new MathContext(4);
+
private static DecimalFormatSymbols symbols;
private static DecimalFormat decimalFormat;
@@ -135,4 +141,45 @@
}
return textValue;
}
+
+ public static <N extends Number> N getValueOrComputedValue(N value, N computedValue) {
+ return value == null ? computedValue : value;
+ }
+
+ public static <N extends Number> Boolean getValueOrComputedValueComputed(N value, N computedValue) {
+ Boolean result;
+ if (value == null) {
+
+ result = computedValue == null ? null : true;
+ } else {
+ result = false;
+ }
+ return result;
+ }
+
+ /**
+ * Round the given value to max 4 digits.
+ *
+ * @param value the float to round.
+ * @return the rounded value
+ * @since 1.0.1
+ */
+ public static float roundKiloGram(float value) {
+ BigDecimal sumB = new BigDecimal(value);
+ float result = sumB.abs(MATH_CONTEXT_4_DIGIT).floatValue();
+ return result;
+ }
+
+ public static String getDuration(Date startDate,
+ Date endDate,
+ String format) {
+ String duration = "";
+ if (startDate != null && endDate != null && !startDate.after(endDate)) {
+ duration = DurationFormatUtils.formatPeriod(
+ startDate.getTime(),
+ endDate.getTime(),
+ format);
+ }
+ return duration;
+ }
}
1
0
r1443 - application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing
by tchemit@users.forge.codelutin.com 09 Dec '13
by tchemit@users.forge.codelutin.com 09 Dec '13
09 Dec '13
Author: tchemit
Date: 2013-12-09 22:06:07 +0100 (Mon, 09 Dec 2013)
New Revision: 1443
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1443
Log:
fixes #3945: Can't convert table model coordinate when no selection
Modified:
application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java
Modified: application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java
===================================================================
--- application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java 2013-12-09 20:26:14 UTC (rev 1442)
+++ application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java 2013-12-09 21:06:07 UTC (rev 1443)
@@ -438,8 +438,8 @@
if (rightClick) {
// use now model coordinate
- int modelRowIndex = source.convertRowIndexToModel(rowIndex);
- int modelColumnIndex = source.convertColumnIndexToModel(columnIndex);
+ int modelRowIndex = rowIndex == -1 ? -1 : source.convertRowIndexToModel(rowIndex);
+ int modelColumnIndex = columnIndex == -1 ? -1 : source.convertColumnIndexToModel(columnIndex);
beforeOpenPopup(modelRowIndex, modelColumnIndex);
@@ -909,6 +909,7 @@
return result;
}
+ //FIXME Move this in JAXX
protected <B> void changeValidatorContext(String newContext,
SwingValidator<B> validator) {
B bean = validator.getBean();
1
0
Author: tchemit
Date: 2013-12-09 21:26:14 +0100 (Mon, 09 Dec 2013)
New Revision: 1442
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1442
Log:
refs #3946: Utiliser ifremer-shared 1.0.1
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-12-09 20:13:47 UTC (rev 1441)
+++ trunk/pom.xml 2013-12-09 20:26:14 UTC (rev 1442)
@@ -120,7 +120,7 @@
<!-- libraries version -->
- <ifremerApplicationVersion>1.0</ifremerApplicationVersion>
+ <ifremerApplicationVersion>1.1-SNAPSHOT</ifremerApplicationVersion>
<nuitonI18nVersion>2.5.2</nuitonI18nVersion>
<nuitonConfigVersion>3.0-alpha-1</nuitonConfigVersion>
<nuitonCsvVersion>3.0-alpha-1</nuitonCsvVersion>
1
0
09 Dec '13
Author: tchemit
Date: 2013-12-09 21:13:47 +0100 (Mon, 09 Dec 2013)
New Revision: 1441
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1441
Log:
- fixes #3933: [CAPTURE] probl?\195?\168me affichage // et nb chiffres apr?\195?\168s la virgule
- improve import-export code (Kevin, please try to factorize your code a little more)
- fix ImportPuttri dialog open(caroussel file was not reset)
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRowModel.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportPupitriAction.java
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/operation/catches/species/ImportPupitriPopupUIHandler.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -96,7 +96,7 @@
File.class),
REPORT_LOG_DIRECTORY(
"tutti.report.log.directory",
- n_("tutti.config.option.report.log.file.description"),
+ n_("tutti.config.option.report.log.directory.description"),
"${tutti.data.directory}/reportlogs",
File.class),
DB_DIRECTORY(
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -27,10 +27,14 @@
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.TuttiEntity;
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
import fr.ifremer.tutti.persistence.entities.referential.Person;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.beanutils.NestedNullException;
@@ -45,6 +49,7 @@
import org.nuiton.csv.ValueParserFormatter;
import org.nuiton.csv.ext.AbstractExportModel;
import org.nuiton.csv.ext.AbstractImportExportModel;
+import org.nuiton.csv.ext.AbstractImportModel;
import org.nuiton.csv.ext.RepeatableExport;
import org.nuiton.decorator.Decorator;
@@ -69,6 +74,49 @@
*/
public class TuttiCsvUtil extends Common {
+ public static final ValueFormatter<Caracteristic> CARACTERISTIC_ID_FORMATTER = new ValueFormatter<Caracteristic>() {
+ @Override
+ public String format(Caracteristic value) {
+ return value != null ? value.getId() : "";
+ }
+ };
+
+ public static final ValueFormatter<Species> SPECIES_REFERENCE_TAXON_ID_FORMATTER = new ValueFormatter<Species>() {
+ @Override
+ public String format(Species value) {
+ return value != null ? String.valueOf(value.getReferenceTaxonId()) : null;
+ }
+ };
+
+ public static final ValueFormatter<Serializable> CARACTERISTIC_VALUE_FORMATTER2 = new ValueFormatter<Serializable>() {
+ @Override
+ public String format(Serializable value) {
+ String result = "";
+ if (value != null) {
+ if (CaracteristicQualitativeValue.class.isAssignableFrom(value.getClass())) {
+ CaracteristicQualitativeValue cqv = (CaracteristicQualitativeValue) value;
+ result = cqv.getId();
+
+ } else {
+ result = String.valueOf(value);
+ }
+ }
+ return result;
+ }
+ };
+
+ public static ValueFormatter<CaracteristicQualitativeValue> CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER =
+ new ValueFormatter<CaracteristicQualitativeValue>() {
+ @Override
+ public String format(CaracteristicQualitativeValue value) {
+ String result = "";
+ if (value != null) {
+ result = value.getId();
+ }
+ return result;
+ }
+ };
+
public static abstract class AbstractTuttiImportExportModel<M> extends AbstractImportExportModel<M> {
public AbstractTuttiImportExportModel(char separator) {
@@ -101,6 +149,22 @@
newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe));
}
+ public void newSpeciesForeignKeyColumn(String propertyName, String foreignKeyName, List<Species> species) {
+ if (species == null) {
+ species = Lists.newArrayList();
+ }
+ Map<String, Species> universe = TuttiEntities.splitByTaxonId(species);
+ newForeignKeyColumn(propertyName, Species.class, foreignKeyName, universe);
+ }
+
+ public <E extends TuttiEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, List<E> list) {
+ if (list == null) {
+ list = Lists.newArrayList();
+ }
+ Map<String, E> universe = Maps.uniqueIndex(list, TuttiEntities.GET_ID);
+ newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe));
+ }
+
public <E extends TuttiEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, String propertyName, Map<String, E> universe) {
return new ForeignKeyValue<E>(type, propertyName, universe);
}
@@ -122,6 +186,41 @@
}
}
+ public static abstract class AbstractTuttiImportModel<M> extends AbstractImportModel<M> {
+
+ public AbstractTuttiImportModel(char separator) {
+ super(separator);
+ }
+
+ public <E extends TuttiEntity> void newForeignKeyColumn(String headerName, String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) {
+ newMandatoryColumn(headerName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe));
+ }
+
+ public <E extends TuttiEntity> void newForeignKeyColumn(String propertyName, Class<E> entityType, String foreignKeyName, Map<String, E> universe) {
+ newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe));
+ }
+
+ public <E extends TuttiEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, String propertyName, Map<String, E> universe) {
+ return new ForeignKeyValue<E>(type, propertyName, universe);
+ }
+
+ public void newNotExistingValueColumn(String propertyName, Set<String> universe) {
+ newNotExistingValueColumn(propertyName, propertyName, universe);
+ }
+
+ public void newNotExistingValueColumn(String headerName, String propertyName, Set<String> universe) {
+ newMandatoryColumn(headerName, propertyName, new NotExistingKeyValue(propertyName, universe));
+ }
+
+ public void newNotExistingValueColumn(String propertyName, Set<String> universe, String errorMessage) {
+ newNotExistingValueColumn(propertyName, propertyName, universe, errorMessage);
+ }
+
+ public void newNotExistingValueColumn(String headerName, String propertyName, Set<String> universe, String errorMessage) {
+ newMandatoryColumn(headerName, propertyName, new NotExistingKeyValue(propertyName, universe, errorMessage));
+ }
+ }
+
public static abstract class AbstractTuttiExportModel<M> extends AbstractExportModel<M> {
public AbstractTuttiExportModel(char separator) {
@@ -174,9 +273,26 @@
public ExportableColumn<M, String> newIndexNullableColumnForExport(String headerName, String collectionName, int order, String propertyName) {
return newIndexNullableColumnForExport(headerName, collectionName, order, propertyName, TuttiCsvUtil.STRING);
}
-
}
+ public static ValueParserFormatter<Float> WEIGHT_PARSER_FORMATTER = new FloatParserFormatter(null, true) {
+
+ @Override
+ public String format(Float value) {
+ if (value != null) {
+ value = TuttiEntities.roundKiloGram(value);
+ }
+ return super.format(value);
+ }
+
+ @Override
+ protected Float parseNoneEmptyValue(String value) {
+ Float aFloat = super.parseNoneEmptyValue(value);
+ float result = TuttiEntities.roundKiloGram(aFloat);
+ return result;
+ }
+ };
+
public static ValueParserFormatter<String> newStringParserFormatter2(String defaultValue, boolean nullAllowed) {
return new StringParserFormatter2(defaultValue, nullAllowed);
}
@@ -646,4 +762,13 @@
protected TuttiCsvUtil() {
// no instance
}
+
+ public static abstract class ImportModelWithHeader<M> extends AbstractTuttiImportModel<M> {
+
+ protected ImportModelWithHeader(char separator) {
+ super(separator);
+ }
+
+ public abstract String[] getHeader();
+ }
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/AccidentalCatchRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,17 +24,12 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-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.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
import java.util.List;
-import java.util.Map;
/**
* Model of a individual observation export.
@@ -55,83 +50,43 @@
List<CaracteristicQualitativeValue> deadOrAliveValues) {
super(separator);
- ValueFormatter<CaracteristicQualitativeValue> cqvFormatter =
- new ValueFormatter<CaracteristicQualitativeValue>() {
- @Override
- public String format(CaracteristicQualitativeValue value) {
- String result = "";
- if (value != null) {
- result = value.getId();
- }
- return result;
- }
- };
-
newColumnForImportExport(AccidentalCatchRow.BATCH_ID);
newColumnForExport(AccidentalCatchRow.SPECIES,
- new ValueFormatter<Species>() {
- @Override
- public String format(Species value) {
- return value != null ? String.valueOf(value.getReferenceTaxonId()) : null;
- }
- });
+ TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER);
- if (species == null) {
- species = Lists.newArrayList();
- }
- Map<String, Species> speciesMap = TuttiEntities.splitByTaxonId(species);
- newForeignKeyColumn(AccidentalCatchRow.SPECIES,
- Species.class,
- Species.PROPERTY_REFERENCE_TAXON_ID,
- speciesMap);
+ newSpeciesForeignKeyColumn(AccidentalCatchRow.SPECIES,
+ Species.PROPERTY_REFERENCE_TAXON_ID,
+ species);
newColumnForExport(AccidentalCatchRow.GENDER,
- cqvFormatter);
+ TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER);
- if (genderValues == null) {
- genderValues = Lists.newArrayList();
- }
- Map<String, CaracteristicQualitativeValue> genderValuesMap =
- Maps.uniqueIndex(genderValues, TuttiEntities.GET_ID);
newForeignKeyColumn(AccidentalCatchRow.GENDER,
CaracteristicQualitativeValue.class,
CaracteristicQualitativeValue.PROPERTY_ID,
- genderValuesMap);
+ genderValues);
- newColumnForImportExport(AccidentalCatchRow.WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(AccidentalCatchRow.WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
newColumnForImportExport(AccidentalCatchRow.SIZE, TuttiCsvUtil.FLOAT);
newColumnForExport(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC,
- new ValueFormatter<Caracteristic>() {
- @Override
- public String format(Caracteristic value) {
- return value != null ? value.getId() : "";
- }
- });
+ TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER);
- if (lengthStepCaracteristics == null) {
- lengthStepCaracteristics = Lists.newArrayList();
- }
- Map<String, Caracteristic> caracteristicMap = Maps.uniqueIndex(lengthStepCaracteristics, TuttiEntities.GET_ID);
newForeignKeyColumn(AccidentalCatchRow.LENGTH_STEP_CARACTERISTIC,
Caracteristic.class,
Caracteristic.PROPERTY_ID,
- caracteristicMap);
+ lengthStepCaracteristics);
newColumnForExport(AccidentalCatchRow.DEAD_OR_ALIVE,
- cqvFormatter);
+ TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER);
- if (deadOrAliveValues == null) {
- deadOrAliveValues = Lists.newArrayList();
- }
- Map<String, CaracteristicQualitativeValue> deadOraliveValuesMap =
- Maps.uniqueIndex(deadOrAliveValues, TuttiEntities.GET_ID);
newForeignKeyColumn(AccidentalCatchRow.DEAD_OR_ALIVE,
CaracteristicQualitativeValue.class,
CaracteristicQualitativeValue.PROPERTY_ID,
- deadOraliveValuesMap);
+ deadOrAliveValues);
newColumnForImportExport(AccidentalCatchRow.COMMENT);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CaracteristicRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,17 +24,10 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-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.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
-import java.io.Serializable;
import java.util.List;
-import java.util.Map;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -53,43 +46,18 @@
newColumnForImportExport(CaracteristicRow.BATCH_ID);
newColumnForExport(CaracteristicRow.CARACTERISTIC,
- new ValueFormatter<Caracteristic>() {
- @Override
- public String format(Caracteristic value) {
- return value != null ? value.getId() : "";
- }
- });
+ TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER);
- if (caracteristics == null) {
- caracteristics = Lists.newArrayList();
- }
- Map<String, Caracteristic> caracteristicMap = Maps.uniqueIndex(caracteristics, TuttiEntities.GET_ID);
newForeignKeyColumn(CaracteristicRow.CARACTERISTIC,
Caracteristic.class,
Caracteristic.PROPERTY_ID,
- caracteristicMap);
+ caracteristics);
newColumnForExport(CaracteristicRow.VALUE,
- new ValueFormatter<Serializable>() {
- @Override
- public String format(Serializable value) {
- String result = "";
- if (value != null) {
- if (CaracteristicQualitativeValue.class.isAssignableFrom(value.getClass())) {
- CaracteristicQualitativeValue cqv = (CaracteristicQualitativeValue) value;
- result = cqv.getId();
+ TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER2);
- } else {
- result = String.valueOf(value);
- }
- }
- return result;
- }
- });
+ newMandatoryColumn(CaracteristicRow.VALUE, TuttiCsvUtil.STRING);
- newMandatoryColumn(CaracteristicRow.VALUE,
- TuttiCsvUtil.STRING);
-
}
@Override
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchFrequencyRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,15 +24,10 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
import java.util.List;
-import java.util.Map;
/**
* Model of a catch export.
@@ -52,21 +47,12 @@
newColumnForImportExport(CatchFrequencyRow.BATCH_ID);
newColumnForExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC,
- new ValueFormatter<Caracteristic>() {
- @Override
- public String format(Caracteristic value) {
- return value != null ? value.getId() : "";
- }
- });
+ TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER);
- if (caracteristics == null) {
- caracteristics = Lists.newArrayList();
- }
- Map<String, Caracteristic> caracteristicMap = Maps.uniqueIndex(caracteristics, TuttiEntities.GET_ID);
newForeignKeyColumn(CatchFrequencyRow.FREQUENCY_LENGTH_STEP_CARACTERISTIC,
Caracteristic.class,
Caracteristic.PROPERTY_ID,
- caracteristicMap);
+ caracteristics);
newColumnForImportExport(CatchFrequencyRow.FREQUENCY_LENGTH_STEP,
TuttiCsvUtil.FLOAT);
@@ -75,7 +61,7 @@
TuttiCsvUtil.INTEGER);
newColumnForImportExport(CatchFrequencyRow.FREQUENCY_WEIGHT,
- TuttiCsvUtil.FLOAT);
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,16 +24,10 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
-import java.io.Serializable;
import java.util.List;
-import java.util.Map;
/**
* Model of a catch export.
@@ -47,63 +41,34 @@
this(separator, null);
}
- public CatchRowModel(char separator,
- List<Species> species) {
+ public CatchRowModel(char separator, List<Species> species) {
super(separator);
- ValueFormatter<Serializable> caracteristicValueFormatter = new ValueFormatter<Serializable>() {
- @Override
- public String format(Serializable value) {
- String result = "";
- if (value != null) {
- if (CaracteristicQualitativeValue.class.isAssignableFrom(value.getClass())) {
- CaracteristicQualitativeValue cqv = (CaracteristicQualitativeValue) value;
- result = cqv.getId();
-
- } else {
- result = String.valueOf(value);
- }
- }
- return result;
- }
- };
-
newColumnForImportExport(CatchRow.ID);
newColumnForImportExport(CatchRow.PARENT_ID);
newColumnForExport(CatchRow.SPECIES,
- new ValueFormatter<Species>() {
- @Override
- public String format(Species value) {
- return value != null ? String.valueOf(value.getReferenceTaxonId()) : null;
- }
- });
+ TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER);
- if (species == null) {
- species = Lists.newArrayList();
- }
- Map<String, Species> speciesMap = TuttiEntities.splitByTaxonId(species);
- newForeignKeyColumn(CatchRow.SPECIES,
- Species.class,
- Species.PROPERTY_REFERENCE_TAXON_ID,
- speciesMap);
+ newSpeciesForeignKeyColumn(CatchRow.SPECIES,
+ Species.PROPERTY_REFERENCE_TAXON_ID,
+ species);
-
newColumnForImportExport(CatchRow.CATEGORY_ID,
TuttiCsvUtil.INTEGER);
newColumnForExport(CatchRow.CATEGORY_VALUE,
- caracteristicValueFormatter);
+ TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER2);
newMandatoryColumn(CatchRow.CATEGORY_VALUE,
TuttiCsvUtil.STRING);
newColumnForImportExport(CatchRow.CATEGORY_WEIGHT,
- TuttiCsvUtil.FLOAT);
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
newColumnForImportExport(CatchRow.WEIGHT,
- TuttiCsvUtil.FLOAT);
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
newColumnForImportExport(CatchRow.NUMBER,
TuttiCsvUtil.INTEGER);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/CatchWeightsRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -35,9 +35,12 @@
public CatchWeightsRowModel(char separator) {
super(separator);
- newColumnForImportExport(CatchWeightsRow.TOTAL_SORTED_WEIGHT, TuttiCsvUtil.FLOAT);
- newColumnForImportExport(CatchWeightsRow.INERT_WEIGHT, TuttiCsvUtil.FLOAT);
- newColumnForImportExport(CatchWeightsRow.LIVING_NOT_ITEMIZED_WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(CatchWeightsRow.TOTAL_SORTED_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
+ newColumnForImportExport(CatchWeightsRow.INERT_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
+ newColumnForImportExport(CatchWeightsRow.LIVING_NOT_ITEMIZED_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
}
@Override
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/IndividualObservationRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,16 +24,11 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
import java.util.List;
-import java.util.Map;
/**
* Model of a individual observation export.
@@ -55,47 +50,26 @@
newColumnForImportExport(IndividualObservationRow.BATCH_ID);
newColumnForExport(IndividualObservationRow.SPECIES,
- new ValueFormatter<Species>() {
- @Override
- public String format(Species value) {
- return value != null ? String.valueOf(value.getReferenceTaxonId()) : null;
- }
- });
+ TuttiCsvUtil.SPECIES_REFERENCE_TAXON_ID_FORMATTER);
- if (species == null) {
- species = Lists.newArrayList();
- }
- Map<String, Species> speciesMap = TuttiEntities.splitByTaxonId(species);
- newForeignKeyColumn(IndividualObservationRow.SPECIES,
- Species.class,
- Species.PROPERTY_REFERENCE_TAXON_ID,
- speciesMap);
+ newSpeciesForeignKeyColumn(IndividualObservationRow.SPECIES,
+ Species.PROPERTY_REFERENCE_TAXON_ID,
+ species);
- newColumnForImportExport(IndividualObservationRow.WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(IndividualObservationRow.WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
- newColumnForImportExport(IndividualObservationRow.SIZE, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(IndividualObservationRow.SIZE,
+ TuttiCsvUtil.FLOAT);
newColumnForExport(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC,
- new ValueFormatter<Caracteristic>() {
- @Override
- public String format(Caracteristic value) {
- return value != null ? value.getId() : "";
- }
- });
+ TuttiCsvUtil.CARACTERISTIC_ID_FORMATTER);
- if (lengthStepCaracteristics == null) {
- lengthStepCaracteristics = Lists.newArrayList();
- }
- Map<String, Caracteristic> caracteristicMap = Maps.uniqueIndex(lengthStepCaracteristics, TuttiEntities.GET_ID);
newForeignKeyColumn(IndividualObservationRow.LENGTH_STEP_CARACTERISTIC,
Caracteristic.class,
Caracteristic.PROPERTY_ID,
- caracteristicMap);
+ lengthStepCaracteristics);
-// newColumnForImportExport(IndividualObservationRow.SAMPLING_CODE);
-//
-// newColumnForImportExport(IndividualObservationRow.CALCIFIED_PIECE_SAMPLING_CODE);
-
newColumnForImportExport(IndividualObservationRow.COMMENT);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,15 +24,10 @@
* #L%
*/
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueFormatter;
import java.util.List;
-import java.util.Map;
/**
* @author kmorin <morin(a)codelutin.com>
@@ -49,49 +44,28 @@
List<CaracteristicQualitativeValue> sizeCategoryValues) {
super(separator);
- if (categoryValues == null) {
- categoryValues = Lists.newArrayList();
- }
- Map<String, CaracteristicQualitativeValue> categoryValueMap =
- Maps.uniqueIndex(categoryValues, TuttiEntities.GET_ID);
-
- if (sizeCategoryValues == null) {
- sizeCategoryValues = Lists.newArrayList();
- }
- Map<String, CaracteristicQualitativeValue> sizeCategoryValueMap =
- Maps.uniqueIndex(sizeCategoryValues, TuttiEntities.GET_ID);
-
- ValueFormatter<CaracteristicQualitativeValue> caracteristicQualitativeValueFormatter =
- new ValueFormatter<CaracteristicQualitativeValue>() {
- @Override
- public String format(CaracteristicQualitativeValue value) {
- String result = "";
- if (value != null) {
- result = value.getId();
- }
- return result;
- }
- };
-
newColumnForImportExport(MarineLitterRow.BATCH_ID);
- newColumnForExport(MarineLitterRow.CATEGORY, caracteristicQualitativeValueFormatter);
+ newColumnForExport(MarineLitterRow.CATEGORY,
+ TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER);
newForeignKeyColumn(MarineLitterRow.CATEGORY,
CaracteristicQualitativeValue.class,
CaracteristicQualitativeValue.PROPERTY_ID,
- categoryValueMap);
+ categoryValues);
- newColumnForExport(MarineLitterRow.SIZE_CATEGORY, caracteristicQualitativeValueFormatter);
+ newColumnForExport(MarineLitterRow.SIZE_CATEGORY,
+ TuttiCsvUtil.CARACTERISTIC_QUALITATIVE_VALUE_FORMATTER);
newForeignKeyColumn(MarineLitterRow.SIZE_CATEGORY,
CaracteristicQualitativeValue.class,
CaracteristicQualitativeValue.PROPERTY_ID,
- sizeCategoryValueMap);
+ sizeCategoryValues);
newColumnForImportExport(MarineLitterRow.NUMBER, TuttiCsvUtil.INTEGER);
- newColumnForImportExport(MarineLitterRow.WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(MarineLitterRow.WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
newColumnForImportExport(MarineLitterRow.COMMENT);
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MarineLitterWeightRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -35,7 +35,8 @@
public MarineLitterWeightRowModel(char separator) {
super(separator);
- newColumnForImportExport(MarineLitterWeightRow.TOTAL_WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForImportExport(MarineLitterWeightRow.TOTAL_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
}
@Override
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,6 +24,8 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+
import java.io.Serializable;
/**
@@ -70,7 +72,9 @@
protected Float weight;
- public CarrouselRow() {
+ public boolean acceptOperation(FishingOperation operation) {
+ return operationCode.equals(operation.getStationNumber())
+ && rigNumber.equals(operation.getMultirigAggregation());
}
public String getOperationCode() {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -34,46 +34,53 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.2
*/
-public class CarrouselRowModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<CarrouselRow> {
+public class CarrouselRowModel extends TuttiCsvUtil.ImportModelWithHeader<CarrouselRow> {
public CarrouselRowModel(char separator) {
super(separator);
- // import definition
-
newMandatoryColumn(CarrouselRow.PROPERTY_OPERATION_CODE);
newMandatoryColumn(CarrouselRow.PROPERTY_RIG_NUMBER);
newMandatoryColumn(CarrouselRow.PROPERTY_SPECIES_ID, new ValueParser<String>() {
+ @Override
public String parse(String string) throws ParseException {
return StringUtils.remove(string, '-').trim();
}
});
newMandatoryColumn(CarrouselRow.PROPERTY_SIGN);
- newMandatoryColumn(CarrouselRow.PROPERTY_DIRECTION, new ValueParser<Directions>() {
+ newMandatoryColumn(CarrouselRow.PROPERTY_DIRECTION,
+ TuttiCsvUtil.newEnumByNameParserFormatter(Directions.class));
+ newMandatoryColumn(CarrouselRow.PROPERTY_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
- public Directions parse(String string) throws ParseException {
- return Directions.valueOf(string);
- }
-
- });
- newMandatoryColumn(CarrouselRow.PROPERTY_WEIGHT, new ValueParser<Float>() {
-
- public Float parse(String string) throws ParseException {
- return Float.parseFloat(string);
- }
-
- });
-
newIgnoredColumn(CarrouselRow.PROPERTY_FILE_ORIGIN);
newIgnoredColumn(CarrouselRow.PROPERTY_DATE);
newIgnoredColumn(CarrouselRow.PROPERTY_TIME);
newIgnoredColumn(CarrouselRow.PROPERTY_BALANCE_ID);
newIgnoredColumn(CarrouselRow.PROPERTY_TO_CONFIRM);
newIgnoredColumn(CarrouselRow.PROPERTY_BOX_TYPE);
+ }
+ @Override
+ public String[] getHeader() {
+ return new String[]{
+ CarrouselRow.PROPERTY_FILE_ORIGIN,
+ CarrouselRow.PROPERTY_DATE,
+ CarrouselRow.PROPERTY_TIME,
+ CarrouselRow.PROPERTY_BALANCE_ID,
+ CarrouselRow.PROPERTY_TO_CONFIRM,
+ CarrouselRow.PROPERTY_OPERATION_CODE,
+ CarrouselRow.PROPERTY_RIG_NUMBER,
+ CarrouselRow.PROPERTY_BOX_TYPE,
+ CarrouselRow.PROPERTY_SPECIES_ID,
+ CarrouselRow.PROPERTY_SIGN,
+ CarrouselRow.PROPERTY_DIRECTION,
+ CarrouselRow.PROPERTY_WEIGHT
+ };
}
+ @Override
public CarrouselRow newEmptyInstance() {
return new CarrouselRow();
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -26,14 +26,13 @@
import com.google.common.base.Charsets;
import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
-import com.google.common.io.Files;
+import fr.ifremer.shared.application.ApplicationIOUtil;
import fr.ifremer.shared.application.ApplicationTechnicalException;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AttachementObjectTypeEnum;
@@ -51,6 +50,7 @@
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.TuttiCsvUtil;
import fr.ifremer.tutti.service.TuttiDataContext;
import fr.ifremer.tutti.service.TuttiServiceContext;
import org.apache.commons.collections.CollectionUtils;
@@ -70,12 +70,12 @@
import java.io.Serializable;
import java.text.DateFormat;
import java.util.Collections;
-import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.n_;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -96,16 +96,6 @@
protected CaracteristicQualitativeValue unsortedCaracteristic;
-// protected CaracteristicQualitativeValue maleCaracteristic;
-//
-// protected CaracteristicQualitativeValue femaleCaracteristic;
-//
-// protected CaracteristicQualitativeValue smallCaracteristic;
-//
-// protected CaracteristicQualitativeValue mediumCaracteristic;
-//
-// protected CaracteristicQualitativeValue bigCaracteristic;
-
protected Map<PupitriCatch.Signs, CaracteristicQualitativeValue> signsToCaracteristicValue;
@Override
@@ -118,7 +108,6 @@
TuttiEnumerationFile enumerationFile =
persistenceService.getEnumerationFile();
-
signsToCaracteristicValue = Maps.newEnumMap(PupitriCatch.Signs.class);
{ // sorted/unsorted caracteristic
@@ -145,7 +134,6 @@
}
}
-
/**
* @param trunkFile incoming trunk file
* @param carrouselFile incoming carroussle file
@@ -170,61 +158,79 @@
return result;
}
+ public void exportSpecies(List<Species> species, File target) {
+ SpeciesRowModel speciesCsvModel = new SpeciesRowModel(';');
+
+ List<SpeciesRow> rows = Lists.newArrayList();
+
+ if (CollectionUtils.isNotEmpty(species)) {
+ rows = Lists.transform(species, new Function<Species, SpeciesRow>() {
+
+ @Override
+ public SpeciesRow apply(Species input) {
+ SpeciesRow row = new SpeciesRow(input);
+// String codeFirstPart = StringUtils.substring(input.getSurveyCode(), 0, 4);
+// row.setCodeFirstPart(StringUtils.rightPad(codeFirstPart, 4));
+// String codeSecondPart = StringUtils.substring(input.getSurveyCode(), 4, 7);
+// row.setCodeSecondPart(StringUtils.rightPad(codeSecondPart, 3));
+// row.setScientificName(input.getName());
+ return row;
+ }
+ });
+ }
+
+ try {
+ Export.exportToFile(speciesCsvModel,
+ rows,
+ target,
+ Charsets.UTF_8,
+ false);
+
+ } catch (Exception e) {
+ throw new ApplicationTechnicalException(
+ _("tutti.service.pupitri.export.species.error", target), e);
+ }
+ }
+
protected void addFileAsAttachment(File f, CatchBatch catchBatch) {
Attachment attachment = Attachments.newAttachment();
attachment.setObjectType(AttachementObjectTypeEnum.CATCH_BATCH);
attachment.setObjectId(Integer.valueOf(catchBatch.getId()));
attachment.setName(f.getName());
- String date = DateFormat.getDateTimeInstance().format(new Date());
+ String date = DateFormat.getDateTimeInstance().format(context.currentDate());
String comment = _("tutti.service.pupitri.import.attachment.comment", date);
attachment.setComment(comment);
persistenceService.createAttachment(attachment, f);
}
- protected void importPupitriTrunk(File file, FishingOperation operation, CatchBatch catchBatch) {
+ protected void importPupitriTrunk(File file,
+ FishingOperation operation,
+ CatchBatch catchBatch) {
if (log.isInfoEnabled()) {
log.info("Will import pupitri operation [" + operation.toString() +
"] trunk from file: " + file);
}
- char separator = ',';
- TrunkRowModel csvModel = new TrunkRowModel(separator);
+ // prepare import
- Reader reader = null;
- File fileWithHeaders = null;
+ float sortedWeight = 0f;
+ float rejectedWeight = 0f;
+
Import<TrunkRow> importer = null;
- try {
- fileWithHeaders = new File(FileUtils.getTempDirectory(), file.getName());
- String headers = TrunkRow.PROPERTY_FILE_ORIGIN + separator +
- TrunkRow.PROPERTY_DATE + separator +
- TrunkRow.PROPERTY_TIME + separator +
- TrunkRow.PROPERTY_BALANCE_ID + separator +
- TrunkRow.PROPERTY_SIGN + separator +
- TrunkRow.PROPERTY_OPERATION_CODE + separator +
- TrunkRow.PROPERTY_RIG_NUMBER + separator +
- TrunkRow.PROPERTY_DIRECTION + separator +
- TrunkRow.PROPERTY_WEIGHT;
+ TrunkRowModel csvModel = new TrunkRowModel(',');
- FileUtils.writeLines(fileWithHeaders, Collections.singletonList(headers));
- log.info(FileUtils.readFileToString(fileWithHeaders));
- FileUtils.writeLines(fileWithHeaders, FileUtils.readLines(file), true);
- log.info(FileUtils.readFileToString(fileWithHeaders));
+ File fileWithHeaders = createFileWithHeaders(csvModel, file);
- reader = Files.newReader(fileWithHeaders, Charsets.UTF_8);
-
+ Reader reader = ApplicationIOUtil.newReader(
+ fileWithHeaders,
+ n_("tutti.service.puttiri.carroussel.import.error"));
+ try {
importer = Import.newImport(csvModel, reader);
- Float sortedWeight = 0f;
- Float rejectedWeight = 0f;
- String operationNumber = operation.getStationNumber();
- String rigNumber = operation.getMultirigAggregation();
-
for (TrunkRow bean : importer) {
- if (bean.getOperationCode().equals(operationNumber)
- && bean.getRigNumber().equals(rigNumber)) {
-
+ if (bean.acceptOperation(operation)) {
switch (bean.getDirection()) {
case VAT:
sortedWeight += bean.getWeight();
@@ -234,16 +240,14 @@
rejectedWeight += bean.getWeight();
}
}
-
}
- catchBatch.setCatchTotalSortedTremisWeight(sortedWeight);
- catchBatch.setCatchTotalRejectedWeight(rejectedWeight);
importer.close();
reader.close();
} catch (Exception e) {
- throw new ApplicationTechnicalException(_("tutti.service.pupitri.import.trunk.error", operation.toString(), file), e);
+ throw new ApplicationTechnicalException(
+ _("tutti.service.pupitri.import.trunk.error", operation.toString(), file), e);
} finally {
IOUtils.closeQuietly(importer);
@@ -251,6 +255,10 @@
FileUtils.deleteQuietly(fileWithHeaders);
}
+ catchBatch.setCatchTotalSortedTremisWeight(
+ TuttiEntities.roundKiloGram(sortedWeight));
+ catchBatch.setCatchTotalRejectedWeight(
+ TuttiEntities.roundKiloGram(rejectedWeight));
}
protected int importPupitriCarrousel(File carrouselFile,
@@ -262,64 +270,50 @@
"] carrousel from file: " + carrouselFile);
}
- int result = 0;
- Reader reader = null;
- File fileWithHeaders = null;
+ // prepare import
- Import<CarrouselRow> carrouselImporter = null;
- char carrouselSeparator = ',';
- CarrouselRowModel carrouselCsvModel = new CarrouselRowModel(carrouselSeparator);
+ //FIXME tchemit-2013-12-02 Explain what does it do ?
+ // get the map of species by survey code
+ ListMultimap<String, Species> speciesBySurveyCode = ArrayListMultimap.create();
- try {
+ speciesBySurveyCode.putAll(
+ Multimaps.index(dataContext.getReferentSpeciesWithSurveyCode(),
+ new Function<Species, String>() {
+ @Override
+ public String apply(Species input) {
+ String surveyCode = String.valueOf(input.getSurveyCode());
+ int end = Math.min(surveyCode.length(), 7);
+ return surveyCode.substring(0, end);
+ }
+ })
+ );
+ speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies()));
- //FIXME tchemit-2013-12-02 Explain what does it do ?
- // get the map of species by survey code
- ListMultimap<String, Species> speciesBySurveyCode = ArrayListMultimap.create();
+ // import the batches
- speciesBySurveyCode.putAll(
- Multimaps.index(dataContext.getReferentSpeciesWithSurveyCode(),
- new Function<Species, String>() {
- @Override
- public String apply(Species input) {
- String surveyCode = String.valueOf(input.getSurveyCode());
- int end = Math.min(surveyCode.length(), 7);
- return surveyCode.substring(0, end);
- }
- })
- );
- speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies()));
- // import the batches
- String[] header = new String[]{
- CarrouselRow.PROPERTY_FILE_ORIGIN,
- CarrouselRow.PROPERTY_DATE,
- CarrouselRow.PROPERTY_TIME,
- CarrouselRow.PROPERTY_BALANCE_ID,
- CarrouselRow.PROPERTY_TO_CONFIRM,
- CarrouselRow.PROPERTY_OPERATION_CODE,
- CarrouselRow.PROPERTY_RIG_NUMBER,
- CarrouselRow.PROPERTY_BOX_TYPE,
- CarrouselRow.PROPERTY_SPECIES_ID,
- CarrouselRow.PROPERTY_SIGN,
- CarrouselRow.PROPERTY_DIRECTION,
- CarrouselRow.PROPERTY_WEIGHT
- };
- fileWithHeaders = createFileWithHeaders(carrouselFile, header, carrouselSeparator);
- reader = Files.newReader(fileWithHeaders, Charsets.UTF_8);
- carrouselImporter = Import.newImport(carrouselCsvModel, reader);
+ int result;
+ Float carrouselSortedWeight = 0f;
- String operationNumber = operation.getStationNumber();
- String rigNumber = operation.getMultirigAggregation();
+ List<PupitriCatch> catches = Lists.newArrayList();
+ Set<String> notFoundSpecies = Sets.newHashSet();
- Float carrouselSortedWeight = 0f;
+ Import<CarrouselRow> importer = null;
- List<PupitriCatch> catches = Lists.newArrayList();
- Set<String> notFoundSpecies = Sets.newHashSet();
+ CarrouselRowModel carrouselCsvModel = new CarrouselRowModel(',');
- for (CarrouselRow bean : carrouselImporter) {
+ File fileWithHeaders = createFileWithHeaders(carrouselCsvModel,
+ carrouselFile);
+ Reader reader = ApplicationIOUtil.newReader(
+ fileWithHeaders,
+ n_("tutti.service.puttiri.carroussel.import.error"));
+ try {
+
+ importer = Import.newImport(carrouselCsvModel, reader);
+
+ for (CarrouselRow bean : importer) {
// is the bean from the current operation and rig ?
- if (bean.getOperationCode().equals(operationNumber)
- && bean.getRigNumber().equals(rigNumber)) {
+ if (bean.acceptOperation(operation)) {
String speciesId = bean.getSpeciesId();
List<Species> speciesList = speciesBySurveyCode.get(speciesId);
@@ -355,151 +349,115 @@
}
}
}
- result = notFoundSpecies.size();
- catchBatch.setCatchTotalSortedCarousselWeight(carrouselSortedWeight);
- BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
- for (SpeciesBatch batch : rootSpeciesBatch.getChildren()) {
- persistenceService.deleteSpeciesBatch(batch.getId());
- }
+ importer.close();
+ reader.close();
- TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile();
- Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
- for (PupitriCatch pupitriCatch : catches) {
+ } catch (Exception e) {
+ DecoratorService service = getService(DecoratorService.class);
+ throw new ApplicationTechnicalException(
+ _("tutti.service.pupitri.import.carrousel.error", carrouselFile, service.getDecorator(operation).toString(operation)), e);
- Species species = pupitriCatch.getSpecies();
- CaracteristicQualitativeValue cqv = pupitriCatch.isSorted() ?
- sortedCaracteristic : unsortedCaracteristic;
+ } finally {
+ IOUtils.closeQuietly(importer);
+ IOUtils.closeQuietly(reader);
+ FileUtils.deleteQuietly(fileWithHeaders);
+ }
- boolean splitSpecies = isSplitSpecies(pupitriCatch);
+ result = notFoundSpecies.size();
+ catchBatch.setCatchTotalSortedCarousselWeight(TuttiEntities.roundKiloGram(carrouselSortedWeight));
- Map<PupitriCatch.Signs, MutableFloat> weightBySign =
- pupitriCatch.getWeightBySign();
+ // delete all species batches
- if (splitSpecies) {
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), null);
+ for (SpeciesBatch batch : rootSpeciesBatch.getChildren()) {
+ persistenceService.deleteSpeciesBatch(batch.getId());
+ }
- // create a top batch + a son for each sign
- if (log.isInfoEnabled()) {
- log.info("Create a categorized batches for species " + speciesDecorator.toString(species));
- }
- SpeciesBatch batch = createSpeciesBatch(operation,
- species,
- null,
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
- cqv);
+ // insert all imported species batches
- batch = persistenceService.createSpeciesBatch(batch, null);
+ TuttiEnumerationFile enumerationFile = persistenceService.getEnumerationFile();
+ Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
+ for (PupitriCatch pupitriCatch : catches) {
- String parentBatchId = batch.getId();
+ Species species = pupitriCatch.getSpecies();
+ CaracteristicQualitativeValue cqv = pupitriCatch.isSorted() ?
+ sortedCaracteristic : unsortedCaracteristic;
- for (Map.Entry<PupitriCatch.Signs, MutableFloat> entry : weightBySign.entrySet()) {
+ boolean splitSpecies = isSplitSpecies(pupitriCatch);
- PupitriCatch.Signs signs = entry.getKey();
- float catchWeight = entry.getValue().floatValue();
+ Map<PupitriCatch.Signs, MutableFloat> weightBySign =
+ pupitriCatch.getWeightBySign();
- Integer categoryId = signs.getCategory(enumerationFile);
- CaracteristicQualitativeValue splitCqv = signsToCaracteristicValue.get(signs);
- SpeciesBatch childBatch = createSpeciesBatch(
- operation,
- species,
- catchWeight,
- categoryId,
- splitCqv
- );
+ if (splitSpecies) {
+ // create a top batch + a son for each sign
+ if (log.isDebugEnabled()) {
+ log.debug("Create a categorized batches for species " + speciesDecorator.toString(species));
+ }
+ SpeciesBatch batch = createSpeciesBatch(operation,
+ species,
+ null,
+ enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ cqv);
- persistenceService.createSpeciesBatch(childBatch, parentBatchId);
- }
+ batch = persistenceService.createSpeciesBatch(batch, null);
- } else {
+ String parentBatchId = batch.getId();
- // create a unique batch with sum all weights as simple weight
- if (log.isInfoEnabled()) {
- log.info("Create a unique batch for species " + speciesDecorator.toString(species));
- }
- float totalWeight = 0f;
- for (MutableFloat weight : weightBySign.values()) {
- totalWeight += weight.floatValue();
- }
+ for (Map.Entry<PupitriCatch.Signs, MutableFloat> entry : weightBySign.entrySet()) {
- SpeciesBatch batch = createSpeciesBatch(operation,
- species,
- totalWeight,
- enumerationFile.PMFM_ID_SORTED_UNSORTED,
- cqv);
+ PupitriCatch.Signs signs = entry.getKey();
+ float catchWeight = entry.getValue().floatValue();
- persistenceService.createSpeciesBatch(batch, null);
+ Integer categoryId = signs.getCategory(enumerationFile);
+ CaracteristicQualitativeValue splitCqv = signsToCaracteristicValue.get(signs);
+ SpeciesBatch childBatch = createSpeciesBatch(
+ operation,
+ species,
+ catchWeight,
+ categoryId,
+ splitCqv
+ );
+
+
+ persistenceService.createSpeciesBatch(childBatch, parentBatchId);
}
-// MutableFloat catchWeight = weightBySign.get(PupitriCatch.Signs.DEFAULT);
-//
-//
-// SpeciesBatch batch = createSpeciesBatch(operation,
-// species,
-// catchWeight.floatValue(),
-// enumerationFile.PMFM_ID_SORTED_UNSORTED,
-// cqv);
-//
-// batch = persistenceService.createSpeciesBatch(batch, null);
-//
-// // if the batch is splitted
-// if (catchWeight == null) {
-// Integer categoryId = null;
-// for (PupitriCatch.Signs s : weightBySign.keySet()) {
-// CaracteristicQualitativeValue splitCqv = null;
-// switch (s) {
-// case MALE:
-// categoryId = enumerationFile.PMFM_ID_SEX;
-// splitCqv = maleCaracteristic;
-// break;
-//
-// case FEMALE:
-// categoryId = enumerationFile.PMFM_ID_SEX;
-// splitCqv = femaleCaracteristic;
-// break;
-//
-// case SMALL:
-// categoryId = enumerationFile.PMFM_ID_SIZE_CATEGORY;
-// splitCqv = smallCaracteristic;
-// break;
-//
-// case MEDIUM:
-// categoryId = enumerationFile.PMFM_ID_SIZE_CATEGORY;
-// splitCqv = mediumCaracteristic;
-// break;
-//
-// case BIG:
-// categoryId = enumerationFile.PMFM_ID_SIZE_CATEGORY;
-// splitCqv = bigCaracteristic;
-// break;
-// }
-//
-// SpeciesBatch childBatch = createSpeciesBatch(
-// operation,
-// species,
-// weightBySign.get(s).floatValue(),
-// categoryId,
-// splitCqv
-// );
-//
-// persistenceService.createSpeciesBatch(childBatch, batch.getId());
-// }
-// }
- }
+ } else {
- carrouselImporter.close();
- reader.close();
+ // create a unique batch with sum all weights as simple weight
+ if (log.isDebugEnabled()) {
+ log.debug("Create a unique batch for species " + speciesDecorator.toString(species));
+ }
+ float totalWeight = 0f;
+ for (MutableFloat weight : weightBySign.values()) {
+ totalWeight += weight.floatValue();
+ }
- } catch (Exception e) {
- DecoratorService service = getService(DecoratorService.class);
- throw new ApplicationTechnicalException(_("tutti.service.pupitri.import.carrousel.error", carrouselFile, service.getDecorator(operation).toString(operation)), e);//"Could not import carrousel data [" + operation.toString() + "] from file " + carrouselFile
+ SpeciesBatch batch = createSpeciesBatch(operation,
+ species,
+ totalWeight,
+ enumerationFile.PMFM_ID_SORTED_UNSORTED,
+ cqv);
- } finally {
- IOUtils.closeQuietly(carrouselImporter);
- IOUtils.closeQuietly(reader);
- FileUtils.deleteQuietly(fileWithHeaders);
+ persistenceService.createSpeciesBatch(batch, null);
+ }
}
+// carrouselImporter.close();
+// reader.close();
+//
+// } catch (Exception e) {
+// DecoratorService service = getService(DecoratorService.class);
+// throw new ApplicationTechnicalException(_("tutti.service.pupitri.import.carrousel.error", carrouselFile, service.getDecorator(operation).toString(operation)), e);//"Could not import carrousel data [" + operation.toString() + "] from file " + carrouselFile
+//
+// } finally {
+// IOUtils.closeQuietly(carrouselImporter);
+// IOUtils.closeQuietly(reader);
+// FileUtils.deleteQuietly(fileWithHeaders);
+// }
+
return result;
}
@@ -519,6 +477,7 @@
PupitriCatch.Signs.BIG
);
+
/**
* Check that the given species catch can be split.
* For the moment accept for a same catch :
@@ -569,37 +528,6 @@
return result;
}
-
- public void exportSpecies(List<Species> species, File target) {
- SpeciesRowModel speciesCsvModel = new SpeciesRowModel(';');
-
- List<SpeciesRow> rows = Lists.newArrayList();
-
- if (CollectionUtils.isNotEmpty(species)) {
- rows = Lists.transform(species, new Function<Species, SpeciesRow>() {
-
- public SpeciesRow apply(Species input) {
- Preconditions.checkNotNull(input.getSurveyCode(),
- "Unable to export a species with a null survey code : " + input);
- SpeciesRow row = new SpeciesRow();
- String codeFirstPart = StringUtils.substring(input.getSurveyCode(), 0, 4);
- row.setCodeFirstPart(StringUtils.rightPad(codeFirstPart, 4));
- String codeSecondPart = StringUtils.substring(input.getSurveyCode(), 4, 7);
- row.setCodeSecondPart(StringUtils.rightPad(codeSecondPart, 3));
- row.setScientificName(input.getName());
- return row;
- }
- });
- }
-
- try {
- Export.exportToFile(speciesCsvModel, rows, target, Charsets.UTF_8, false);
-
- } catch (Exception e) {
- throw new ApplicationTechnicalException(_("tutti.service.pupitri.export.species.error", target), e);
- }
- }
-
protected SpeciesBatch createSpeciesBatch(FishingOperation operation,
Species species,
Float catchWeight,
@@ -610,16 +538,22 @@
batch.setSampleCategoryId(categoryId);
batch.setSampleCategoryValue(cqv);
batch.setSpecies(species);
- batch.setSampleCategoryWeight(catchWeight);
+ batch.setSampleCategoryWeight(
+ catchWeight == null ? null : TuttiEntities.roundKiloGram(catchWeight));
return batch;
}
- protected File createFileWithHeaders(File file, String[] header, char separator) throws IOException {
+ protected File createFileWithHeaders(TuttiCsvUtil.ImportModelWithHeader<?> model,
+ File file) {
File fileWithHeaders = new File(FileUtils.getTempDirectory(), file.getName());
- String headers = StringUtils.join(header, separator);
+ String headers = StringUtils.join(model.getHeader(), model.getSeparator());
- FileUtils.writeLines(fileWithHeaders, Collections.singletonList(headers));
- FileUtils.writeLines(fileWithHeaders, FileUtils.readLines(file), true);
+ try {
+ FileUtils.writeLines(fileWithHeaders, Collections.singletonList(headers));
+ FileUtils.writeLines(fileWithHeaders, FileUtils.readLines(file), true);
+ } catch (IOException e) {
+ throw new ApplicationTechnicalException("Could not create file with header " + file, e);
+ }
return fileWithHeaders;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRow.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRow.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,6 +24,10 @@
* #L%
*/
+import com.google.common.base.Preconditions;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import org.apache.commons.lang3.StringUtils;
+
import java.io.Serializable;
/**
@@ -40,34 +44,27 @@
public static final String PROPERTY_SCIENTIFIC_NAME = "scientificName";
- protected String codeFirstPart;
+ protected final Species species;
- protected String codeSecondPart;
+ public SpeciesRow(Species species) {
+ Preconditions.checkNotNull(species.getSurveyCode(),
+ "Unable to export a species with a null survey code : " + species);
+ this.species = species;
+ }
- protected String scientificName;
-
public String getCodeFirstPart() {
- return codeFirstPart;
+ String codeFirstPart = StringUtils.substring(species.getSurveyCode(), 0, 4);
+ String result = StringUtils.rightPad(codeFirstPart, 4);
+ return result;
}
- public void setCodeFirstPart(String codeFirstPart) {
- this.codeFirstPart = codeFirstPart;
- }
-
public String getCodeSecondPart() {
- return codeSecondPart;
+ String codeSecondPart = StringUtils.substring(species.getSurveyCode(), 4, 7);
+ String result = StringUtils.rightPad(codeSecondPart, 3);
+ return result;
}
- public void setCodeSecondPart(String codeSecondPart) {
- this.codeSecondPart = codeSecondPart;
- }
-
public String getScientificName() {
- return scientificName;
+ return species.getName();
}
-
- public void setScientificName(String scientificName) {
- this.scientificName = scientificName;
- }
-
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/SpeciesRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -25,30 +25,20 @@
*/
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.2
*/
-public class SpeciesRowModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<SpeciesRow> {
+public class SpeciesRowModel extends TuttiCsvUtil.AbstractTuttiExportModel<SpeciesRow> {
- private static final Log log = LogFactory.getLog(SpeciesRowModel.class);
-
public SpeciesRowModel(char separator) {
super(separator);
- // import definition
-
- newColumnForImportExport(SpeciesRow.PROPERTY_CODE_FIRST_PART);
- newColumnForImportExport(SpeciesRow.PROPERTY_CODE_SECOND_PART);
- newColumnForImportExport(SpeciesRow.PROPERTY_SCIENTIFIC_NAME);
-
+ newColumnForExport(SpeciesRow.PROPERTY_CODE_FIRST_PART);
+ newColumnForExport(SpeciesRow.PROPERTY_CODE_SECOND_PART);
+ newColumnForExport(SpeciesRow.PROPERTY_SCIENTIFIC_NAME);
}
- public SpeciesRow newEmptyInstance() {
- return new SpeciesRow();
- }
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRow.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRow.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -24,6 +24,8 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+
import java.io.Serializable;
/**
@@ -62,7 +64,9 @@
protected Float weight;
- public TrunkRow() {
+ public boolean acceptOperation(FishingOperation operation) {
+ return operationCode.equals(operation.getStationNumber())
+ && rigNumber.equals(operation.getMultirigAggregation());
}
public String getOperationCode() {
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRowModel.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/TrunkRowModel.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -25,48 +25,47 @@
*/
import fr.ifremer.tutti.service.TuttiCsvUtil;
-import org.nuiton.csv.ValueParser;
-import java.text.ParseException;
-
/**
* @author kmorin <kmorin(a)codelutin.com>
* @since 1.2
*/
-public class TrunkRowModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<TrunkRow> {
+public class TrunkRowModel extends TuttiCsvUtil.ImportModelWithHeader<TrunkRow> {
public TrunkRowModel(char separator) {
super(separator);
- // import definition
-
newMandatoryColumn(TrunkRow.PROPERTY_OPERATION_CODE);
newMandatoryColumn(TrunkRow.PROPERTY_RIG_NUMBER);
- newMandatoryColumn(TrunkRow.PROPERTY_DIRECTION, new ValueParser<Directions>() {
+ newMandatoryColumn(TrunkRow.PROPERTY_DIRECTION,
+ TuttiCsvUtil.newEnumByNameParserFormatter(Directions.class));
+ newMandatoryColumn(TrunkRow.PROPERTY_WEIGHT,
+ TuttiCsvUtil.WEIGHT_PARSER_FORMATTER);
- public Directions parse(String string) throws ParseException {
- return Directions.valueOf(string);
- }
-
- });
- newMandatoryColumn(TrunkRow.PROPERTY_WEIGHT, new ValueParser<Float>() {
-
- public Float parse(String string) throws ParseException {
- return Float.parseFloat(string);
- }
-
- });
-
newIgnoredColumn(TrunkRow.PROPERTY_SIGN);
newIgnoredColumn(TrunkRow.PROPERTY_FILE_ORIGIN);
newIgnoredColumn(TrunkRow.PROPERTY_DATE);
newIgnoredColumn(TrunkRow.PROPERTY_TIME);
newIgnoredColumn(TrunkRow.PROPERTY_BALANCE_ID);
+ }
+ @Override
+ public String[] getHeader() {
+ return new String[]{
+ TrunkRow.PROPERTY_FILE_ORIGIN,
+ TrunkRow.PROPERTY_DATE,
+ TrunkRow.PROPERTY_TIME,
+ TrunkRow.PROPERTY_BALANCE_ID,
+ TrunkRow.PROPERTY_SIGN,
+ TrunkRow.PROPERTY_OPERATION_CODE,
+ TrunkRow.PROPERTY_RIG_NUMBER,
+ TrunkRow.PROPERTY_DIRECTION,
+ TrunkRow.PROPERTY_WEIGHT
+ };
}
+ @Override
public TrunkRow newEmptyInstance() {
return new TrunkRow();
}
-
}
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2013-12-09 20:13:47 UTC (rev 1441)
@@ -172,6 +172,7 @@
tutti.service.pupitri.import.attachment.comment=
tutti.service.pupitri.import.carrousel.error=
tutti.service.pupitri.import.trunk.error=
+tutti.service.puttiri.carroussel.import.error=
tutti.service.referential.export.gear.error=
tutti.service.referential.export.person.error=
tutti.service.referential.export.species.error=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-12-09 20:13:47 UTC (rev 1441)
@@ -172,6 +172,7 @@
tutti.service.pupitri.import.attachment.comment=Import Pupitri du %s
tutti.service.pupitri.import.carrousel.error=Erreur lors de l'import du fichier de carrousel %2s pour le trait %1s
tutti.service.pupitri.import.trunk.error=Erreur lors de l'import du fichier de trémie %2s pour le trait %1s
+tutti.service.puttiri.carroussel.import.error=
tutti.service.referential.export.gear.error=Erreur lors de l'export des engins dans le fichier %s
tutti.service.referential.export.person.error=Erreur lors de l'export des personnes dans le fichier %s
tutti.service.referential.export.species.error=Erreur lors de l'export des espèces dans le fichier %s
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportPupitriAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportPupitriAction.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportPupitriAction.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -108,7 +108,11 @@
getContext().getTuttiPupitriImportExportService();
service.exportSpecies(speciesList, file);
+ }
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
sendMessage(_("tutti.flash.info.species.exported.from.protocol",
file));
}
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 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPupitriAction.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -60,8 +60,6 @@
protected ImportPupitriPopupUI importPupitriDialog;
-// protected TuttiProtocol currentProtocol;
-
protected PersistenceService persistenceService;
protected EditFishingOperationAction editAction;
@@ -74,7 +72,6 @@
public EditFishingOperationAction getEditAction() {
if (editAction == null) {
- //editAction = getContext().getActionFactory().createLogicAction(getHandler().getParentUi().getHandler().getParentHandler(),
FishingOperationsUI parentContainer = handler.getParentContainer(FishingOperationsUI.class);
editAction = getContext().getActionFactory().createLogicAction(parentContainer.getHandler(),
EditFishingOperationAction.class);
@@ -110,7 +107,6 @@
);
}
if (result) {
-// currentProtocol = getDataContext().getProtocol();
SpeciesBatchUIModel speciesBatchUIModel = getUI().getModel();
if (speciesBatchUIModel.getRowCount() > 0) {
@@ -145,7 +141,6 @@
PupitriImportExportService pupitriImportExportService =
getContext().getTuttiPupitriImportExportService();
-// EditCatchesUIModel model = getUI().getHandler().getParentUi().getModel();
EditCatchesUI parentContainer = handler.getParentContainer(EditCatchesUI.class);
EditCatchesUIModel model = parentContainer.getModel();
@@ -170,7 +165,6 @@
super.releaseAction();
importedTrunkFile = null;
importedCarrouselFile = null;
-// currentProtocol = null;
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java 2013-12-09 16:12:30 UTC (rev 1440)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/ImportPupitriPopupUIHandler.java 2013-12-09 20:13:47 UTC (rev 1441)
@@ -56,6 +56,7 @@
protected void resetFields() {
ui.getTrunkFile().setSelectedFilePath(null);
+ ui.getCarrouselFile().setSelectedFilePath(null);
}
public void open() {
1
0