Echobase-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
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
February 2012
- 1 participants
- 27 discussions
r320 - trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools
by tchemit@users.forge.codelutin.com 16 Feb '12
by tchemit@users.forge.codelutin.com 16 Feb '12
16 Feb '12
Author: tchemit
Date: 2012-02-17 00:50:49 +0100 (Fri, 17 Feb 2012)
New Revision: 320
Url: http://forge.codelutin.com/repositories/revision/echobase/320
Log:
use new api
Modified:
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-02-16 23:50:12 UTC (rev 319)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-02-16 23:50:49 UTC (rev 320)
@@ -24,12 +24,13 @@
package fr.ifremer.echobase.tools;
import fr.ifremer.echobase.EchoBaseConfiguration;
+import fr.ifremer.echobase.EchoBaseConfigurationOption;
import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.meta.DbMeta;
+import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -45,6 +46,7 @@
import java.io.File;
import java.util.Locale;
+import java.util.Properties;
/**
* Abstract csv file generator test
@@ -67,7 +69,7 @@
protected File testdir;
- protected static EchoBaseConfiguration configuration;
+ protected EchoBaseConfiguration configuration;
@BeforeClass
public static void beforeClass() {
@@ -75,7 +77,6 @@
// check /csv dir is available in test resources
TestHelper.assertCsvResourceDirectoryExists();
- configuration = new EchoBaseConfiguration("echobase-test.properties");
}
@Before
@@ -87,6 +88,11 @@
log.debug("Test directory = " + testdir);
}
+ Properties defaultProps = new Properties();
+ defaultProps.put(EchoBaseConfigurationOption.DATA_DIRECTORY.getKey(), testdir);
+
+ configuration = new EchoBaseConfiguration(defaultProps);
+
EchoBaseTopiaRootContextFactory factory =
new EchoBaseTopiaRootContextFactory();
1
0
r319 - trunk/echobase-services/src/test/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 16 Feb '12
by tchemit@users.forge.codelutin.com 16 Feb '12
16 Feb '12
Author: tchemit
Date: 2012-02-17 00:50:12 +0100 (Fri, 17 Feb 2012)
New Revision: 319
Url: http://forge.codelutin.com/repositories/revision/echobase/319
Log:
add import data service test (without data won't commit from my phone :()
Added:
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AcousticDataImportServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CatchesDataImportServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportService2Test.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportServiceTest.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/OperationImportServiceTest.java
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AcousticDataImportServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AcousticDataImportServiceTest.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AcousticDataImportServiceTest.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,98 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.Data;
+import fr.ifremer.echobase.entities.data.DataAcquisition;
+import fr.ifremer.echobase.entities.data.DataProcessing;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.configurations.AcousticDataImportConfiguration;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests {@link AcousticDataImportService}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class AcousticDataImportServiceTest extends EchoBaseTestServiceSupport {
+
+ protected FakeEchoBaseServiceContext initContext() {
+ return new FakeEchoBaseServiceContext("/import-data/echobase-0.3-commonData-result.h2.db");
+ }
+
+ protected String[] getImportPath(String filename) {
+ return new String[]{"/import-data", "acousticData", filename};
+ }
+
+ @Test
+ public void doImport() throws Exception {
+
+ assertNbEntities(Voyage.class, 1);
+ assertNbEntities(Transit.class, 3);
+ assertNbEntities(Transect.class, 181);
+
+ // import operations
+
+ assertNbEntities(DataAcquisition.class, 0);
+ assertNbEntities(DataProcessing.class, 0);
+ assertNbEntities(Cell.class, 0);
+ assertNbEntities(Data.class, 0);
+
+ AcousticDataImportConfiguration conf =
+ new AcousticDataImportConfiguration(getLocale());
+
+ conf.setVoyageId("fr.ifremer.echobase.entities.data.Voyage#1329429559711#0.2622586586792377");
+ conf.setVesselId("fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855");
+
+ prepareInputFile(conf.getMoviesFile(), getImportPath("movies.csv"));
+
+ AcousticDataImportService service =
+ getService(AcousticDataImportService.class);
+
+ List<CsvImportResult> result =
+ service.doImport(conf, createFakeUser());
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(4, result.size());
+ Iterator<CsvImportResult> iterator = result.iterator();
+ assertCsvImportResult(iterator.next(), DataAcquisition.class, 61, 0, 61);
+ assertCsvImportResult(iterator.next(), DataProcessing.class, 183, 0, 183);
+ assertCsvImportResult(iterator.next(), Cell.class, 427, 0, 427);
+ assertCsvImportResult(iterator.next(), Data.class, 427, 0, 427);
+
+ assertNbEntities(DataAcquisition.class, 0);
+ assertNbEntities(DataProcessing.class, 0);
+ assertNbEntities(Cell.class, 0);
+ assertNbEntities(Data.class, 0);
+ }
+
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AcousticDataImportServiceTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CatchesDataImportServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CatchesDataImportServiceTest.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CatchesDataImportServiceTest.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,93 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleData;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.configurations.CatchesDataImportConfiguration;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests {@link CatchesDataImportService}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class CatchesDataImportServiceTest extends EchoBaseTestServiceSupport {
+
+ protected FakeEchoBaseServiceContext initContext() {
+ return new FakeEchoBaseServiceContext("/import-data/echobase-0.3-operation-result.h2.db");
+ }
+
+ protected String[] getImportPath(String filename) {
+ return new String[]{"/import-data", "catchesData", filename};
+ }
+
+ @Test
+ public void doImport() throws Exception {
+
+ assertNbEntities(Voyage.class, 1);
+ assertNbEntities(Transit.class, 3);
+ assertNbEntities(Transect.class, 181);
+ assertNbEntities(Operation.class, 61);
+
+ // import operations
+
+ assertNbEntities(Sample.class, 0);
+ assertNbEntities(SampleData.class, 0);
+
+ CatchesDataImportConfiguration conf =
+ new CatchesDataImportConfiguration(getLocale());
+
+ conf.setVoyageId("fr.ifremer.echobase.entities.data.Voyage#1329429559711#0.2622586586792377");
+ conf.setVesselId("fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855");
+
+ prepareInputFile(conf.getTotalSampleFile(), getImportPath("totalsample.csv"));
+ prepareInputFile(conf.getSubSampleFile(), getImportPath("subsample.csv"));
+// prepareInputFile(conf.getBiometrySampleFile(), getImportPath("biometrysample.csv"));
+
+ CatchesDataImportService service =
+ getService(CatchesDataImportService.class);
+
+ List<CsvImportResult> result = service.doImport(conf, createFakeUser());
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(2, result.size());
+ Iterator<CsvImportResult> iterator = result.iterator();
+ assertCsvImportResult(iterator.next(), Sample.class, 619, 0, 4680);
+ assertCsvImportResult(iterator.next(), Sample.class, 4061, 0, 4680);
+
+ assertNbEntities(Sample.class, 4680);
+ assertNbEntities(SampleData.class, 0);
+ }
+
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CatchesDataImportServiceTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportService2Test.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportService2Test.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportService2Test.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,92 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.configurations.CommonDataImportConfiguration;
+import fr.ifremer.echobase.services.configurations.CommonDataImportMode;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests {@link CommonDataImportService} with {@link CommonDataImportMode#TRANSECT} mode.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class CommonDataImportService2Test extends EchoBaseTestServiceSupport {
+
+ protected FakeEchoBaseServiceContext initContext() {
+ return new FakeEchoBaseServiceContext("/import-data/echobase-0.3-commonData-result.h2.db");
+ }
+
+ @Test
+ public void doImport() throws Exception {
+
+ // import with mode transect
+
+ assertNbEntities(Voyage.class, 1);
+ assertNbEntities(Transit.class, 3);
+ assertNbEntities(Transect.class, 181);
+
+ CommonDataImportConfiguration conf =
+ new CommonDataImportConfiguration(getLocale());
+
+ conf.setAreaOfOperationId("fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622");
+ conf.setDatum("datum");
+ conf.setVoyageId("fr.ifremer.echobase.entities.data.Voyage#1329429559711#0.2622586586792377");
+ conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis");
+ conf.setTransectGeospatialVerticalPositive("transectGeospatialVerticalPositive");
+ conf.setTransectLicence("transectLicence");
+ conf.setVesselId("fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855");
+
+ prepareInputFile(conf.getTransectFile(), getImportPath("transect.csv"));
+
+ conf.setImportMode(CommonDataImportMode.TRANSECT);
+
+ CommonDataImportService service =
+ getService(CommonDataImportService.class);
+
+
+ List<CsvImportResult> result = service.doImport(conf, createFakeUser());
+ Assert.assertNotNull(result);
+ Assert.assertEquals(1, result.size());
+ Iterator<CsvImportResult> iterator = result.iterator();
+ assertCsvImportResult(iterator.next(), Transect.class, 181, 0, 362);
+
+ assertNbEntities(Voyage.class, 1);
+ assertNbEntities(Transit.class, 3);
+ assertNbEntities(Transect.class, 362);
+ }
+
+ protected String[] getImportPath(String filename) {
+ return new String[]{"/import-data", "commonData", filename};
+ }
+
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportService2Test.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportServiceTest.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportServiceTest.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,97 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.configurations.CommonDataImportConfiguration;
+import fr.ifremer.echobase.services.configurations.CommonDataImportMode;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests {@link CommonDataImportService} with {@link CommonDataImportMode#ALL} mode.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class CommonDataImportServiceTest extends EchoBaseTestServiceSupport {
+
+ protected FakeEchoBaseServiceContext initContext() {
+ return new FakeEchoBaseServiceContext("/import-data/echobase-0.3-nodata.h2.db");
+ }
+
+ @Test
+ public void doImport() throws Exception {
+
+ // no data in db
+
+ assertNbEntities(Voyage.class, 0);
+ assertNbEntities(Transit.class, 0);
+ assertNbEntities(Transect.class, 0);
+
+ // import with mode all (voyage / transit / transect)
+
+ CommonDataImportConfiguration conf =
+ new CommonDataImportConfiguration(getLocale());
+
+ conf.setAreaOfOperationId("fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622");
+ conf.setDatum("datum");
+ conf.setMissionId("fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231");
+ conf.setTransectBinUnitsPingAxis("transectBinUnitsPingAxis");
+ conf.setTransectGeospatialVerticalPositive("transectGeospatialVerticalPositive");
+ conf.setTransectLicence("transectLicence");
+ conf.setTransitRelatedActivity("transitRelatedActivity");
+ conf.setVoyageDescription("voyageDescription");
+ conf.setVesselId("fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855");
+
+ prepareInputFile(conf.getVoyageFile(), getImportPath("voyage.csv"));
+ prepareInputFile(conf.getTransitFile(), getImportPath("transit.csv"));
+ prepareInputFile(conf.getTransectFile(), getImportPath("transect.csv"));
+
+ conf.setImportMode(CommonDataImportMode.ALL);
+
+ CommonDataImportService service =
+ getService(CommonDataImportService.class);
+
+ List<CsvImportResult> result =
+ service.doImport(conf, createFakeUser());
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(3, result.size());
+ Iterator<CsvImportResult> iterator = result.iterator();
+ assertCsvImportResult(iterator.next(), Voyage.class, 1, 0, 1);
+ assertCsvImportResult(iterator.next(), Transit.class, 3, 0, 3);
+ assertCsvImportResult(iterator.next(), Transect.class, 181, 0, 181);
+ }
+
+ protected String[] getImportPath(String filename) {
+ return new String[]{"/import-data", "commonData", filename};
+ }
+
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/CommonDataImportServiceTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,117 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EchoBaseUserImpl;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.StringUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+
+/**
+ * Nice test service support.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public abstract class EchoBaseTestServiceSupport extends EchoBaseServiceSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EchoBaseTestServiceSupport.class);
+
+ protected abstract FakeEchoBaseServiceContext initContext();
+
+ @Rule
+ public FakeEchoBaseServiceContext fakeServiceContext = initContext();
+
+ @Before
+ public void setUp() throws Exception {
+ fakeServiceContext.setServiceFactory(new EchoBaseServiceFactory());
+ setServiceContext(fakeServiceContext);
+ }
+
+ protected EchoBaseUser createFakeUser() {
+ EchoBaseUser echoBaseUser = new EchoBaseUserImpl();
+ echoBaseUser.setEmail("echobase-test(a)ifremer.fr");
+ return echoBaseUser;
+ }
+
+ protected File getTestDir() {
+ return fakeServiceContext.getTestDir();
+ }
+
+ protected void prepareInputFile(InputFile inputFile,
+ String... path) throws IOException {
+ String filename = path[path.length - 1];
+ String resourcePath = StringUtil.join(Arrays.asList(path), "/", true);
+ InputStream inputStream =
+ getClass().getResourceAsStream(resourcePath);
+ Preconditions.checkNotNull(inputStream, "Could not find resource at " + resourcePath);
+ File testDir = getTestDir();
+ File newFile = new File(testDir, filename);
+ FileUtils.copyInputStreamToFile(
+ inputStream,
+ newFile
+ );
+ inputFile.setFileName(filename);
+ inputFile.setFile(newFile);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Copy file to " + newFile);
+ }
+ }
+
+ protected <E extends TopiaEntity> void assertCsvImportResult(CsvImportResult actual,
+ Class<E> entityType,
+ int numberCreated,
+ int numberUpdated,
+ int nbCount) throws TopiaException {
+ Assert.assertNotNull(actual);
+ Assert.assertEquals(EchoBaseEntityEnum.valueOf(entityType), actual.getEntityType());
+ Assert.assertEquals(numberCreated, actual.getNumberCreated());
+ Assert.assertEquals(numberUpdated, actual.getNumberUpdated());
+ assertNbEntities(entityType, nbCount);
+ }
+
+ protected <E extends TopiaEntity> void assertNbEntities(Class<E> entityType,
+ int expectedNumber) throws TopiaException {
+ long count = getDAO(entityType).count();
+ Assert.assertEquals(count, expectedNumber);
+ }
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseTestServiceSupport.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,212 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.echobase.EchoBaseConfiguration;
+import fr.ifremer.echobase.EchoBaseConfigurationOption;
+import fr.ifremer.echobase.EchoBaseTechnicalException;
+import fr.ifremer.echobase.EchoBaseTopiaRootContextFactory;
+import fr.ifremer.echobase.entities.meta.DbMeta;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.rules.TestWatcher;
+import org.junit.runner.Description;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.TopiaRuntimeException;
+import org.nuiton.util.FileUtil;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Properties;
+
+/**
+ * Provide an implementation of {@link EchoBaseServiceContext} suitable for repeatable,
+ * isolated tests requiring a database.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class FakeEchoBaseServiceContext extends TestWatcher implements EchoBaseServiceContext {
+
+ private static final Log log =
+ LogFactory.getLog(FakeEchoBaseServiceContext.class);
+
+ /** A time-stamp, allow to make multiple build and keep the tests data. */
+ protected static final String TIMESTAMP = String.valueOf(System.nanoTime());
+
+ protected final String initDb;
+
+ protected EchoBaseServiceFactory serviceFactory;
+
+ protected TopiaContext rootContext;
+
+ protected TopiaContext transaction;
+
+ protected Date fakeCurrentTime;
+
+ protected File testDir;
+
+ protected EchoBaseConfiguration configuration;
+
+ public FakeEchoBaseServiceContext(String initDb) {
+ this.initDb = initDb;
+ }
+
+ protected File getTestSpecificDirectory(Description description) {
+ // Trying to look for the temporary folder to store data for the test
+ String tempDirPath = System.getProperty("java.io.tmpdir");
+ if (tempDirPath == null) {
+ // can this really occur ?
+ tempDirPath = "";
+ if (log.isWarnEnabled()) {
+ log.warn("'\"java.io.tmpdir\" not defined");
+ }
+ }
+ File tempDirFile = new File(tempDirPath);
+
+ // create the directory to store database data
+ String dataBasePath = description.getClassName()
+ + File.separator // a directory with the test class name
+ + description.getMethodName()// a sub-directory with the method name
+ + '_'
+ + TIMESTAMP; // and a timestamp
+ File databaseFile = new File(tempDirFile, dataBasePath);
+ return databaseFile;
+ }
+
+ @Override
+ protected void starting(Description description) {
+ super.starting(description);
+ EchoBaseTopiaRootContextFactory factory =
+ new EchoBaseTopiaRootContextFactory();
+ testDir = getTestSpecificDirectory(description);
+ if (log.isInfoEnabled()) {
+ log.info("Test dir = " + testDir);
+ }
+
+ if (initDb != null) {
+
+ // let's use this path as the initial db.
+
+ File destinationDb = new File(testDir, "db" +
+ File.separator +
+ "echobase.h2.db");
+ InputStream inputStream = getClass().getResourceAsStream(initDb);
+ Preconditions.checkNotNull(inputStream, "Could not find resource from " + initDb);
+ try {
+ FileUtil.createDirectoryIfNecessary(
+ destinationDb.getParentFile());
+
+ FileUtils.copyInputStreamToFile(
+ inputStream,
+ destinationDb
+ );
+ } catch (IOException e) {
+ throw new EchoBaseTechnicalException("Could not copy db", e);
+ } finally {
+ IOUtils.closeQuietly(inputStream);
+ }
+ }
+
+ Properties defaultProps = new Properties();
+ defaultProps.put(EchoBaseConfigurationOption.DATA_DIRECTORY.getKey(), testDir);
+ configuration = new EchoBaseConfiguration(defaultProps);
+
+ rootContext = factory.newEmbeddedDatabase(testDir);
+// rootContext = factory.newEmbeddedDatabase(testDir, "/" + CONFIGURATION_PATH);
+ }
+
+ @Override
+ protected void finished(Description description) {
+ super.finished(description);
+ if (!rootContext.isClosed()) {
+ try {
+ rootContext.closeContext();
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ }
+ }
+ }
+
+ /** May be used in test to get a fresh transaction. */
+ @Override
+ public TopiaContext getTransaction() {
+ if (transaction == null) {
+ try {
+ transaction = rootContext.beginTransaction();
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ }
+ }
+ return transaction;
+ }
+
+ public TopiaContext newTransaction() throws TopiaException {
+ return rootContext.beginTransaction();
+ }
+
+ @Override
+ public void setTransaction(TopiaContext transaction) {
+ }
+
+ @Override
+ public Locale getLocale() {
+ return Locale.FRANCE;
+ }
+
+ @Override
+ public DbMeta getDbMeta() {
+ return DbMeta.newDbMeta();
+ }
+
+ @Override
+ public EchoBaseConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ @Override
+ public EchoBaseServiceFactory getServiceFactory() {
+ return serviceFactory;
+ }
+
+ @Override
+ public <E extends EchoBaseService> E newService(Class<E> clazz) {
+ return serviceFactory.newService(clazz, this);
+ }
+
+ public void setServiceFactory(EchoBaseServiceFactory serviceFactory) {
+ this.serviceFactory = serviceFactory;
+ }
+
+ public File getTestDir() {
+ return testDir;
+ }
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/FakeEchoBaseServiceContext.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/OperationImportServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/OperationImportServiceTest.java (rev 0)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/OperationImportServiceTest.java 2012-02-16 23:50:12 UTC (rev 319)
@@ -0,0 +1,94 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import fr.ifremer.echobase.entities.data.GearMetadataValue;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationMetadataValue;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.services.configurations.OperationImportConfiguration;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests {@link OperationImportService}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class OperationImportServiceTest extends EchoBaseTestServiceSupport {
+
+ protected FakeEchoBaseServiceContext initContext() {
+ return new FakeEchoBaseServiceContext("/import-data/echobase-0.3-commonData-result.h2.db");
+ }
+
+ protected String[] getImportPath(String filename) {
+ return new String[]{"/import-data", "operation", filename};
+ }
+
+ @Test
+ public void doImport() throws Exception {
+
+ assertNbEntities(Voyage.class, 1);
+ assertNbEntities(Transit.class, 3);
+ assertNbEntities(Transect.class, 181);
+
+ // import operations
+
+ assertNbEntities(Operation.class, 0);
+ assertNbEntities(OperationMetadataValue.class, 0);
+ assertNbEntities(GearMetadataValue.class, 0);
+
+ OperationImportConfiguration conf =
+ new OperationImportConfiguration(getLocale());
+
+ conf.setVoyageId("fr.ifremer.echobase.entities.data.Voyage#1329429559711#0.2622586586792377");
+ conf.setVesselId("fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855");
+
+ prepareInputFile(conf.getOperationFile(), getImportPath("operation.csv"));
+ prepareInputFile(conf.getOperationMetadataFile(), getImportPath("operationmetadatavalue.csv"));
+ prepareInputFile(conf.getGearMetadataFile(), getImportPath("gearmetadatavalue.csv"));
+
+ OperationImportService service =
+ getService(OperationImportService.class);
+
+ List<CsvImportResult> result = service.doImport(conf, createFakeUser());
+
+ Assert.assertNotNull(result);
+ Assert.assertEquals(3, result.size());
+ Iterator<CsvImportResult> iterator = result.iterator();
+ assertCsvImportResult(iterator.next(), Operation.class, 61, 0, 61);
+ assertCsvImportResult(iterator.next(), OperationMetadataValue.class, 183, 0, 183);
+ assertCsvImportResult(iterator.next(), GearMetadataValue.class, 427, 0, 427);
+
+ assertNbEntities(Operation.class, 61);
+ assertNbEntities(OperationMetadataValue.class, 183);
+ assertNbEntities(GearMetadataValue.class, 427);
+ }
+}
Property changes on: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/OperationImportServiceTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
16 Feb '12
Author: tchemit
Date: 2012-02-17 00:14:23 +0100 (Fri, 17 Feb 2012)
New Revision: 318
Url: http://forge.codelutin.com/repositories/revision/echobase/318
Log:
- improve configuration (can pass default properties to push as default option via java code (used by tests))
- rename acCousticXXX to acousticeXXX
- make works operation import
- begin to make work catches import (still miss some species to finish it)
- use FilterPagerBean from nuiton-struts2
- svn properties + headers
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AcousticDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AcousticDataImportConfiguration.java
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java
trunk/echobase-services/src/main/resources/embedded/echobase-embedded.properties
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchAccousticData.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseConfiguration.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -28,11 +28,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContextFactory;
-import org.nuiton.util.*;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.Version;
+import org.nuiton.util.VersionUtil;
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.util.Map;
import java.util.Properties;
/**
@@ -55,22 +60,32 @@
protected ApplicationConfig applicationConfig;
public EchoBaseConfiguration() {
- this("echobase.properties");
+ this(null);
}
- public EchoBaseConfiguration(String file) {
+ public EchoBaseConfiguration(Properties propos) {
EchoBaseDateConverter.initDateConverter();
applicationConfig = new ApplicationConfig();
- applicationConfig.setConfigFileName(file);
+ applicationConfig.setConfigFileName("echobase.properties");
if (log.isInfoEnabled()) {
log.info(this + " is initializing...");
}
try {
applicationConfig.loadDefaultOptions(EchoBaseConfigurationOption.class);
+ if (propos != null) {
+ for (Map.Entry<Object, Object> entry : propos.entrySet()) {
+
+ applicationConfig.setDefaultOption(
+ String.valueOf(entry.getKey()),
+ String.valueOf(entry.getValue())
+ );
+ }
+ }
applicationConfig.parse();
+
} catch (ArgumentsParserException e) {
throw new EchoBaseTechnicalException(
"Could not parse configuration", e);
@@ -161,8 +176,8 @@
Preconditions.checkNotNull(
directory,
"Could not find directory " + directory + " (key " +
- key +
- "in your configuration file named echobase.properties)"
+ key +
+ "in your configuration file named echobase.properties)"
);
if (log.isInfoEnabled()) {
log.info(key + " = " + directory);
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -51,7 +51,6 @@
import fr.ifremer.echobase.entities.references.SpeciesCategory;
import fr.ifremer.echobase.entities.references.Strata;
import fr.ifremer.echobase.entities.references.Vessel;
-import org.apache.commons.lang3.StringUtils;
import org.nuiton.topia.persistence.TopiaEntity;
import java.io.File;
@@ -205,16 +204,17 @@
public String apply(Gear input) {
//FIXME : Remove the dummy test when all gear in db have a casino name
String casinoGearName = input.getCasinoGearName();
- return StringUtils.isEmpty(casinoGearName) ? input.getName() : casinoGearName;
+// return StringUtils.isEmpty(casinoGearName) ? input.getName() : casinoGearName;
+ return casinoGearName;
}
};
- public static final Function<Gear, String> GEAR_GEAR_CODE = new Function<Gear, String>() {
- @Override
- public String apply(Gear input) {
- return input.getGearCode();
- }
- };
+// public static final Function<Gear, String> GEAR_GEAR_CODE = new Function<Gear, String>() {
+// @Override
+// public String apply(Gear input) {
+// return input.getGearCode();
+// }
+// };
public static final Function<Operation, String> OPERATION_ID = new Function<Operation, String>() {
@Override
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseTopiaRootContextFactory.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -32,8 +32,6 @@
import org.nuiton.topia.TopiaContextFactory;
import org.nuiton.topia.TopiaNotFoundException;
import org.nuiton.topia.TopiaRuntimeException;
-import org.nuiton.topia.replication.TopiaReplicationService;
-import org.nuiton.topia.replication.TopiaReplicationServiceImpl;
import java.io.File;
import java.io.IOException;
@@ -53,6 +51,11 @@
public TopiaContext newEmbeddedDatabase(File dir) {
+ return newEmbeddedDatabase(dir, "/topia-h2.properties");
+ }
+
+ public TopiaContext newEmbeddedDatabase(File dir, String configPath) {
+
File databaseFile = new File(dir, "db");
String databaseAbsolutePath = databaseFile.getAbsolutePath();
@@ -61,25 +64,24 @@
Properties properties = new Properties();
InputStream input = null;
try {
- input = getClass().getResourceAsStream("/topia-h2.properties");
+ input = getClass().getResourceAsStream(configPath);
properties.load(input);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
Closeables.closeQuietly(input);
}
- properties.setProperty(
- TopiaContextFactory.CONFIG_URL,
- "jdbc:h2:file:" + databaseAbsolutePath + "/echobase");
+ String dbUrl = "jdbc:h2:file:" + databaseAbsolutePath + "/echobase";
+ properties.setProperty(TopiaContextFactory.CONFIG_URL, dbUrl);
+ if (log.isInfoEnabled()) {
+ log.info("Use embedded db at " + dbUrl);
+ }
// add entities to the context
properties.setProperty(
TopiaContextFactory.CONFIG_PERSISTENCE_CLASSES,
EchoBaseDAOHelper.getImplementationClassesAsString());
- // add topiaReplicationService in the context
- properties.setProperty(TopiaReplicationService.TOPIA_SERVICE_NAME,
- TopiaReplicationServiceImpl.class.getName());
TopiaContext rootContext;
try {
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -1,610 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import fr.ifremer.echobase.EchoBaseFunctions;
-import fr.ifremer.echobase.EchoBasePredicates;
-import fr.ifremer.echobase.InputFile;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.data.Cell;
-import fr.ifremer.echobase.entities.data.CellDAO;
-import fr.ifremer.echobase.entities.data.Data;
-import fr.ifremer.echobase.entities.data.DataAcquisition;
-import fr.ifremer.echobase.entities.data.DataAcquisitionDAO;
-import fr.ifremer.echobase.entities.data.DataDAO;
-import fr.ifremer.echobase.entities.data.DataProcessing;
-import fr.ifremer.echobase.entities.data.DataProcessingDAO;
-import fr.ifremer.echobase.entities.data.Transect;
-import fr.ifremer.echobase.entities.data.Transit;
-import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.entities.references.AcousticInstrument;
-import fr.ifremer.echobase.entities.references.CellType;
-import fr.ifremer.echobase.entities.references.DataMetadata;
-import fr.ifremer.echobase.entities.references.Vessel;
-import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration;
-import fr.ifremer.echobase.services.csv.AcousticDataImportModel;
-import fr.ifremer.echobase.services.csv.AcousticDataImportModelRow;
-import org.nuiton.util.csv.Import;
-import org.nuiton.util.csv.ImportRuntimeException;
-
-import java.io.Reader;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static org.nuiton.i18n.I18n.l_;
-
-/**
- * Service to launch a "acoustic data" import.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class AccousticDataImportService extends AbstractImportDataService<AccousticDataImportConfiguration> {
-
- @Override
- protected String getImportLabel() {
- return l_(getLocale(), ImportDataMode.AccousticData.getI18nKey());
- }
-
- @Override
- protected List<CsvImportResult> startImport(
- AccousticDataImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
-
- List<CsvImportResult> result = Lists.newLinkedList();
-
- // get selected voyage
- Voyage voyage = getEntityById(Voyage.class,
- configuration.getVoyageId());
-
- // get selected vessel
- Vessel vessel = getEntityById(Vessel.class,
- configuration.getVesselId());
-
- CellType esduCellType = getEntityByProperty(
- CellType.class, CellType.PROPERTY_ID, "Esdu");
- Preconditions.checkNotNull(esduCellType);
-
- CellType elementaryCellType = getEntityByProperty(
- CellType.class, CellType.PROPERTY_ID, "Elementary");
- Preconditions.checkNotNull(elementaryCellType);
-
- InputFile inputFile = configuration.getMoviesFile();
-
- CsvImportResult importDataAcquisition = new CsvImportResult(
- EchoBaseEntityEnum.DataAcquisition,
- inputFile.getFileName(),
- false);
-
- CsvImportResult importDataProcessing = new CsvImportResult(
- EchoBaseEntityEnum.DataProcessing,
- inputFile.getFileName(),
- false);
-
- CsvImportResult importCell = new CsvImportResult(
- EchoBaseEntityEnum.Cell,
- inputFile.getFileName(),
- false);
-
- CsvImportResult importCellData = new CsvImportResult(
- EchoBaseEntityEnum.Data,
- inputFile.getFileName(),
- false);
-
- importMoviesFile(voyage,
- vessel,
- esduCellType,
- elementaryCellType,
- configuration,
- inputFile,
- importDataAcquisition,
- importDataProcessing,
- importCell,
- importCellData);
-
- addResultAndLog(result, inputFile, importDataAcquisition, user);
- addResultAndLog(result, inputFile, importDataProcessing, user);
- addResultAndLog(result, inputFile, importCell, user);
- addResultAndLog(result, inputFile, importCellData, user);
-
- return result;
- }
-
- private final DateFormat cellDateFormat =
- new SimpleDateFormat("yyyy-MM-dd hh:mm:ss'Z'");
-
- private void importMoviesFile(Voyage voyage,
- Vessel vessel,
- CellType esduCellType,
- CellType elementaryCellType,
- AccousticDataImportConfiguration configuration,
- InputFile inputFile,
- CsvImportResult importDataAcquisition,
- CsvImportResult importDataProcessing,
- CsvImportResult importCell,
- CsvImportResult importCellData
- ) throws ImportException {
-
- Map<String, AcousticInstrument> instrumentsById =
- getEntitiesMap(AcousticInstrument.class,
- EchoBaseFunctions.ACOUSTIC_INSTRUMENT_ID);
-
- Map<String, DataMetadata> dataMetadatasByName = getEntitiesMap(
- DataMetadata.class, EchoBaseFunctions.DATA_METADATA_NAME);
-
- AcousticDataImportModel csvModel = new AcousticDataImportModel(
- getCsvSeparator());
-
- DataAcquisitionDAO dataAcquisitionDAO =
- getDAO(DataAcquisition.class, DataAcquisitionDAO.class);
- DataProcessingDAO dataProcessingDAO =
- getDAO(DataProcessing.class, DataProcessingDAO.class);
- CellDAO cellDAO = getDAO(Cell.class, CellDAO.class);
- DataDAO dataDAO = getDAO(Data.class, DataDAO.class);
-
- boolean addDataAcquisition = configuration.isAddDataAcquisition();
-
- Reader reader = getInputFileReader(inputFile);
- try {
- Import<AcousticDataImportModelRow> importer =
- Import.newImport(csvModel, reader);
- DataAcquisition dataAcquisition = null;
- DataProcessing dataProcessing = null;
- Cell esduCell = null;
- Cell elementaryCell;
- for (AcousticDataImportModelRow row : importer) {
-
- Date startDate = row.getCellDateStart();
-
- // get transect to use
- Transit transit = voyage.getTransit(startDate);
- if (transit == null) {
-
- // can not find correct transit
- throw new ImportException(
- l_(getLocale(), "echobase.importError.transit.notfound",
- voyage.getName(),
- startDate));
- }
-
- Transect transect = transit.getTransect(vessel);
- if (transect == null) {
-
- // can not find correct transect
- throw new ImportException(
- l_(getLocale(), "echobase.importError.transect.notfound",
- voyage.getName(),
- startDate,
- vessel.getName()));
- }
-
- // Build the row acoustic instrument
- String sndname = row.getSndName();
- String channelName = row.getChannelName();
- String instrumentId = sndname + channelName;
- AcousticInstrument instrument =
- instrumentsById.get(instrumentId);
-
- boolean isME70 =
- EchoBasePredicates.IS_ACOUSTIC_INSTRUMENT_ME70.apply(instrument);
- if (dataAcquisition == null ||
- !instrument.equals(dataAcquisition.getAcousticInstrument())) {
-
- // need to use another data acquisition
-
- String softwareVersion =
- getSoftwareVersion(configuration, isME70);
-
- String soundSpeedCalculations =
- getSoundSpeedCalculations(configuration, isME70);
-
- if (!addDataAcquisition &&
- !transect.isDataAcquisitionEmpty()) {
-
- // try to obtain an existing data acquisiton
-
- for (DataAcquisition acquisition : transect.getDataAcquisition()) {
-
- if (instrument.equals(acquisition.getAcousticInstrument())) {
-
- // found a matching data acquisiotn from his acoustic instrument
- dataAcquisition = acquisition;
- break;
- }
- }
- }
-
- if (dataAcquisition == null) {
-
- // need to create the data acquisition
-
- // create dataAcquisiton
- dataAcquisition = createDataAcquisition(
- configuration,
- instrument,
- softwareVersion,
- soundSpeedCalculations,
- row,
- dataAcquisitionDAO
- );
-
- importDataAcquisition.incrementsNumberCreated();
-
- // add it to transect
- transect.addDataAcquisition(dataAcquisition);
- }
-
- // create data processing
- dataProcessing = createDataProcessing(
- configuration,
- softwareVersion,
- soundSpeedCalculations,
- row,
- dataProcessingDAO
- );
-
- importDataProcessing.incrementsNumberUpdated();
-
- // add it to data acquisition
- dataAcquisition.addDataProcessing(dataProcessing);
-
- // must start a fresh new esdu cell
- esduCell = null;
- }
-
- int cellType = row.getCellType();
-
- String esduCellId = cellDateFormat.format(startDate);
-
- if (cellType == 4) {
-
- // this is a esdu cell row
-
- // create esdu cell
- esduCell = create(cellDAO,
- Cell.PROPERTY_CELL_TYPE, esduCellType,
- Cell.PROPERTY_NAME, esduCellId
- );
-
- importCell.incrementsNumberCreated();
-
- // add it to data processing
- dataProcessing.addCell(esduCell);
-
- // create esdu cell data
- createEsduCellData(configuration,
- esduCell,
- dataMetadatasByName,
- row,
- dataDAO,
- importCellData);
- } else {
-
- // this is a elementary cell row
-
- int cellNum = row.getCellNum();
-
- String elementaryCellId = esduCellId + "_" + cellNum;
-
- if (esduCell == null) {
- throw new IllegalStateException(
- "No esdu cell where to attach the " +
- "elementary cell " + elementaryCellId);
- }
-
- // create the elementary cell
-
- elementaryCell = create(cellDAO,
- Cell.PROPERTY_CELL_TYPE, elementaryCellType,
- Cell.PROPERTY_NAME, elementaryCellId
- );
-
- importCell.incrementsNumberCreated();
-
- // add it to esdu cell
- esduCell.addChilds(elementaryCell);
-
-
- // create datas of the elementary cell
- createElementaryCellData(configuration,
- elementaryCell,
- dataMetadatasByName,
- row,
- dataDAO,
- importCellData);
- }
- }
-
- } catch (ImportRuntimeException e) {
- throw new ImportException(getLocale(), inputFile, e);
- } finally {
- closeReader(reader, inputFile);
- }
- }
-
- protected void createEsduCellData(AccousticDataImportConfiguration configuration,
- Cell cell,
- Map<String, DataMetadata> dataMetadatasByName,
- AcousticDataImportModelRow row,
- DataDAO dao,
- CsvImportResult importCellData) {
-
- DataMetadata dataMetadata;
- Data data;
- String dataValue;
-
- String suffix =
- configuration.getCellPositionReference().getMetadataNameSuffix();
-
- // create Latitude data
- dataMetadata = dataMetadatasByName.get("Latitude" + suffix);
- dataValue = row.getEsduCellDataLatitude();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- // create Longitude data
- dataMetadata = dataMetadatasByName.get("Longitude" + suffix);
- dataValue = row.getEsduCellDataLongitude();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- // create Depth data
- dataMetadata = dataMetadatasByName.get("DepthRefSurface" + suffix);
- dataValue = row.getEsduCellDataDepth();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- // create Time data
- dataMetadata = dataMetadatasByName.get("Time" + suffix);
- dataValue = cellDateFormat.format(row.getCellDateStart());
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- // create AcousticDensity data
- dataMetadata = dataMetadatasByName.get("sa");
- dataValue = row.getEsduCellDataAcousticDensity();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
- }
-
- private void createElementaryCellData(AccousticDataImportConfiguration configuration,
- Cell cell,
- Map<String, DataMetadata> dataMetadatasByName,
- AcousticDataImportModelRow row,
- DataDAO dao,
- CsvImportResult importCellData) {
-
- DataMetadata dataMetadata;
- Data data;
- String dataValue;
-
- int cellType = row.getCellType();
-
- String startMeta;
- String endMeta;
-
- if (cellType == 0) {
-
- // surface
-
- startMeta = "DepthRefSurfaceStart";
- endMeta = "DepthRefSurfaceEnd";
-
- } else {
-
- // bottom
-
- startMeta = "DepthRefBottomStart";
- endMeta = "DepthRefBottomEnd";
- }
-
- // create depth start data
- dataMetadata = dataMetadatasByName.get(startMeta);
- dataValue = row.getCellDepthStart();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
-
- // create depth end data
- dataMetadata = dataMetadatasByName.get(endMeta);
- dataValue = row.getCellDepthEnd();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- // create acoustic density data
- dataMetadata = dataMetadatasByName.get("sa");
- dataValue = row.getCellSa();
- data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
- data.setDataValue(dataValue);
- cell.addData(data);
-
- importCellData.incrementsNumberCreated();
-
- }
-
- private DataAcquisition createDataAcquisition(AccousticDataImportConfiguration configuration,
- AcousticInstrument instrument,
- String softwareVersion,
- String soundSpeedCalculations,
- AcousticDataImportModelRow row,
- DataAcquisitionDAO dataAcquisitionDAO) {
-
- String transceiverAcquisitionAbsorptionDescription =
- configuration.getTransceiverAcquisitionAbsorptionDescription();
- String loggedDataFormat = configuration.getLoggedDataFormat();
- String loggedDataDatatype = configuration.getLoggedDataDatatype();
- String pingDutyCycle = configuration.getPingDutyCycle();
- String echosounderSoundSpeed = configuration.getEchosounderSoundSpeed();
-
- DataAcquisition dataAcquisition = create(dataAcquisitionDAO);
-
- // fill from manual configuration
- dataAcquisition.setAcousticInstrument(instrument);
- dataAcquisition.setTransceiverAcquisitionAbsorptionDescription(transceiverAcquisitionAbsorptionDescription);
- dataAcquisition.setAcquisitionSoftwareVersion(softwareVersion);
- dataAcquisition.setLoggedDataFormat(loggedDataFormat);
- dataAcquisition.setLoggedDataDatatype(loggedDataDatatype);
- dataAcquisition.setPingDutyCycle(pingDutyCycle);
- dataAcquisition.setEchosounderSoundSpeed(echosounderSoundSpeed);
- dataAcquisition.setSoundSpeedCalculations(soundSpeedCalculations);
-
- // fill from csv file
- Float transceiverAcquisitionAbsorption =
- row.getTransceiverAcquisitionAbsorption();
- Float transducerAcquisitionBeamAngleAthwartship =
- row.getTransducerAcquisitionBeamAngleAthwartship();
- Float transducerAcquisitionBeamAngleAlongship =
- row.getTransducerAcquisitionBeamAngleAlongship();
- Float transducerAcquisitionPsi =
- row.getTransducerAcquisitionPsi();
- Float transceiverAcquisitionPower =
- row.getTransceiverAcquisitionPower();
- Float transceiverAcquisitionPulseLength =
- row.getTransceiverAcquisitionPulseLength();
- Float transceiverAcquisitionGain =
- row.getTransceiverAcquisitionGain();
- Float transceiverAcquisitionSacorrection =
- row.getTransceiverAcquisitionSacorrection();
-
- dataAcquisition.setTransceiverAcquisitionAbsorption(transceiverAcquisitionAbsorption);
- dataAcquisition.setTransducerAcquisitionBeamAngleAthwartship(transducerAcquisitionBeamAngleAthwartship);
- dataAcquisition.setTransducerAcquisitionBeamAngleAlongship(transducerAcquisitionBeamAngleAlongship);
- dataAcquisition.setTransducerAcquisitionPsi(transducerAcquisitionPsi);
- dataAcquisition.setTransceiverAcquisitionPower(transceiverAcquisitionPower);
- dataAcquisition.setTransceiverAcquisitionPulseLength(transceiverAcquisitionPulseLength);
- dataAcquisition.setTransceiverAcquisitionGain(transceiverAcquisitionGain);
- dataAcquisition.setTransceiverAcquisitionSacorrection(transceiverAcquisitionSacorrection);
-
- return dataAcquisition;
- }
-
- private DataProcessing createDataProcessing(AccousticDataImportConfiguration configuration,
- String softwareVersion,
- String soundSpeedCalculations,
- AcousticDataImportModelRow row,
- DataProcessingDAO dataProcessingDAO) {
-
- String transceiverAcquisitionAbsorptionDescription =
- configuration.getTransceiverAcquisitionAbsorptionDescription();
- String echosounderSoundSpeed = configuration.getEchosounderSoundSpeed();
- String processingTemplate = configuration.getProcessingTemplate();
- String processingDescription = configuration.getProcessingDescription();
- Float sounderConstant = configuration.getSounderConstant();
- float digitThreshold = configuration.getDigitThreshold();
- String acousticDensityUnit = configuration.getAcousticDensityUnit();
- String notes = configuration.getNotes();
-
- DataProcessing dataProcessing = create(dataProcessingDAO);
-
- // fill from manual configuration
- dataProcessing.setProcessingTemplate(processingTemplate);
- dataProcessing.setProcessingDescription(processingDescription);
- dataProcessing.setSounderConstant(sounderConstant);
- dataProcessing.setDigitThreshold(digitThreshold);
- dataProcessing.setAcousticDensityUnit(acousticDensityUnit);
- dataProcessing.setNotes(notes);
- dataProcessing.setProcessingSoftwareVersion(softwareVersion);
- dataProcessing.setTransceiverProcessingAbsorptionDescription(transceiverAcquisitionAbsorptionDescription);
- dataProcessing.setEchosounderSoundSpeed(echosounderSoundSpeed);
- dataProcessing.setSoundSpeedCalculations(soundSpeedCalculations);
-
- // fill from csv file
-
- Float transceiverAcquisitionAbsorption =
- row.getTransceiverAcquisitionAbsorption();
- Float transducerAcquisitionBeamAngleAthwartship =
- row.getTransducerAcquisitionBeamAngleAthwartship();
- Float transducerAcquisitionBeamAngleAlongship =
- row.getTransducerAcquisitionBeamAngleAlongship();
- Float transducerAcquisitionPsi =
- row.getTransducerAcquisitionPsi();
-
- Float transceiverAcquisitionGain =
- row.getTransceiverAcquisitionGain();
- Float transceiverAcquisitionSacorrection =
- row.getTransceiverAcquisitionSacorrection();
- Float eIThreshold = row.getEiThreshold();
-
- dataProcessing.setEiThreshold(eIThreshold);
- dataProcessing.setTransceiverProcessingSacorrection(transceiverAcquisitionSacorrection);
- dataProcessing.setTransceiverProcessingAbsorption(transceiverAcquisitionAbsorption);
- dataProcessing.setTransceiverProcessingGain(transceiverAcquisitionGain);
- dataProcessing.setTransducerProcessingPsi(transducerAcquisitionPsi);
- dataProcessing.setTransducerProcessingBeamAngleAthwartship(transducerAcquisitionBeamAngleAthwartship);
- dataProcessing.setTransducerProcessingBeamAngleAlongship(transducerAcquisitionBeamAngleAlongship);
-
-
- return dataProcessing;
- }
-
- private String getSoftwareVersion(AccousticDataImportConfiguration configuration,
- boolean isME70) {
- String result;
- if (isME70) {
- result = configuration.getAcquisitionSoftwareVersionME70();
- } else {
- result = configuration.getAcquisitionSoftwareVersionER60();
- }
- return result;
- }
-
- private String getSoundSpeedCalculations(AccousticDataImportConfiguration configuration,
- boolean isME70) {
- String result;
- if (isME70) {
- result = configuration.getSoundSpeedCalculationsME70();
- } else {
- result = configuration.getSoundSpeedCalculationsER60();
- }
- return result;
- }
-
-}
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AcousticDataImportService.java (from rev 314, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AcousticDataImportService.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AcousticDataImportService.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -0,0 +1,610 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import fr.ifremer.echobase.EchoBaseFunctions;
+import fr.ifremer.echobase.EchoBasePredicates;
+import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.CellDAO;
+import fr.ifremer.echobase.entities.data.Data;
+import fr.ifremer.echobase.entities.data.DataAcquisition;
+import fr.ifremer.echobase.entities.data.DataAcquisitionDAO;
+import fr.ifremer.echobase.entities.data.DataDAO;
+import fr.ifremer.echobase.entities.data.DataProcessing;
+import fr.ifremer.echobase.entities.data.DataProcessingDAO;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.AcousticInstrument;
+import fr.ifremer.echobase.entities.references.CellType;
+import fr.ifremer.echobase.entities.references.DataMetadata;
+import fr.ifremer.echobase.entities.references.Vessel;
+import fr.ifremer.echobase.services.configurations.AcousticDataImportConfiguration;
+import fr.ifremer.echobase.services.csv.AcousticDataImportModel;
+import fr.ifremer.echobase.services.csv.AcousticDataImportModelRow;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportRuntimeException;
+
+import java.io.Reader;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.l_;
+
+/**
+ * Service to launch a "acoustic data" import.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class AcousticDataImportService extends AbstractImportDataService<AcousticDataImportConfiguration> {
+
+ @Override
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.AccousticData.getI18nKey());
+ }
+
+ @Override
+ protected List<CsvImportResult> startImport(
+ AcousticDataImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
+
+ List<CsvImportResult> result = Lists.newLinkedList();
+
+ // get selected voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
+
+ // get selected vessel
+ Vessel vessel = getEntityById(Vessel.class,
+ configuration.getVesselId());
+
+ CellType esduCellType = getEntityByProperty(
+ CellType.class, CellType.PROPERTY_ID, "Esdu");
+ Preconditions.checkNotNull(esduCellType);
+
+ CellType elementaryCellType = getEntityByProperty(
+ CellType.class, CellType.PROPERTY_ID, "Elementary");
+ Preconditions.checkNotNull(elementaryCellType);
+
+ InputFile inputFile = configuration.getMoviesFile();
+
+ CsvImportResult importDataAcquisition = new CsvImportResult(
+ EchoBaseEntityEnum.DataAcquisition,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importDataProcessing = new CsvImportResult(
+ EchoBaseEntityEnum.DataProcessing,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importCell = new CsvImportResult(
+ EchoBaseEntityEnum.Cell,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importCellData = new CsvImportResult(
+ EchoBaseEntityEnum.Data,
+ inputFile.getFileName(),
+ false);
+
+ importMoviesFile(voyage,
+ vessel,
+ esduCellType,
+ elementaryCellType,
+ configuration,
+ inputFile,
+ importDataAcquisition,
+ importDataProcessing,
+ importCell,
+ importCellData);
+
+ addResultAndLog(result, inputFile, importDataAcquisition, user);
+ addResultAndLog(result, inputFile, importDataProcessing, user);
+ addResultAndLog(result, inputFile, importCell, user);
+ addResultAndLog(result, inputFile, importCellData, user);
+
+ return result;
+ }
+
+ private final DateFormat cellDateFormat =
+ new SimpleDateFormat("yyyy-MM-dd hh:mm:ss'Z'");
+
+ private void importMoviesFile(Voyage voyage,
+ Vessel vessel,
+ CellType esduCellType,
+ CellType elementaryCellType,
+ AcousticDataImportConfiguration configuration,
+ InputFile inputFile,
+ CsvImportResult importDataAcquisition,
+ CsvImportResult importDataProcessing,
+ CsvImportResult importCell,
+ CsvImportResult importCellData
+ ) throws ImportException {
+
+ Map<String, AcousticInstrument> instrumentsById =
+ getEntitiesMap(AcousticInstrument.class,
+ EchoBaseFunctions.ACOUSTIC_INSTRUMENT_ID);
+
+ Map<String, DataMetadata> dataMetadatasByName = getEntitiesMap(
+ DataMetadata.class, EchoBaseFunctions.DATA_METADATA_NAME);
+
+ AcousticDataImportModel csvModel = new AcousticDataImportModel(
+ getCsvSeparator());
+
+ DataAcquisitionDAO dataAcquisitionDAO =
+ getDAO(DataAcquisition.class, DataAcquisitionDAO.class);
+ DataProcessingDAO dataProcessingDAO =
+ getDAO(DataProcessing.class, DataProcessingDAO.class);
+ CellDAO cellDAO = getDAO(Cell.class, CellDAO.class);
+ DataDAO dataDAO = getDAO(Data.class, DataDAO.class);
+
+ boolean addDataAcquisition = configuration.isAddDataAcquisition();
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<AcousticDataImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+ DataAcquisition dataAcquisition = null;
+ DataProcessing dataProcessing = null;
+ Cell esduCell = null;
+ Cell elementaryCell;
+ for (AcousticDataImportModelRow row : importer) {
+
+ Date startDate = row.getCellDateStart();
+
+ // get transect to use
+ Transit transit = voyage.getTransit(startDate);
+ if (transit == null) {
+
+ // can not find correct transit
+ throw new ImportException(
+ l_(getLocale(), "echobase.importError.transit.notfound",
+ voyage.getName(),
+ startDate));
+ }
+
+ Transect transect = transit.getTransect(vessel);
+ if (transect == null) {
+
+ // can not find correct transect
+ throw new ImportException(
+ l_(getLocale(), "echobase.importError.transect.notfound",
+ voyage.getName(),
+ startDate,
+ vessel.getName()));
+ }
+
+ // Build the row acoustic instrument
+ String sndname = row.getSndName();
+ String channelName = row.getChannelName();
+ String instrumentId = sndname + channelName;
+ AcousticInstrument instrument =
+ instrumentsById.get(instrumentId);
+
+ boolean isME70 =
+ EchoBasePredicates.IS_ACOUSTIC_INSTRUMENT_ME70.apply(instrument);
+ if (dataAcquisition == null ||
+ !instrument.equals(dataAcquisition.getAcousticInstrument())) {
+
+ // need to use another data acquisition
+
+ String softwareVersion =
+ getSoftwareVersion(configuration, isME70);
+
+ String soundSpeedCalculations =
+ getSoundSpeedCalculations(configuration, isME70);
+
+ if (!addDataAcquisition &&
+ !transect.isDataAcquisitionEmpty()) {
+
+ // try to obtain an existing data acquisiton
+
+ for (DataAcquisition acquisition : transect.getDataAcquisition()) {
+
+ if (instrument.equals(acquisition.getAcousticInstrument())) {
+
+ // found a matching data acquisiotn from his acoustic instrument
+ dataAcquisition = acquisition;
+ break;
+ }
+ }
+ }
+
+ if (dataAcquisition == null) {
+
+ // need to create the data acquisition
+
+ // create dataAcquisiton
+ dataAcquisition = createDataAcquisition(
+ configuration,
+ instrument,
+ softwareVersion,
+ soundSpeedCalculations,
+ row,
+ dataAcquisitionDAO
+ );
+
+ importDataAcquisition.incrementsNumberCreated();
+
+ // add it to transect
+ transect.addDataAcquisition(dataAcquisition);
+ }
+
+ // create data processing
+ dataProcessing = createDataProcessing(
+ configuration,
+ softwareVersion,
+ soundSpeedCalculations,
+ row,
+ dataProcessingDAO
+ );
+
+ importDataProcessing.incrementsNumberUpdated();
+
+ // add it to data acquisition
+ dataAcquisition.addDataProcessing(dataProcessing);
+
+ // must start a fresh new esdu cell
+ esduCell = null;
+ }
+
+ int cellType = row.getCellType();
+
+ String esduCellId = cellDateFormat.format(startDate);
+
+ if (cellType == 4) {
+
+ // this is a esdu cell row
+
+ // create esdu cell
+ esduCell = create(cellDAO,
+ Cell.PROPERTY_CELL_TYPE, esduCellType,
+ Cell.PROPERTY_NAME, esduCellId
+ );
+
+ importCell.incrementsNumberCreated();
+
+ // add it to data processing
+ dataProcessing.addCell(esduCell);
+
+ // create esdu cell data
+ createEsduCellData(configuration,
+ esduCell,
+ dataMetadatasByName,
+ row,
+ dataDAO,
+ importCellData);
+ } else {
+
+ // this is a elementary cell row
+
+ int cellNum = row.getCellNum();
+
+ String elementaryCellId = esduCellId + "_" + cellNum;
+
+ if (esduCell == null) {
+ throw new IllegalStateException(
+ "No esdu cell where to attach the " +
+ "elementary cell " + elementaryCellId);
+ }
+
+ // create the elementary cell
+
+ elementaryCell = create(cellDAO,
+ Cell.PROPERTY_CELL_TYPE, elementaryCellType,
+ Cell.PROPERTY_NAME, elementaryCellId
+ );
+
+ importCell.incrementsNumberCreated();
+
+ // add it to esdu cell
+ esduCell.addChilds(elementaryCell);
+
+
+ // create datas of the elementary cell
+ createElementaryCellData(configuration,
+ elementaryCell,
+ dataMetadatasByName,
+ row,
+ dataDAO,
+ importCellData);
+ }
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(getLocale(), inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
+ }
+
+ protected void createEsduCellData(AcousticDataImportConfiguration configuration,
+ Cell cell,
+ Map<String, DataMetadata> dataMetadatasByName,
+ AcousticDataImportModelRow row,
+ DataDAO dao,
+ CsvImportResult importCellData) {
+
+ DataMetadata dataMetadata;
+ Data data;
+ String dataValue;
+
+ String suffix =
+ configuration.getCellPositionReference().getMetadataNameSuffix();
+
+ // create Latitude data
+ dataMetadata = dataMetadatasByName.get("Latitude" + suffix);
+ dataValue = row.getEsduCellDataLatitude();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ // create Longitude data
+ dataMetadata = dataMetadatasByName.get("Longitude" + suffix);
+ dataValue = row.getEsduCellDataLongitude();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ // create Depth data
+ dataMetadata = dataMetadatasByName.get("DepthRefSurface" + suffix);
+ dataValue = row.getEsduCellDataDepth();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ // create Time data
+ dataMetadata = dataMetadatasByName.get("Time" + suffix);
+ dataValue = cellDateFormat.format(row.getCellDateStart());
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ // create AcousticDensity data
+ dataMetadata = dataMetadatasByName.get("sa");
+ dataValue = row.getEsduCellDataAcousticDensity();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+ }
+
+ private void createElementaryCellData(AcousticDataImportConfiguration configuration,
+ Cell cell,
+ Map<String, DataMetadata> dataMetadatasByName,
+ AcousticDataImportModelRow row,
+ DataDAO dao,
+ CsvImportResult importCellData) {
+
+ DataMetadata dataMetadata;
+ Data data;
+ String dataValue;
+
+ int cellType = row.getCellType();
+
+ String startMeta;
+ String endMeta;
+
+ if (cellType == 0) {
+
+ // surface
+
+ startMeta = "DepthRefSurfaceStart";
+ endMeta = "DepthRefSurfaceEnd";
+
+ } else {
+
+ // bottom
+
+ startMeta = "DepthRefBottomStart";
+ endMeta = "DepthRefBottomEnd";
+ }
+
+ // create depth start data
+ dataMetadata = dataMetadatasByName.get(startMeta);
+ dataValue = row.getCellDepthStart();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+
+ // create depth end data
+ dataMetadata = dataMetadatasByName.get(endMeta);
+ dataValue = row.getCellDepthEnd();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ // create acoustic density data
+ dataMetadata = dataMetadatasByName.get("sa");
+ dataValue = row.getCellSa();
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data.setDataValue(dataValue);
+ cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
+
+ }
+
+ private DataAcquisition createDataAcquisition(AcousticDataImportConfiguration configuration,
+ AcousticInstrument instrument,
+ String softwareVersion,
+ String soundSpeedCalculations,
+ AcousticDataImportModelRow row,
+ DataAcquisitionDAO dataAcquisitionDAO) {
+
+ String transceiverAcquisitionAbsorptionDescription =
+ configuration.getTransceiverAcquisitionAbsorptionDescription();
+ String loggedDataFormat = configuration.getLoggedDataFormat();
+ String loggedDataDatatype = configuration.getLoggedDataDatatype();
+ String pingDutyCycle = configuration.getPingDutyCycle();
+ String echosounderSoundSpeed = configuration.getEchosounderSoundSpeed();
+
+ DataAcquisition dataAcquisition = create(dataAcquisitionDAO);
+
+ // fill from manual configuration
+ dataAcquisition.setAcousticInstrument(instrument);
+ dataAcquisition.setTransceiverAcquisitionAbsorptionDescription(transceiverAcquisitionAbsorptionDescription);
+ dataAcquisition.setAcquisitionSoftwareVersion(softwareVersion);
+ dataAcquisition.setLoggedDataFormat(loggedDataFormat);
+ dataAcquisition.setLoggedDataDatatype(loggedDataDatatype);
+ dataAcquisition.setPingDutyCycle(pingDutyCycle);
+ dataAcquisition.setEchosounderSoundSpeed(echosounderSoundSpeed);
+ dataAcquisition.setSoundSpeedCalculations(soundSpeedCalculations);
+
+ // fill from csv file
+ Float transceiverAcquisitionAbsorption =
+ row.getTransceiverAcquisitionAbsorption();
+ Float transducerAcquisitionBeamAngleAthwartship =
+ row.getTransducerAcquisitionBeamAngleAthwartship();
+ Float transducerAcquisitionBeamAngleAlongship =
+ row.getTransducerAcquisitionBeamAngleAlongship();
+ Float transducerAcquisitionPsi =
+ row.getTransducerAcquisitionPsi();
+ Float transceiverAcquisitionPower =
+ row.getTransceiverAcquisitionPower();
+ Float transceiverAcquisitionPulseLength =
+ row.getTransceiverAcquisitionPulseLength();
+ Float transceiverAcquisitionGain =
+ row.getTransceiverAcquisitionGain();
+ Float transceiverAcquisitionSacorrection =
+ row.getTransceiverAcquisitionSacorrection();
+
+ dataAcquisition.setTransceiverAcquisitionAbsorption(transceiverAcquisitionAbsorption);
+ dataAcquisition.setTransducerAcquisitionBeamAngleAthwartship(transducerAcquisitionBeamAngleAthwartship);
+ dataAcquisition.setTransducerAcquisitionBeamAngleAlongship(transducerAcquisitionBeamAngleAlongship);
+ dataAcquisition.setTransducerAcquisitionPsi(transducerAcquisitionPsi);
+ dataAcquisition.setTransceiverAcquisitionPower(transceiverAcquisitionPower);
+ dataAcquisition.setTransceiverAcquisitionPulseLength(transceiverAcquisitionPulseLength);
+ dataAcquisition.setTransceiverAcquisitionGain(transceiverAcquisitionGain);
+ dataAcquisition.setTransceiverAcquisitionSacorrection(transceiverAcquisitionSacorrection);
+
+ return dataAcquisition;
+ }
+
+ private DataProcessing createDataProcessing(AcousticDataImportConfiguration configuration,
+ String softwareVersion,
+ String soundSpeedCalculations,
+ AcousticDataImportModelRow row,
+ DataProcessingDAO dataProcessingDAO) {
+
+ String transceiverAcquisitionAbsorptionDescription =
+ configuration.getTransceiverAcquisitionAbsorptionDescription();
+ String echosounderSoundSpeed = configuration.getEchosounderSoundSpeed();
+ String processingTemplate = configuration.getProcessingTemplate();
+ String processingDescription = configuration.getProcessingDescription();
+ Float sounderConstant = configuration.getSounderConstant();
+ float digitThreshold = configuration.getDigitThreshold();
+ String acousticDensityUnit = configuration.getAcousticDensityUnit();
+ String notes = configuration.getNotes();
+
+ DataProcessing dataProcessing = create(dataProcessingDAO);
+
+ // fill from manual configuration
+ dataProcessing.setProcessingTemplate(processingTemplate);
+ dataProcessing.setProcessingDescription(processingDescription);
+ dataProcessing.setSounderConstant(sounderConstant);
+ dataProcessing.setDigitThreshold(digitThreshold);
+ dataProcessing.setAcousticDensityUnit(acousticDensityUnit);
+ dataProcessing.setNotes(notes);
+ dataProcessing.setProcessingSoftwareVersion(softwareVersion);
+ dataProcessing.setTransceiverProcessingAbsorptionDescription(transceiverAcquisitionAbsorptionDescription);
+ dataProcessing.setEchosounderSoundSpeed(echosounderSoundSpeed);
+ dataProcessing.setSoundSpeedCalculations(soundSpeedCalculations);
+
+ // fill from csv file
+
+ Float transceiverAcquisitionAbsorption =
+ row.getTransceiverAcquisitionAbsorption();
+ Float transducerAcquisitionBeamAngleAthwartship =
+ row.getTransducerAcquisitionBeamAngleAthwartship();
+ Float transducerAcquisitionBeamAngleAlongship =
+ row.getTransducerAcquisitionBeamAngleAlongship();
+ Float transducerAcquisitionPsi =
+ row.getTransducerAcquisitionPsi();
+
+ Float transceiverAcquisitionGain =
+ row.getTransceiverAcquisitionGain();
+ Float transceiverAcquisitionSacorrection =
+ row.getTransceiverAcquisitionSacorrection();
+ Float eIThreshold = row.getEiThreshold();
+
+ dataProcessing.setEiThreshold(eIThreshold);
+ dataProcessing.setTransceiverProcessingSacorrection(transceiverAcquisitionSacorrection);
+ dataProcessing.setTransceiverProcessingAbsorption(transceiverAcquisitionAbsorption);
+ dataProcessing.setTransceiverProcessingGain(transceiverAcquisitionGain);
+ dataProcessing.setTransducerProcessingPsi(transducerAcquisitionPsi);
+ dataProcessing.setTransducerProcessingBeamAngleAthwartship(transducerAcquisitionBeamAngleAthwartship);
+ dataProcessing.setTransducerProcessingBeamAngleAlongship(transducerAcquisitionBeamAngleAlongship);
+
+
+ return dataProcessing;
+ }
+
+ private String getSoftwareVersion(AcousticDataImportConfiguration configuration,
+ boolean isME70) {
+ String result;
+ if (isME70) {
+ result = configuration.getAcquisitionSoftwareVersionME70();
+ } else {
+ result = configuration.getAcquisitionSoftwareVersionER60();
+ }
+ return result;
+ }
+
+ private String getSoundSpeedCalculations(AcousticDataImportConfiguration configuration,
+ boolean isME70) {
+ String result;
+ if (isME70) {
+ result = configuration.getSoundSpeedCalculationsME70();
+ } else {
+ result = configuration.getSoundSpeedCalculationsER60();
+ }
+ return result;
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AcousticDataImportService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -121,14 +121,14 @@
sizeCategoryMap,
sexCategoryMap);
- CsvImportResult biometrySampleResult = importBiometrySampleFile(
- configuration.getBiometrySampleFile(),
- operationMap,
- speciesMap);
+// CsvImportResult biometrySampleResult = importBiometrySampleFile(
+// configuration.getBiometrySampleFile(),
+// operationMap,
+// speciesMap);
addResultAndLog(result, configuration.getTotalSampleFile(), totalSampleResult, user);
addResultAndLog(result, configuration.getSubSampleFile(), subSampleResult, user);
- addResultAndLog(result, configuration.getBiometrySampleFile(), biometrySampleResult, user);
+// addResultAndLog(result, configuration.getBiometrySampleFile(), biometrySampleResult, user);
return result;
}
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/FilterPagerBean.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -1,294 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services;
-
-import com.google.common.collect.Lists;
-import org.apache.commons.collections.CollectionUtils;
-import org.nuiton.util.PagerUtil;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Pager bean with filtering datas.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class FilterPagerBean extends PagerUtil.PagerBean {
-
- private static final long serialVersionUID = 1L;
-
- public enum OperationGroup {
- OR, AND
- }
-
- public enum Operation {
- /** Equals operator. */
- eq {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " = :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Not equals operator. */
- ne {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " != :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Contains operator. */
- cn {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " like :" + paramName;
- filterParams.put(paramName, "%" + data + "%");
- return ruleFilter;
- }
- },
- /** Not contains operator. */
- nc {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " not like :" + paramName;
- filterParams.put(paramName, "%" + data + "%");
- return ruleFilter;
- }
- },
- /** Begins with operator. */
- bw {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " like :" + paramName;
- filterParams.put(paramName, data + "%");
- return ruleFilter;
- }
- },
- /** Not between with operator. */
- bn {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " not like :" + paramName;
- filterParams.put(paramName, data + "%");
- return ruleFilter;
- }
- },
- /** Ends with operator. */
- ew {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " like :" + paramName;
- filterParams.put(paramName, "%" + data);
- return ruleFilter;
- }
- },
- /** Not End with operator. */
- en {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " not like :" + paramName;
- filterParams.put(paramName, "%" + data);
- return ruleFilter;
- }
- },
- /** Lesser than operator. */
- lt {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " < :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Lesser or equals operator. */
- le {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " <= :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Greater than operator. */
- gt {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " > :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Greater or equals operator. */
- ge {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " >= :" + paramName;
- filterParams.put(paramName, data);
- return ruleFilter;
- }
- },
- /** Is null operator. */
- nu {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " is null";
- return ruleFilter;
- }
- },
- /** Is not null operator. */
- nn {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- String ruleFilter = propertyName + " is not null";
- return ruleFilter;
- }
- },
- /** Is among operator. */
- in {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- throw new UnsupportedOperationException();
- }
- },
- /** Not is among operator. */
- ni {
- @Override
- public String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams) {
- throw new UnsupportedOperationException();
- }
- };
-
- public abstract String toHql(String paramName, String propertyName, Object data, Map<String, Object> filterParams);
- }
-
- public static class FilterRule implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- protected final Operation op;
-
- protected final String field;
-
- protected final String data;
-
- public FilterRule(Operation op,
- String field,
- String data) {
- this.op = op;
- this.field = field;
- this.data = data;
- }
-
- public Operation getOp() {
- return op;
- }
-
- public String getField() {
- return field;
- }
-
- public String getData() {
- return data;
- }
- }
-
- public static FilterPagerBeanBuilder newFilterPagerBeanBuilder(String operationGroup) {
- OperationGroup operationGroup1 = OperationGroup.valueOf(operationGroup);
- FilterPagerBeanBuilder builder = new FilterPagerBeanBuilder(operationGroup1);
- return builder;
- }
-
- public FilterPagerBean() {
- }
-
- public boolean canFilter() {
- return groupOp != null && CollectionUtils.isNotEmpty(rules);
- }
-
- protected OperationGroup groupOp;
-
- private List<FilterRule> rules;
-
- public OperationGroup getGroupOp() {
- return groupOp;
- }
-
- public void setGroupOp(OperationGroup groupOp) {
- this.groupOp = groupOp;
- }
-
- public List<FilterRule> getRules() {
- return rules;
- }
-
- public void setRules(List<FilterRule> rules) {
- this.rules = rules;
- }
-
- public static class FilterPagerBeanBuilder {
-
- protected final OperationGroup groupOp;
-
- protected final List<FilterRule> rules;
-
- public FilterPagerBeanBuilder(OperationGroup groupOp) {
- this.groupOp = groupOp;
- rules = Lists.newLinkedList();
- }
-
- public FilterPagerBeanBuilder addOperations(Collection<Map<String, String>> operations) {
- for (Map<String, String> operation : operations) {
- addRule(operation);
- }
- return this;
- }
-
- public FilterPagerBeanBuilder addRule(Map<String, String> ruleMap) {
- String op = ruleMap.get("op");
- String property = ruleMap.get("field");
- String value = ruleMap.get("data");
- Operation operator = Operation.valueOf(op);
- return addRule(new FilterRule(operator, property, value));
- }
-
- public FilterPagerBeanBuilder addRule(FilterRule rule) {
- rules.add(rule);
- return this;
- }
-
- public void flush(FilterPagerBean bean) {
- bean.setGroupOp(groupOp);
- bean.setRules(rules);
- }
-
-
- }
-}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -50,6 +50,8 @@
import fr.ifremer.echobase.services.csv.OperationImportModelRow;
import fr.ifremer.echobase.services.csv.OperationMetadataValueImportModel;
import fr.ifremer.echobase.services.csv.OperationMetadataValueImportModelRow;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportRuntimeException;
@@ -70,6 +72,10 @@
*/
public class OperationImportService extends AbstractImportDataService<OperationImportConfiguration> {
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(OperationImportService.class);
+
@Override
protected String getImportLabel() {
return l_(getLocale(), ImportDataMode.Operation.getI18nKey());
@@ -94,9 +100,9 @@
Map<String, Vessel> vesselMap = Maps.uniqueIndex(
Arrays.asList(vessel), EchoBaseFunctions.VESSEL_NAME);
- // get all gears by their gear code
+ // get all gears by their casino gear name
Map<String, Gear> gearMap = getEntitiesMap(
- Gear.class, EchoBaseFunctions.GEAR_GEAR_CODE);
+ Gear.class, EchoBaseFunctions.GEAR_CASINO_GEAR_NAME);
CsvImportResult nbOperations = importOperationFile(
configuration.getOperationFile(),
@@ -145,6 +151,9 @@
inputFile.getFileName(),
false);
+ if (log.isInfoEnabled()) {
+ log.info("Starts import of operations from file "+inputFile.getFileName());
+ }
Map<String, DepthStratum> depthStratumMap = getEntitiesMap(
DepthStratum.class, EchoBaseFunctions.DEPTH_STRATUM_ID);
@@ -195,10 +204,15 @@
Map<String, Operation> operationMap) throws ImportException {
CsvImportResult importResult = new CsvImportResult(
- EchoBaseEntityEnum.OperationMetadata,
+ EchoBaseEntityEnum.OperationMetadataValue,
inputFile.getFileName(),
false);
+ if (log.isInfoEnabled()) {
+ log.info("Starts import of operation metadata values from file "+
+ inputFile.getFileName());
+ }
+
Map<String, OperationMetadata> operationMetadatasByName =
getEntitiesMap(OperationMetadata.class,
EchoBaseFunctions.OPERATION_METADATA_NAME);
@@ -245,10 +259,15 @@
Map<String, Operation> operationMap) throws ImportException {
CsvImportResult importResult = new CsvImportResult(
- EchoBaseEntityEnum.GearMetadata,
+ EchoBaseEntityEnum.GearMetadataValue,
inputFile.getFileName(),
false);
+ if (log.isInfoEnabled()) {
+ log.info("Starts import of gear metadata values from file "+
+ inputFile.getFileName());
+ }
+
Map<String, GearMetadata> gearMetadatasByType =
getEntitiesMap(GearMetadata.class,
EchoBaseFunctions.GEAR_METADATA_NAME);
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -1,267 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services.configurations;
-
-import fr.ifremer.echobase.InputFile;
-
-import java.util.Locale;
-
-import static org.nuiton.i18n.I18n.l_;
-
-/**
- * Configuration of a "accoustic datas" import.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class AccousticDataImportConfiguration extends AbstractImportConfiguration {
-
- private static final long serialVersionUID = 1L;
-
- /** Selected voyage id where to import datas. */
- protected String voyageId;
-
- /** Selected vessel id to find out transect where to import datas. */
- protected String vesselId;
-
- /** Flag to always add new dataAcquisition when a new instrument is found in movies file. */
- protected boolean addDataAcquisition = true;
-
- /** Manual transceiverAcquisitionAbsorptionDescription. */
- protected String transceiverAcquisitionAbsorptionDescription = "(i) Equation: Francois and garrison 1982,(ii) CTD, (iii) nominal value for entire data set";
-
- /** Manual acquisitionSoftwareVersion (ER60 instrument). */
- protected String acquisitionSoftwareVersionER60;
-
- /** Manual acquisitionSoftwareVersion (ME70 instrument). */
- protected String acquisitionSoftwareVersionME70;
-
- /** Manual loggedDataFormat. */
- protected String loggedDataFormat = ".hac and .raw formats";
-
- /** Manual loggedDataDatatype. */
- protected String loggedDataDatatype = "‘raw’ digitisation samples";
-
- /** Manual pingDutyCycle. */
- protected String pingDutyCycle = "Ifremer's standard ping duty cycle";
-
- /** Manual echosounderSoundSpeed. */
- protected String echosounderSoundSpeed = "Variable";
-
- /** Manual soundSpeedCalculations (ER60 instrument). */
- protected String soundSpeedCalculationsER60 = "(i) Equation: Mackenzie (1980), (ii) CTD, (iii) nominal value for entire data set";
-
- /** Manual soundSpeedCalculations (ME70 instrument). */
- protected String soundSpeedCalculationsME70 = "(i) Equation: Mackenzie (1980), (ii) Hull-mounted thermosalinometer, (iii) surface absorption value recomputed every 30s and applied to the entire data set";
-
- /** Manual sounderConstant. */
- protected Float sounderConstant;
-
- /** Manual processingTemplate. */
- protected String processingTemplate;
-
- /** Manual processingDescription. */
- protected String processingDescription;
-
- /** Manual digitThreshold. */
- protected float digitThreshold = -100f;
-
- /** Manual acousticDensityUnit. */
- protected String acousticDensityUnit = "sA";
-
- /** Manual notes. */
- protected String notes;
-
- /** Cell position reference for esdu cell datas. */
- protected CellPositionReference cellPositionReference;
-
- /** Movies file to import. */
- protected final InputFile moviesFile;
-
-
- public AccousticDataImportConfiguration(Locale locale) {
- moviesFile = InputFile.newFile(l_(locale, "echobase.common.moviesFile"));
- }
-
- public String getVoyageId() {
- return voyageId;
- }
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
- public String getVesselId() {
- return vesselId;
- }
-
- public void setVesselId(String vesselId) {
- this.vesselId = vesselId;
- }
-
- public boolean isAddDataAcquisition() {
- return addDataAcquisition;
- }
-
- public void setAddDataAcquisition(boolean addDataAcquisition) {
- this.addDataAcquisition = addDataAcquisition;
- }
-
- public String getTransceiverAcquisitionAbsorptionDescription() {
- return transceiverAcquisitionAbsorptionDescription;
- }
-
- public void setTransceiverAcquisitionAbsorptionDescription(String transceiverAcquisitionAbsorptionDescription) {
- this.transceiverAcquisitionAbsorptionDescription = transceiverAcquisitionAbsorptionDescription;
- }
-
- public String getAcquisitionSoftwareVersionER60() {
- return acquisitionSoftwareVersionER60;
- }
-
- public void setAcquisitionSoftwareVersionER60(String acquisitionSoftwareVersionER60) {
- this.acquisitionSoftwareVersionER60 = acquisitionSoftwareVersionER60;
- }
-
- public String getAcquisitionSoftwareVersionME70() {
- return acquisitionSoftwareVersionME70;
- }
-
- public void setAcquisitionSoftwareVersionME70(String acquisitionSoftwareVersionME70) {
- this.acquisitionSoftwareVersionME70 = acquisitionSoftwareVersionME70;
- }
-
- public String getLoggedDataFormat() {
- return loggedDataFormat;
- }
-
- public void setLoggedDataFormat(String loggedDataFormat) {
- this.loggedDataFormat = loggedDataFormat;
- }
-
- public String getLoggedDataDatatype() {
- return loggedDataDatatype;
- }
-
- public void setLoggedDataDatatype(String loggedDataDatatype) {
- this.loggedDataDatatype = loggedDataDatatype;
- }
-
- public String getPingDutyCycle() {
- return pingDutyCycle;
- }
-
- public void setPingDutyCycle(String pingDutyCycle) {
- this.pingDutyCycle = pingDutyCycle;
- }
-
- public String getEchosounderSoundSpeed() {
- return echosounderSoundSpeed;
- }
-
- public void setEchosounderSoundSpeed(String echosounderSoundSpeed) {
- this.echosounderSoundSpeed = echosounderSoundSpeed;
- }
-
- public String getSoundSpeedCalculationsER60() {
- return soundSpeedCalculationsER60;
- }
-
- public void setSoundSpeedCalculationsER60(String soundSpeedCalculationsER60) {
- this.soundSpeedCalculationsER60 = soundSpeedCalculationsER60;
- }
-
- public String getSoundSpeedCalculationsME70() {
- return soundSpeedCalculationsME70;
- }
-
- public void setSoundSpeedCalculationsME70(String soundSpeedCalculationsME70) {
- this.soundSpeedCalculationsME70 = soundSpeedCalculationsME70;
- }
-
- public Float getSounderConstant() {
- return sounderConstant;
- }
-
- public void setSounderConstant(Float sounderConstant) {
- this.sounderConstant = sounderConstant;
- }
-
- public float getDigitThreshold() {
- return digitThreshold;
- }
-
- public void setDigitThreshold(float digitThreshold) {
- this.digitThreshold = digitThreshold;
- }
-
- public String getAcousticDensityUnit() {
- return acousticDensityUnit;
- }
-
- public void setAcousticDensityUnit(String acousticDensityUnit) {
- this.acousticDensityUnit = acousticDensityUnit;
- }
-
- public String getNotes() {
- return notes;
- }
-
- public void setNotes(String notes) {
- this.notes = notes;
- }
-
- public InputFile getMoviesFile() {
- return moviesFile;
- }
-
- public String getProcessingTemplate() {
- return processingTemplate;
- }
-
- public void setProcessingTemplate(String processingTemplate) {
- this.processingTemplate = processingTemplate;
- }
-
- public String getProcessingDescription() {
- return processingDescription;
- }
-
- public void setProcessingDescription(String processingDescription) {
- this.processingDescription = processingDescription;
- }
-
- public CellPositionReference getCellPositionReference() {
- return cellPositionReference;
- }
-
- public void setCellPositionReference(CellPositionReference cellPositionReference) {
- this.cellPositionReference = cellPositionReference;
- }
-
- @Override
- public InputFile[] getInputFiles() {
- return new InputFile[]{moviesFile};
- }
-}
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AcousticDataImportConfiguration.java (from rev 314, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AcousticDataImportConfiguration.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AcousticDataImportConfiguration.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -0,0 +1,267 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.configurations;
+
+import fr.ifremer.echobase.InputFile;
+
+import java.util.Locale;
+
+import static org.nuiton.i18n.I18n.l_;
+
+/**
+ * Configuration of a "accoustic datas" import.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class AcousticDataImportConfiguration extends AbstractImportConfiguration {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Selected voyage id where to import datas. */
+ protected String voyageId;
+
+ /** Selected vessel id to find out transect where to import datas. */
+ protected String vesselId;
+
+ /** Flag to always add new dataAcquisition when a new instrument is found in movies file. */
+ protected boolean addDataAcquisition = true;
+
+ /** Manual transceiverAcquisitionAbsorptionDescription. */
+ protected String transceiverAcquisitionAbsorptionDescription = "(i) Equation: Francois and garrison 1982,(ii) CTD, (iii) nominal value for entire data set";
+
+ /** Manual acquisitionSoftwareVersion (ER60 instrument). */
+ protected String acquisitionSoftwareVersionER60;
+
+ /** Manual acquisitionSoftwareVersion (ME70 instrument). */
+ protected String acquisitionSoftwareVersionME70;
+
+ /** Manual loggedDataFormat. */
+ protected String loggedDataFormat = ".hac and .raw formats";
+
+ /** Manual loggedDataDatatype. */
+ protected String loggedDataDatatype = "‘raw’ digitisation samples";
+
+ /** Manual pingDutyCycle. */
+ protected String pingDutyCycle = "Ifremer's standard ping duty cycle";
+
+ /** Manual echosounderSoundSpeed. */
+ protected String echosounderSoundSpeed = "Variable";
+
+ /** Manual soundSpeedCalculations (ER60 instrument). */
+ protected String soundSpeedCalculationsER60 = "(i) Equation: Mackenzie (1980), (ii) CTD, (iii) nominal value for entire data set";
+
+ /** Manual soundSpeedCalculations (ME70 instrument). */
+ protected String soundSpeedCalculationsME70 = "(i) Equation: Mackenzie (1980), (ii) Hull-mounted thermosalinometer, (iii) surface absorption value recomputed every 30s and applied to the entire data set";
+
+ /** Manual sounderConstant. */
+ protected Float sounderConstant;
+
+ /** Manual processingTemplate. */
+ protected String processingTemplate;
+
+ /** Manual processingDescription. */
+ protected String processingDescription;
+
+ /** Manual digitThreshold. */
+ protected float digitThreshold = -100f;
+
+ /** Manual acousticDensityUnit. */
+ protected String acousticDensityUnit = "sA";
+
+ /** Manual notes. */
+ protected String notes;
+
+ /** Cell position reference for esdu cell datas. */
+ protected CellPositionReference cellPositionReference;
+
+ /** Movies file to import. */
+ protected final InputFile moviesFile;
+
+
+ public AcousticDataImportConfiguration(Locale locale) {
+ moviesFile = InputFile.newFile(l_(locale, "echobase.common.moviesFile"));
+ }
+
+ public String getVoyageId() {
+ return voyageId;
+ }
+
+ public void setVoyageId(String voyageId) {
+ this.voyageId = voyageId;
+ }
+
+ public String getVesselId() {
+ return vesselId;
+ }
+
+ public void setVesselId(String vesselId) {
+ this.vesselId = vesselId;
+ }
+
+ public boolean isAddDataAcquisition() {
+ return addDataAcquisition;
+ }
+
+ public void setAddDataAcquisition(boolean addDataAcquisition) {
+ this.addDataAcquisition = addDataAcquisition;
+ }
+
+ public String getTransceiverAcquisitionAbsorptionDescription() {
+ return transceiverAcquisitionAbsorptionDescription;
+ }
+
+ public void setTransceiverAcquisitionAbsorptionDescription(String transceiverAcquisitionAbsorptionDescription) {
+ this.transceiverAcquisitionAbsorptionDescription = transceiverAcquisitionAbsorptionDescription;
+ }
+
+ public String getAcquisitionSoftwareVersionER60() {
+ return acquisitionSoftwareVersionER60;
+ }
+
+ public void setAcquisitionSoftwareVersionER60(String acquisitionSoftwareVersionER60) {
+ this.acquisitionSoftwareVersionER60 = acquisitionSoftwareVersionER60;
+ }
+
+ public String getAcquisitionSoftwareVersionME70() {
+ return acquisitionSoftwareVersionME70;
+ }
+
+ public void setAcquisitionSoftwareVersionME70(String acquisitionSoftwareVersionME70) {
+ this.acquisitionSoftwareVersionME70 = acquisitionSoftwareVersionME70;
+ }
+
+ public String getLoggedDataFormat() {
+ return loggedDataFormat;
+ }
+
+ public void setLoggedDataFormat(String loggedDataFormat) {
+ this.loggedDataFormat = loggedDataFormat;
+ }
+
+ public String getLoggedDataDatatype() {
+ return loggedDataDatatype;
+ }
+
+ public void setLoggedDataDatatype(String loggedDataDatatype) {
+ this.loggedDataDatatype = loggedDataDatatype;
+ }
+
+ public String getPingDutyCycle() {
+ return pingDutyCycle;
+ }
+
+ public void setPingDutyCycle(String pingDutyCycle) {
+ this.pingDutyCycle = pingDutyCycle;
+ }
+
+ public String getEchosounderSoundSpeed() {
+ return echosounderSoundSpeed;
+ }
+
+ public void setEchosounderSoundSpeed(String echosounderSoundSpeed) {
+ this.echosounderSoundSpeed = echosounderSoundSpeed;
+ }
+
+ public String getSoundSpeedCalculationsER60() {
+ return soundSpeedCalculationsER60;
+ }
+
+ public void setSoundSpeedCalculationsER60(String soundSpeedCalculationsER60) {
+ this.soundSpeedCalculationsER60 = soundSpeedCalculationsER60;
+ }
+
+ public String getSoundSpeedCalculationsME70() {
+ return soundSpeedCalculationsME70;
+ }
+
+ public void setSoundSpeedCalculationsME70(String soundSpeedCalculationsME70) {
+ this.soundSpeedCalculationsME70 = soundSpeedCalculationsME70;
+ }
+
+ public Float getSounderConstant() {
+ return sounderConstant;
+ }
+
+ public void setSounderConstant(Float sounderConstant) {
+ this.sounderConstant = sounderConstant;
+ }
+
+ public float getDigitThreshold() {
+ return digitThreshold;
+ }
+
+ public void setDigitThreshold(float digitThreshold) {
+ this.digitThreshold = digitThreshold;
+ }
+
+ public String getAcousticDensityUnit() {
+ return acousticDensityUnit;
+ }
+
+ public void setAcousticDensityUnit(String acousticDensityUnit) {
+ this.acousticDensityUnit = acousticDensityUnit;
+ }
+
+ public String getNotes() {
+ return notes;
+ }
+
+ public void setNotes(String notes) {
+ this.notes = notes;
+ }
+
+ public InputFile getMoviesFile() {
+ return moviesFile;
+ }
+
+ public String getProcessingTemplate() {
+ return processingTemplate;
+ }
+
+ public void setProcessingTemplate(String processingTemplate) {
+ this.processingTemplate = processingTemplate;
+ }
+
+ public String getProcessingDescription() {
+ return processingDescription;
+ }
+
+ public void setProcessingDescription(String processingDescription) {
+ this.processingDescription = processingDescription;
+ }
+
+ public CellPositionReference getCellPositionReference() {
+ return cellPositionReference;
+ }
+
+ public void setCellPositionReference(CellPositionReference cellPositionReference) {
+ this.cellPositionReference = cellPositionReference;
+ }
+
+ @Override
+ public InputFile[] getInputFiles() {
+ return new InputFile[]{moviesFile};
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AcousticDataImportConfiguration.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -228,7 +228,7 @@
// can not find entity this is a big problem for us...
throw new EchoBaseTechnicalException(
- "Could not find entity with name " + value);
+ "Could not find entity of type "+entityType.getName()+" with name " + value);
}
}
return result;
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -55,10 +55,10 @@
*/
newMandatoryColumn("vesselName", GearMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
- newMandatoryColumn("id", GearMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
+ newMandatoryColumn("operationID", GearMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
newMandatoryColumn("metadataType", GearMetadataValue.PROPERTY_GEAR_METADATA, CsvModelUtil.newForeignKeyValue(GearMetadata.class, gearMetadataMap));
- newMandatoryColumn("gearID", GearMetadataValue.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap));
+ newMandatoryColumn("gearCode", GearMetadataValue.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap));
newMandatoryColumn("gearMetadataValue", GearMetadataValue.PROPERTY_DATA_VALUE);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -27,6 +27,7 @@
import fr.ifremer.echobase.entities.data.GearMetadataValueImpl;
import fr.ifremer.echobase.entities.data.Operation;
import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.references.Gear;
import fr.ifremer.echobase.entities.references.GearMetadata;
import fr.ifremer.echobase.entities.references.Vessel;
@@ -64,6 +65,10 @@
gearMetadataValue.setDataValue(dataValue);
}
+ public void setGear(Gear gear) {
+ gearMetadataValue.setGear(gear);
+ }
+
public Operation getOperation() {
return operation;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -60,9 +60,9 @@
*/
newMandatoryColumn("vesselName", OperationImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
- newMandatoryColumn("gearName", Operation.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap));
+ newMandatoryColumn("gearCode", Operation.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap));
newMandatoryColumn("depthStratumID", Operation.PROPERTY_DEPTH_STRATUM, CsvModelUtil.newForeignKeyValue(DepthStratum.class, depthStratumMap));
- newMandatoryColumn(Operation.PROPERTY_ID);
+ newMandatoryColumn("operationID",Operation.PROPERTY_ID);
newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_TIME, CsvModelUtil.DAY_TIME_SECOND);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -90,11 +90,11 @@
operation.setGearShootingEndLongitude(gearShootingEndLongitude);
}
- public void setMidHauleLatitude(float midHauleLatitude) {
+ public void setMidHaulLatitude(float midHauleLatitude) {
operation.setMidHaulLatitude(midHauleLatitude);
}
- public void setMidHauleLongitude(float midHauleLongitude) {
+ public void setMidHaulLongitude(float midHauleLongitude) {
operation.setMidHaulLongitude(midHauleLongitude);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -52,7 +52,7 @@
*/
newMandatoryColumn("vesselName", OperationMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
- newMandatoryColumn("id", OperationMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
+ newMandatoryColumn("operationID", OperationMetadataValueImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
newMandatoryColumn("metadataType", OperationMetadataValue.PROPERTY_OPERATION_METADATA, CsvModelUtil.newForeignKeyValue(OperationMetadata.class, operationMetadataMap));
newMandatoryColumn("operationMetadataValue", OperationMetadataValue.PROPERTY_DATA_VALUE);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -73,7 +73,7 @@
newMandatoryColumn(SubSampleImportModelRow.PROPERTY_SEX_CATEGORY, CsvModelUtil.newForeignKeyValue(SexCategory.class, sexCategoryMap));
newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_INTEGER);
newMandatoryColumn(SubSampleImportModelRow.PROPERTY_NUMBER_AT_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT);
newMandatoryColumn(SubSampleImportModelRow.PROPERTY_WEIGHT_AT_LENGTH, CsvModelUtil.FLOAT);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -61,13 +61,12 @@
newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_SIZE_CATEGORY, CsvModelUtil.newForeignKeyValue(SizeCategory.class, sizeCategoryMap));
newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_INTEGER);
- newMandatoryColumn("meanLength", TotalSampleImportModelRow.PROPERTY_MEAN_LENGTH, CsvModelUtil.FLOAT);
- newMandatoryColumn("meanWeight", TotalSampleImportModelRow.PROPERTY_MEAN_WEIGHT, CsvModelUtil.FLOAT);
- newMandatoryColumn("noPerKg", TotalSampleImportModelRow.PROPERTY_NO_PER_KG, CsvModelUtil.FLOAT);
- newMandatoryColumn("sortedWeight", TotalSampleImportModelRow.PROPERTY_SORTED_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
-
+ newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_MEAN_LENGTH, CsvModelUtil.FLOAT);
+ newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_MEAN_WEIGHT, CsvModelUtil.FLOAT);
+ newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_NO_PER_KG, CsvModelUtil.FLOAT);
+ newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_SORTED_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
}
@Override
Modified: trunk/echobase-services/src/main/resources/embedded/echobase-embedded.properties
===================================================================
--- trunk/echobase-services/src/main/resources/embedded/echobase-embedded.properties 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-services/src/main/resources/embedded/echobase-embedded.properties 2012-02-16 23:14:23 UTC (rev 318)
@@ -22,8 +22,13 @@
# #L%
###
+data.directory=.
+
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.connection.username=sa
hibernate.connection.password=sa
hibernate.connection.driver_class=org.h2.Driver
hibernate.connection.url=jdbc:h2:file:./db/echobase
+
+# Replication configuration
+topia.service.replication=org.nuiton.topia.replication.TopiaReplicationServiceImpl
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -25,7 +25,7 @@
import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
-import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration;
+import fr.ifremer.echobase.services.configurations.AcousticDataImportConfiguration;
import fr.ifremer.echobase.services.configurations.CellPositionReference;
import java.io.File;
@@ -37,7 +37,7 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class ConfigureAccousticData extends AbstractConfigureImport<AccousticDataImportConfiguration> {
+public class ConfigureAccousticData extends AbstractConfigureImport<AcousticDataImportConfiguration> {
private static final long serialVersionUID = 1L;
@@ -47,12 +47,12 @@
protected Map<String, String> cellPositionReferences;
public ConfigureAccousticData() {
- super(AccousticDataImportConfiguration.class);
+ super(AcousticDataImportConfiguration.class);
}
@Override
- protected AccousticDataImportConfiguration createModel() {
- return new AccousticDataImportConfiguration(getLocale());
+ protected AcousticDataImportConfiguration createModel() {
+ return new AcousticDataImportConfiguration(getLocale());
}
@Override
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchAccousticData.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchAccousticData.java 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/LaunchAccousticData.java 2012-02-16 23:14:23 UTC (rev 318)
@@ -23,8 +23,8 @@
*/
package fr.ifremer.echobase.ui.actions.importData;
-import fr.ifremer.echobase.services.AccousticDataImportService;
-import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration;
+import fr.ifremer.echobase.services.AcousticDataImportService;
+import fr.ifremer.echobase.services.configurations.AcousticDataImportConfiguration;
/**
* Configure a accoustic data import.
@@ -32,12 +32,12 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public class LaunchAccousticData extends AbstractLaunchImport<AccousticDataImportConfiguration, AccousticDataImportService> {
+public class LaunchAccousticData extends AbstractLaunchImport<AcousticDataImportConfiguration, AcousticDataImportService> {
private static final long serialVersionUID = 1L;
public LaunchAccousticData() {
- super(AccousticDataImportConfiguration.class, AccousticDataImportService.class);
+ super(AcousticDataImportConfiguration.class, AcousticDataImportService.class);
}
}
Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml 2012-02-16 23:14:23 UTC (rev 318)
@@ -2,8 +2,8 @@
#%L
EchoBase :: UI
- $Id: ConfigureResults-ConfigureResults-modeVoyage-validation.xml 304 2012-02-02 22:58:29Z tchemit $
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/reso… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp 2012-02-16 22:53:05 UTC (rev 317)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp 2012-02-16 23:14:23 UTC (rev 318)
@@ -2,8 +2,8 @@
#%L
EchoBase :: UI
- $Id: resultResults.jsp 304 2012-02-02 22:58:29Z tchemit $
- $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ $Id$
+ $HeadURL$
%%
Copyright (C) 2011 Ifremer, Codelutin
%%
Property changes on: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r317 - trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data
by tchemit@users.forge.codelutin.com 16 Feb '12
by tchemit@users.forge.codelutin.com 16 Feb '12
16 Feb '12
Author: tchemit
Date: 2012-02-16 23:53:05 +0100 (Thu, 16 Feb 2012)
New Revision: 317
Url: http://forge.codelutin.com/repositories/revision/echobase/317
Log:
fix voyage client code
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java 2012-02-16 22:52:48 UTC (rev 316)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java 2012-02-16 22:53:05 UTC (rev 317)
@@ -99,13 +99,15 @@
Set<Vessel> result = Sets.newHashSet();
- for (Transit transit : getTransit()) {
+ if (!isTransitEmpty()) {
+ for (Transit transit : getTransit()) {
- Collection<Vessel> vesselsOfTransit =
- Collections2.transform(
- transit.getTransect(),
- EchoBaseFunctions.TRANSECT_BY_VESSEL);
- result.addAll(vesselsOfTransit);
+ Collection<Vessel> vesselsOfTransit =
+ Collections2.transform(
+ transit.getTransect(),
+ EchoBaseFunctions.TRANSECT_BY_VESSEL);
+ result.addAll(vesselsOfTransit);
+ }
}
return result;
}
@@ -113,9 +115,11 @@
@Override
public Collection<Operation> getOperations(Vessel vessel) {
+ Preconditions.checkNotNull(vessel);
+
Collection<Operation> result = Lists.newArrayList();
- if (isTransitEmpty()) {
+ if (!isTransitEmpty()) {
for (Transit t : transit) {
Transect transect = t.getTransect(vessel);
1
0
r316 - trunk/echobase-entities/src/main/java/fr/ifremer/echobase
by tchemit@users.forge.codelutin.com 16 Feb '12
by tchemit@users.forge.codelutin.com 16 Feb '12
16 Feb '12
Author: tchemit
Date: 2012-02-16 23:52:48 +0100 (Thu, 16 Feb 2012)
New Revision: 316
Url: http://forge.codelutin.com/repositories/revision/echobase/316
Log:
fix decorator
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java 2012-02-16 22:52:30 UTC (rev 315)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java 2012-02-16 22:52:48 UTC (rev 316)
@@ -159,7 +159,7 @@
registerJXPathDecorator(locale, GearCharacteristic.class, "${name}$s");
// GearMetadata decorator
- registerJXPathDecorator(locale, GearMetadata.class, "${type}$s (${operationEvent/name}$s)");
+ registerJXPathDecorator(locale, GearMetadata.class, "${name}$s (${operationEvent/name}$s)");
// GearCharacteristicValue decorator
registerJXPathDecorator(locale, GearCharacteristicValue.class, "${dataValue}$s");
1
0
r315 - in trunk: echobase-services echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor
by tchemit@users.forge.codelutin.com 16 Feb '12
by tchemit@users.forge.codelutin.com 16 Feb '12
16 Feb '12
Author: tchemit
Date: 2012-02-16 23:52:30 +0100 (Thu, 16 Feb 2012)
New Revision: 315
Url: http://forge.codelutin.com/repositories/revision/echobase/315
Log:
use nuiton-struts FilterPagerBean
Modified:
trunk/echobase-services/pom.xml
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
Modified: trunk/echobase-services/pom.xml
===================================================================
--- trunk/echobase-services/pom.xml 2012-02-15 14:13:57 UTC (rev 314)
+++ trunk/echobase-services/pom.xml 2012-02-16 22:52:30 UTC (rev 315)
@@ -48,6 +48,11 @@
<artifactId>nuiton-i18n</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.nuiton.web</groupId>
+ <artifactId>nuiton-struts2</artifactId>
+ </dependency>
+
<!-- comons dependencies -->
<dependency>
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-02-15 14:13:57 UTC (rev 314)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-02-16 22:52:30 UTC (rev 315)
@@ -51,6 +51,7 @@
import org.nuiton.util.csv.ImportExportModel;
import org.nuiton.util.csv.ImportableColumn;
import org.nuiton.util.decorator.JXPathDecorator;
+import org.nuiton.web.struts2.FilterPagerUtil;
import java.util.Collection;
import java.util.List;
@@ -91,7 +92,7 @@
//TODO Use an object to filter datas
public Map<?, ?>[] getDatas(EchoBaseEntityEnum entityType,
- FilterPagerBean pager,
+ FilterPagerUtil.FilterPagerBean pager,
String sidx,
Boolean ascendantOrder) {
@@ -118,7 +119,7 @@
}
public <E extends TopiaEntity> List<E> getEntities(TableMeta tableMeta,
- FilterPagerBean pager,
+ FilterPagerUtil.FilterPagerBean pager,
String sidx,
Boolean ascendantOrder,
String extraWhereQuery) {
@@ -140,11 +141,11 @@
DecoratorService decoratorService = getDecoratorService();
// prepare the filter hql code
- List<FilterPagerBean.FilterRule> rules = pager.getRules();
+ List<FilterPagerUtil.FilterRule> rules = pager.getRules();
List<String> strFilterRules = Lists.newLinkedList();
long timestamp = System.currentTimeMillis();
int index = 0;
- for (FilterPagerBean.FilterRule rule : rules) {
+ for (FilterPagerUtil.FilterRule rule : rules) {
String ruleFilter;
String field = rule.getField();
@@ -153,7 +154,7 @@
Preconditions.checkNotNull(
columnMeta, "no property named " + columnMeta);
- FilterPagerBean.Operation op = rule.getOp();
+ FilterPagerUtil.FilterOperation op = rule.getOp();
String data = rule.getData();
String paramName = field + "_" + timestamp + (index++);
String propertyName = "e." + field;
@@ -210,7 +211,7 @@
}
if (CollectionUtils.isNotEmpty(strFilterRules)) {
- FilterPagerBean.OperationGroup groupOp = pager.getGroupOp();
+ FilterPagerUtil.FilterOperationGroup groupOp = pager.getGroupOp();
filterHql = StringUtils.join(strFilterRules, groupOp.name());
}
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2012-02-15 14:13:57 UTC (rev 314)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/AbstractJSONPaginedAction.java 2012-02-16 22:52:30 UTC (rev 315)
@@ -23,10 +23,10 @@
*/
package fr.ifremer.echobase.ui.actions;
-import fr.ifremer.echobase.services.FilterPagerBean;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.json.JSONException;
import org.apache.struts2.json.JSONUtil;
+import org.nuiton.web.struts2.FilterPagerUtil;
import java.util.Collection;
import java.util.Map;
@@ -49,7 +49,7 @@
public abstract Integer getRecords();
- protected FilterPagerBean pager = new FilterPagerBean();
+ protected FilterPagerUtil.FilterPagerBean pager = new FilterPagerUtil.FilterPagerBean();
// sorting order - asc or desc
protected String sord;
@@ -121,7 +121,7 @@
Collection<Map<String, String>> rules =
(Collection<Map<String, String>>) filterObject.get("rules");
- FilterPagerBean.newFilterPagerBeanBuilder(groupOp).
+ FilterPagerUtil.newFilterPagerBeanBuilder(groupOp).
addOperations(rules).
flush(pager);
}
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-02-15 14:13:57 UTC (rev 314)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/dbeditor.jsp 2012-02-16 22:52:30 UTC (rev 315)
@@ -97,6 +97,7 @@
// push the id of row
$("#" + propertyName).val(value);
+ $("#entityId").val(value);
return;
}
@@ -312,6 +313,8 @@
<s:hidden id="topiaId" name='topiaId' label=''/>
+ <s:textfield id="entityId" name='topiaId' label='' readonly="true" size="200"/>
+
<s:iterator value="columnMetas" var="meta" status="status">
<s:set var="metaName" value='%{#meta.name}'/>
<s:if test="#meta.fK">
1
0
Author: tchemit
Date: 2012-02-15 15:13:57 +0100 (Wed, 15 Feb 2012)
New Revision: 314
Url: http://forge.codelutin.com/repositories/revision/echobase/314
Log:
revert trunk site deploy modifications + remove unused echobase group
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-02-09 23:12:03 UTC (rev 313)
+++ trunk/pom.xml 2012-02-15 14:13:57 UTC (rev 314)
@@ -31,7 +31,7 @@
<name>EchoBase</name>
<description>Projet EchoBase</description>
<inceptionYear>2011</inceptionYear>
- <url>http://maven-site.forge.codelutin.com/echobase${projectUrlSuffix}</url>
+ <url>http://maven-site.forge.codelutin.com/echobase</url>
<organization>
<name>Ifremer</name>
@@ -91,11 +91,11 @@
<distributionManagement>
<site>
<id>${platform}</id>
- <url>${our.site.repository}/${projectId}${projectUrlSuffix}</url>
+ <url>${our.site.repository}/${projectId}</url>
</site>
</distributionManagement>
- <repositories>
+ <!--repositories>
<repository>
<id>nexus</id>
<layout>default</layout>
@@ -108,7 +108,7 @@
<enabled>true</enabled>
</snapshots>
</repository>
- </repositories>
+ </repositories-->
<!-- ************************************************************* -->
<!-- *** Build Settings ****************************************** -->
1
0
Author: tchemit
Date: 2012-02-10 00:12:03 +0100 (Fri, 10 Feb 2012)
New Revision: 313
Url: http://forge.codelutin.com/repositories/revision/echobase/313
Log:
updates to mavenpom 3.1.1
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-02-09 18:18:14 UTC (rev 312)
+++ trunk/pom.xml 2012-02-09 23:12:03 UTC (rev 313)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.1</version>
+ <version>3.1.1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer</groupId>
@@ -31,7 +31,7 @@
<name>EchoBase</name>
<description>Projet EchoBase</description>
<inceptionYear>2011</inceptionYear>
- <url>http://maven-site.forge.codelutin.com/echobase</url>
+ <url>http://maven-site.forge.codelutin.com/echobase${projectUrlSuffix}</url>
<organization>
<name>Ifremer</name>
@@ -91,7 +91,7 @@
<distributionManagement>
<site>
<id>${platform}</id>
- <url>${our.site.repository}/${projectId}</url>
+ <url>${our.site.repository}/${projectId}${projectUrlSuffix}</url>
</site>
</distributionManagement>
1
0
r312 - in trunk: echobase-services/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/csv echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData echobase-ui/src/main/resources/i18n echobase-ui/src/main/webapp/WEB-INF/includes echobase-ui/src/main/webapp/WEB-INF/jsp/importData
by tchemit@users.forge.codelutin.com 09 Feb '12
by tchemit@users.forge.codelutin.com 09 Feb '12
09 Feb '12
Author: tchemit
Date: 2012-02-09 19:18:14 +0100 (Thu, 09 Feb 2012)
New Revision: 312
Url: http://forge.codelutin.com/repositories/revision/echobase/312
Log:
- am?\195?\169lioration des r?\195?\169sultats d'import
- import common data fonctionne!
Added:
trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAccousticData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperation.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResults.jsp
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -57,13 +57,12 @@
*/
public abstract class AbstractImportDataService<M extends AbstractImportConfiguration> extends EchoBaseServiceSupport {
- public final Map<InputFile, CsvImportResult> doImport(M configuration,
- EchoBaseUser user) throws ImportException {
+ public final List<CsvImportResult> doImport(M configuration,
+ EchoBaseUser user) throws ImportException {
try {
- Map<InputFile, CsvImportResult> result = startImport(configuration,
- user);
+ List<CsvImportResult> result = startImport(configuration, user);
// do commit
commitTransaction("Could not execute import " + getImportLabel());
@@ -77,10 +76,10 @@
protected abstract String getImportLabel();
- protected abstract Map<InputFile, CsvImportResult> startImport(M configuration,
- EchoBaseUser user) throws ImportException;
+ protected abstract List<CsvImportResult> startImport(M configuration,
+ EchoBaseUser user) throws ImportException;
- protected void addResultAndLog(Map<InputFile, CsvImportResult> result,
+ protected void addResultAndLog(List<CsvImportResult> result,
InputFile inputFile,
CsvImportResult importResult,
EchoBaseUser user) {
@@ -88,7 +87,7 @@
if (importResult.getNumberCreated() > 0 ||
importResult.getNumberUpdated() > 0) {
- result.put(inputFile, importResult);
+ result.add(importResult);
String importType = getImportLabel();
@@ -104,17 +103,15 @@
getDAO(EntityModificationLog.class);
create(dao,
- EntityModificationLog.PROPERTY_ENTITY_TYPE, importResult.entityType,
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, importResult.entityType.name(),
EntityModificationLog.PROPERTY_ENTITY_ID, importType,
EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
EntityModificationLog.PROPERTY_MODIFICATION_TEXT, description.toString()
);
}
-
}
-
protected Reader getInputFileReader(InputFile inputFile) throws EchoBaseTechnicalException {
try {
Reader reader = new BufferedReader(new InputStreamReader(
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -24,7 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
+import com.google.common.collect.Lists;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBasePredicates;
import fr.ifremer.echobase.InputFile;
@@ -55,6 +55,7 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n.l_;
@@ -73,11 +74,11 @@
}
@Override
- protected Map<InputFile, CsvImportResult> startImport(
+ protected List<CsvImportResult> startImport(
AccousticDataImportConfiguration configuration,
EchoBaseUser user) throws ImportException {
- Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ List<CsvImportResult> result = Lists.newLinkedList();
// get selected voyage
Voyage voyage = getEntityById(Voyage.class,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBasePredicates;
@@ -58,6 +59,7 @@
import java.io.Reader;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n.l_;
@@ -76,10 +78,11 @@
}
@Override
- protected Map<InputFile, CsvImportResult> startImport(CatchesDataImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
- Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ protected List<CsvImportResult> startImport(CatchesDataImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
+ List<CsvImportResult> result = Lists.newLinkedList();
+
Voyage voyage = getEntityById(Voyage.class,
configuration.getVoyageId());
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBaseTechnicalException;
@@ -55,9 +56,9 @@
import java.io.Reader;
import java.util.Arrays;
import java.util.Date;
+import java.util.List;
import java.util.Map;
-import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.l_;
/**
@@ -74,11 +75,11 @@
}
@Override
- protected Map<InputFile, CsvImportResult> startImport(
+ protected List<CsvImportResult> startImport(
CommonDataImportConfiguration configuration,
EchoBaseUser user) throws ImportException {
- Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ List<CsvImportResult> result = Lists.newLinkedList();
CommonDataImportMode importMode = configuration.getImportMode();
@@ -193,7 +194,7 @@
// this means a voyage file with more than one row not possible...
throw new ImportException(
- _("echobase.importError.can.only.import.one.voyage.atime"));
+ l_(getLocale(), "echobase.importError.can.only.import.one.voyage.atime"));
}
importResult.incrementsNumberCreated();
@@ -201,7 +202,7 @@
if (newVoyage == null) {
throw new ImportException(
- _("echobase.importError.no.voyage.imported"));
+ l_(getLocale(), "echobase.importError.no.voyage.imported"));
}
// push back to id of the voyage in configuration for next imports
@@ -220,7 +221,7 @@
CommonDataImportConfiguration configuration) throws ImportException {
CsvImportResult importResult = new CsvImportResult(
- EchoBaseEntityEnum.Voyage,
+ EchoBaseEntityEnum.Transit,
inputFile.getFileName(),
false);
@@ -239,9 +240,6 @@
TransitDAO dao = getDAO(Transit.class, TransitDAO.class);
-
- int nbTransits = 0;
-
Reader reader = getInputFileReader(inputFile);
try {
Import<TransitImportModelRow> importer =
@@ -252,18 +250,13 @@
transit.setRelatedActivity(relatedActivity);
- Transit createdTransit = create(dao);
+ Transit createdTransit = create(dao, transit);
voyage.addTransit(createdTransit);
importResult.incrementsNumberCreated();
}
- if (nbTransits == 0) {
- throw new ImportException(
- _("echobase.importError.no.transit.imported"));
- }
-
return importResult;
} catch (ImportRuntimeException e) {
throw new ImportException(getLocale(), inputFile, e);
@@ -278,7 +271,7 @@
CommonDataImportConfiguration configuration) throws ImportException {
CsvImportResult importResult = new CsvImportResult(
- EchoBaseEntityEnum.Voyage,
+ EchoBaseEntityEnum.Transect,
inputFile.getFileName(),
false);
@@ -316,7 +309,7 @@
timeCoverageEnd);
if (transit == null) {
throw new ImportException(
- _("echobase.importError.no.transit.between.date",
+ l_(getLocale(), "echobase.importError.no.transit.between.date",
voyage.getName(), timeCoverageStart, timeCoverageEnd));
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.InputFile;
@@ -56,6 +57,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
+import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n.l_;
@@ -74,11 +76,11 @@
}
@Override
- protected Map<InputFile, CsvImportResult> startImport(
+ protected List<CsvImportResult> startImport(
OperationImportConfiguration configuration,
EchoBaseUser user) throws ImportException {
- Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ List<CsvImportResult> result = Lists.newLinkedList();
// get selected voyage
Voyage voyage = getEntityById(Voyage.class,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBasePredicates;
@@ -60,6 +61,7 @@
import java.io.Reader;
import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n.l_;
@@ -78,9 +80,11 @@
}
@Override
- public Map<InputFile, CsvImportResult> startImport(ResultsImportConfiguration configuration, EchoBaseUser user) throws ImportException {
- Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ public List<CsvImportResult> startImport(ResultsImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
+ List<CsvImportResult> result = Lists.newLinkedList();
+
ResultsImportMode importMode = configuration.getImportMode();
switch (importMode) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CsvModelUtil.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -118,7 +118,7 @@
public static final ValueParser<Date> IMPORT_DAY = new DateValue("dd/MM/yy");
- public static final ValueParser<Date> IMPORT_DAY_TIME2 = new DateValue("dd-MM-yy HH:mm:ss");
+ public static final ValueParser<Date> IMPORT_DAY_TIME2 = new DateValue("yyyy-MM-dd HH:mm:ss");
public static final ValueParser<Date> IMPORT_DAY_TIME3 = new DateValue("dd-MM-yy HH:mm aa");
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-02-09 18:18:14 UTC (rev 312)
@@ -23,16 +23,22 @@
*/
package fr.ifremer.echobase.ui.actions.importData;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.services.AbstractImportDataService;
import fr.ifremer.echobase.services.CsvImportResult;
import fr.ifremer.echobase.services.ImportException;
import fr.ifremer.echobase.services.configurations.AbstractImportConfiguration;
+import fr.ifremer.echobase.services.configurations.ResultsImportConfiguration;
import fr.ifremer.echobase.ui.actions.AbstractWaitAndExecAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* TODO
@@ -53,8 +59,10 @@
protected transient S service;
- protected Map<InputFile, CsvImportResult> result;
+ protected transient Exception error;
+ protected List<CsvImportResult> result;
+
protected AbstractLaunchImport(Class<M> modelType, Class<S> serviceType) {
this.modelType = modelType;
this.serviceType = serviceType;
@@ -65,10 +73,14 @@
return getEchoBaseSession().getImportDataConfiguration(modelType);
}
- public Map<InputFile, CsvImportResult> getResult() {
+ public List<CsvImportResult> getResult() {
return result;
}
+ public Exception getError() {
+ return error;
+ }
+
@Override
public void prepare() throws Exception {
@@ -87,13 +99,43 @@
result = service.doImport(model,
getEchoBaseSession().getEchoBaseUser());
- service.commitTransaction("Could not commit imported data");
+ addActionMessage(_("echobase.info.import.succeded"));
+
} catch (ImportException e) {
+
+ addActionError(_("echobase.info.import.failed"));
+
+ if (model instanceof ResultsImportConfiguration) {
+ ResultsImportConfiguration m = (ResultsImportConfiguration) model;
+ result = Lists.newLinkedList();
+ CsvImportResult value;
+
+ value = CsvImportResult.newResult(
+ EchoBaseEntityEnum.LengthAgeKey,
+ m.getLengthAgeKeyFile().getFile().getName(),
+ false
+ );
+ value.incrementsNumberCreated();
+ result.add(value);
+
+ value = CsvImportResult.newResult(
+ EchoBaseEntityEnum.AcousticInstrument,
+ m.getLengthAgeKeyFile().getFile().getName(),
+ false
+ );
+ value.incrementsNumberCreated();
+ value.incrementsNumberCreated();
+ value.incrementsNumberCreated();
+ result.add(value);
+
+ }
+
if (log.isErrorEnabled()) {
log.error("Error while import ", e);
}
- addActionError(e.getMessage());
+
+ error = e;
}
}
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-02-09 18:18:14 UTC (rev 312)
@@ -1,3 +1,6 @@
+echobase.common.importError=Message d'erreur
+echobase.common.importFileName=Nom du fichier importé
+echobase.common.nbCreatedObjects=Nombre d'objets crées
echobase.error.bad.password=
echobase.error.email.already.used=
echobase.error.login.unknown=
@@ -9,6 +12,8 @@
echobase.error.required.email=
echobase.error.required.password=
echobase.error.warlocation.notFound=
+echobase.info.import.failed=L'import a échoué.
+echobase.info.import.succeded=
echobase.info.no.sqlQuery.saved=
echobase.info.no.sqlQuery.selected=
echobase.info.no.table.selected=
@@ -17,3 +22,4 @@
echobase.info.user.delete=
echobase.info.user.update=
echobase.information.mission.created=
+echobase.legend.importData.result.resume=Résultat
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-02-09 18:18:14 UTC (rev 312)
@@ -34,14 +34,17 @@
echobase.common.email=Email
echobase.common.entityType=Type d'entité
echobase.common.importDataMode=Type d'import
+echobase.common.importError=Message d'erreur
+echobase.common.importFileName=Nom du fichier importé
echobase.common.importMode=Type d'import
-echobase.common.importResult=Résultat \:
+echobase.common.importResult=Résultat de l'import
echobase.common.inProgress=en cours...
echobase.common.jdbcLogin=Login de connexion
echobase.common.jdbcPassword=Mot de passe
echobase.common.jdbcUrl=Url de connexion
echobase.common.loggedDataDatatype=loggedDataDatatype
echobase.common.loggedDataFormat=loggedDataFormat
+echobase.common.nbCreatedObjects=Nombre d'objets crées
echobase.common.notes=notes
echobase.common.password=Mot de passe
echobase.common.pingDutyCycle=pingDutyCycle
@@ -124,6 +127,8 @@
echobase.header.request.result=Résultat de la requête sql
echobase.header.user.gridTitle=Liste des utilisateurs
echobase.info.dbeditor.propertyDiffsResult=Résultat d'import de données
+echobase.info.import.failed=L'import a échoué.
+echobase.info.import.succeded=L'import a réussi.
echobase.info.no.sqlQuery.saved=Aucune requête d'export sql enregistrée
echobase.info.no.sqlQuery.selected=Aucune requête d'export sql sélectionnée
echobase.info.no.table.selected=Aucune table sélectionnée
@@ -172,6 +177,7 @@
echobase.legend.importData.configure=Configurer l'import
echobase.legend.importData.configure.CommonData.selectMission=Sélection de la mission
echobase.legend.importData.createMission=Caractéristiques de la nouvelle mission
+echobase.legend.importData.result.resume=Résultat
echobase.legend.importDb.configuration.files=Choix du fichier d'import de la base complête (fichier zip)
echobase.legend.importFileResult=Résultat de l'import %s
echobase.legend.sqlQuery.configuration=Configuration de la requête
Added: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp (rev 0)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/importDataResults.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -0,0 +1,51 @@
+<%--
+ #%L
+ EchoBase :: UI
+
+ $Id: resultResults.jsp 304 2012-02-02 22:58:29Z tchemit $
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/weba… $
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ --%>
+<%@page contentType="text/html" pageEncoding="UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<br/>
+<s:if test="hasActionErrors()">
+ <s:text name="echobase.common.importError"/>
+ <pre>
+ <s:property value="error.message"/>
+ </pre>
+</s:if>
+<s:else>
+ <table>
+ <thead>
+ <tr>
+ <th><s:text name="echobase.common.importFileName"/></th>
+ <th><s:text name="echobase.common.entityType"/></th>
+ <th><s:text name="echobase.common.nbCreatedObjects"/></th>
+ </tr>
+ </thead>
+ <s:iterator value="result">
+ <tr>
+ <td><s:property value="importFileName"/></td>
+ <td><s:property value="entityType"/></td>
+ <td><s:property value="numberCreated"/></td>
+ </tr>
+ </s:iterator>
+ </table>
+</s:else>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAccousticData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAccousticData.jsp 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultAccousticData.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -29,12 +29,4 @@
<s:text name="echobase.common.importDataMode.accousticData"/>
</title>
-<fieldset>
- <legend>
- <s:text name="echobase.legend.importData.configuration.resume"/>
- </legend>
-
-</fieldset>
-<br/>
-
-<div>TODO Result</div>
+<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesData.jsp 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCatchesData.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -29,12 +29,4 @@
<s:text name="echobase.common.importDataMode.catchesData"/>
</title>
-<fieldset>
- <legend>
- <s:text name="echobase.legend.importData.configuration.resume"/>
- </legend>
-
-</fieldset>
-<br/>
-
-<div>TODO Result</div>
+<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonData.jsp 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultCommonData.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -29,14 +29,4 @@
<s:text name="echobase.common.importDataMode.commonData"/>
</title>
-<fieldset>
- <legend>
- <s:text name="echobase.legend.importData.configuration.resume"/>
- </legend>
- <s:label value="%{model.mission.missionName}"
- key='echobase.common.missionName'/>
-
-</fieldset>
-<br/>
-
-<div>TODO Result</div>
+<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperation.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperation.jsp 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultOperation.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -29,12 +29,4 @@
<s:text name="echobase.common.importDataMode.operation"/>
</title>
-<fieldset>
- <legend>
- <s:text name="echobase.legend.importData.configuration.resume"/>
- </legend>
-
-</fieldset>
-<br/>
-
-<div>TODO Result</div>
+<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResults.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResults.jsp 2012-02-09 17:07:50 UTC (rev 311)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/resultResults.jsp 2012-02-09 18:18:14 UTC (rev 312)
@@ -26,15 +26,11 @@
<title>
<s:text name="echobase.common.importResult"/>
- <s:text name="echobase.common.importDataMode.results"/>
</title>
-<fieldset>
- <legend>
- <s:text name="echobase.legend.importData.configuration.resume"/>
- </legend>
+<h4>
+ <s:text name="echobase.common.importDataMode.results"/>
+ ( <s:property value="%{getText(model.importMode.i18nKey)}"/> )
+</h4>
-</fieldset>
-<br/>
-
-<div>TODO Result</div>
+<%@ include file="/WEB-INF/includes/importDataResults.jsp" %>
1
0
09 Feb '12
Author: tchemit
Date: 2012-02-09 18:07:50 +0100 (Thu, 09 Feb 2012)
New Revision: 311
Url: http://forge.codelutin.com/repositories/revision/echobase/311
Log:
import des nouvelles donn?\195?\169es bien avanc?\195?\169
Added:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/OperationImpl.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModelRow.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBasePredicates.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
trunk/echobase-entities/src/main/xmi/echobase.zargo
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/ResultsImportMode.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java
trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java
trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResults.java
trunk/echobase-ui/src/main/resources/config/struts-importData.xml
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData-validation.xml
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureResults.jsp
trunk/echobase-ui/src/main/webapp/js/gridHelper.js
trunk/src/doc/reunions/reunion-2012-02-08.txt
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -26,6 +26,7 @@
import com.google.common.base.Function;
import fr.ifremer.echobase.entities.data.DataProcessing;
import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Transect;
import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.references.AcousticInstrument;
import fr.ifremer.echobase.entities.references.AreaOfOperation;
@@ -208,10 +209,10 @@
}
};
- public static final Function<Gear, String> GEAR_NAME = new Function<Gear, String>() {
+ public static final Function<Gear, String> GEAR_GEAR_CODE = new Function<Gear, String>() {
@Override
public String apply(Gear input) {
- return input.getName();
+ return input.getGearCode();
}
};
@@ -264,13 +265,20 @@
}
};
- public static final Function<GearMetadata, String> GEAR_METADATA_TYPE = new Function<GearMetadata, String>() {
+ public static final Function<GearMetadata, String> GEAR_METADATA_NAME = new Function<GearMetadata, String>() {
@Override
public String apply(GearMetadata input) {
- return input.getType();
+ return input.getName();
}
};
+ public static final Function<Transect, Vessel> TRANSECT_BY_VESSEL = new Function<Transect, Vessel>() {
+ @Override
+ public Vessel apply(Transect input) {
+ return input.getVessel();
+ }
+ };
+
public static String getSpeciesCategoryKey(Species species, SizeCategory sizeCategory, SexCategory sexCategory) {
String key = species.getBaracoudaCode();
if (sizeCategory != null) {
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBasePredicates.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBasePredicates.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBasePredicates.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -26,6 +26,7 @@
import com.google.common.base.Predicate;
import fr.ifremer.echobase.entities.references.AcousticInstrument;
import fr.ifremer.echobase.entities.references.Echotype;
+import fr.ifremer.echobase.entities.references.SizeCategory;
/**
* Keep usefull precidates on model.
@@ -42,7 +43,14 @@
}
};
- public static EchotypeByNamePredicate newEchotypeByNamePredicate(String name) {
+ public static final Predicate<SizeCategory> IS_HORS_VRAC = new Predicate<SizeCategory>() {
+ @Override
+ public boolean apply(SizeCategory input) {
+ return input.getName().toUpperCase().equals("H");
+ }
+ };
+
+ public static Predicate<Echotype> newEchotypeByNamePredicate(String name) {
return new EchotypeByNamePredicate(name);
}
Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/OperationImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/OperationImpl.java (rev 0)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/OperationImpl.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,49 @@
+/*
+ * #%L
+ * EchoBase :: Entities
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.entities.data;
+
+import fr.ifremer.echobase.entities.references.SampleType;
+import fr.ifremer.echobase.entities.references.SpeciesCategory;
+
+public class OperationImpl extends OperationAbstract {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public Sample getSample(SpeciesCategory speciesCategory,
+ SampleType sampleType) {
+
+ Sample result = null;
+ if (!isSampleEmpty()) {
+ for (Sample s : sample) {
+ if (sampleType.equals(s.getSampleType()) &&
+ speciesCategory.equals(s.getSpeciesCategory())) {
+ result = s;
+ break;
+ }
+ }
+ }
+ return result;
+ }
+} //OperationImpl
Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/OperationImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/data/VoyageImpl.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -24,8 +24,16 @@
package fr.ifremer.echobase.entities.data;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.echobase.EchoBaseFunctions;
+import fr.ifremer.echobase.entities.references.Vessel;
+import java.util.Collection;
import java.util.Date;
+import java.util.List;
+import java.util.Set;
/**
* Default implementation of {@link Voyage}.
@@ -64,4 +72,57 @@
}
return result;
}
+
+ @Override
+ public Transit getTransit(Date startTime) {
+
+ Preconditions.checkNotNull(startTime);
+ Transit result = null;
+ if (!isTransitEmpty()) {
+ for (Transit t : getTransit()) {
+ Date transitEndTime = t.getEndTime();
+ if (transitEndTime.before(startTime)) {
+ // transit before required range
+ continue;
+ }
+
+ // ok transit contains required range
+ result = t;
+ break;
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public Set<Vessel> getAllVessels() {
+
+ Set<Vessel> result = Sets.newHashSet();
+
+ for (Transit transit : getTransit()) {
+
+ Collection<Vessel> vesselsOfTransit =
+ Collections2.transform(
+ transit.getTransect(),
+ EchoBaseFunctions.TRANSECT_BY_VESSEL);
+ result.addAll(vesselsOfTransit);
+ }
+ return result;
+ }
+
+ @Override
+ public Collection<Operation> getOperations(Vessel vessel) {
+
+ Collection<Operation> result = Lists.newArrayList();
+
+ if (isTransitEmpty()) {
+ for (Transit t : transit) {
+
+ Transect transect = t.getTransect(vessel);
+ List<Operation> operations = transect.getOperation();
+ result.addAll(operations);
+ }
+ }
+ return result;
+ }
}
Modified: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
===================================================================
--- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2012-02-09 17:07:50 UTC (rev 311)
@@ -89,6 +89,7 @@
echobase.common.gearCharacteristic=
echobase.common.gearCharacteristicValue=
echobase.common.gearClassification=
+echobase.common.gearCode=
echobase.common.gearMetadata=
echobase.common.gearMetadataValue=
echobase.common.gearShootingEndLatitude=
@@ -141,8 +142,9 @@
echobase.common.metadata=Metadata
echobase.common.metadataGroup=
echobase.common.method=
+echobase.common.midHaulLatitude=
+echobase.common.midHaulLongitude=
echobase.common.midHauleLatitude=
-echobase.common.midHauleLongitude=
echobase.common.minDepth=
echobase.common.minFishLength=
echobase.common.minLatitude=
@@ -185,6 +187,7 @@
echobase.common.referenceDatum=ReferenceDatum
echobase.common.referenceDatumType=
echobase.common.referencingMethod=
+echobase.common.regionCell=
echobase.common.relatedActivity=
echobase.common.report=
echobase.common.result=
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,20 +23,28 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.base.Charsets;
import com.google.common.base.Function;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EntityModificationLog;
+import fr.ifremer.echobase.entities.references.SexCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.entities.references.SpeciesCategory;
+import fr.ifremer.echobase.entities.references.SpeciesCategoryDAO;
import fr.ifremer.echobase.services.configurations.AbstractImportConfiguration;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
import java.io.BufferedReader;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.io.Reader;
import java.util.List;
import java.util.Map;
@@ -49,13 +57,68 @@
*/
public abstract class AbstractImportDataService<M extends AbstractImportConfiguration> extends EchoBaseServiceSupport {
- public abstract Map<InputFile, CsvImportResult> startImport(M configuration,
- EchoBaseUser user) throws ImportException;
+ public final Map<InputFile, CsvImportResult> doImport(M configuration,
+ EchoBaseUser user) throws ImportException {
+ try {
+ Map<InputFile, CsvImportResult> result = startImport(configuration,
+ user);
+
+ // do commit
+ commitTransaction("Could not execute import " + getImportLabel());
+ return result;
+ } catch (ImportException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new ImportException("Could not do import " + e.getMessage(), e);
+ }
+ }
+
+ protected abstract String getImportLabel();
+
+ protected abstract Map<InputFile, CsvImportResult> startImport(M configuration,
+ EchoBaseUser user) throws ImportException;
+
+ protected void addResultAndLog(Map<InputFile, CsvImportResult> result,
+ InputFile inputFile,
+ CsvImportResult importResult,
+ EchoBaseUser user) {
+
+ if (importResult.getNumberCreated() > 0 ||
+ importResult.getNumberUpdated() > 0) {
+
+ result.put(inputFile, importResult);
+
+ String importType = getImportLabel();
+
+ StringBuilder description = new StringBuilder();
+ description.append("Depuis Fichier ").append(inputFile.getFileName());
+ if (importResult.getNumberCreated() > 0) {
+ description.append(" [ nombre de création : ").append(importResult.getNumberCreated()).append("]");
+ }
+ if (importResult.getNumberUpdated() > 0) {
+ description.append(" [ nombre de mises à jour : ").append(importResult.getNumberUpdated()).append("]");
+ }
+ TopiaDAO<EntityModificationLog> dao =
+ getDAO(EntityModificationLog.class);
+
+ create(dao,
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, importResult.entityType,
+ EntityModificationLog.PROPERTY_ENTITY_ID, importType,
+ EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
+ EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
+ EntityModificationLog.PROPERTY_MODIFICATION_TEXT, description.toString()
+ );
+ }
+
+ }
+
+
protected Reader getInputFileReader(InputFile inputFile) throws EchoBaseTechnicalException {
try {
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = new BufferedReader(new InputStreamReader(
+ new FileInputStream(inputFile.getFile()), Charsets.UTF_8));
return reader;
} catch (FileNotFoundException e) {
throw new EchoBaseTechnicalException(
@@ -67,11 +130,15 @@
try {
reader.close();
} catch (IOException e) {
- throw new EchoBaseTechnicalException("Could not close reader on file " + inputFile.getFile(), e);
+ throw new EchoBaseTechnicalException(
+ "Could not close reader on file " +
+ inputFile.getFile(), e);
}
}
- protected <E extends TopiaEntity, K> Map<K, E> getEntitiesMap(Class<E> entityType, Function<E, K> function) {
+ protected <E extends TopiaEntity, K> Map<K, E> getEntitiesMap(
+ Class<E> entityType,
+ Function<E, K> function) {
List<E> allVoyages = getEntities(entityType);
Map<K, E> voyageMap = Maps.uniqueIndex(
allVoyages, function);
@@ -96,7 +163,8 @@
}
}
- protected <E extends TopiaEntity> E create(TopiaDAO<E> dao, Object... properties) {
+ protected <E extends TopiaEntity> E create(TopiaDAO<E> dao,
+ Object... properties) {
try {
E result = dao.create(properties);
return result;
@@ -105,7 +173,9 @@
}
}
- protected <E extends TopiaEntity> E findByProperties(TopiaDAO<E> dao, String propertyName, Object value,
+ protected <E extends TopiaEntity> E findByProperties(TopiaDAO<E> dao,
+ String propertyName,
+ Object value,
Object... others) {
try {
E result = dao.findByProperties(propertyName, value, others);
@@ -114,4 +184,28 @@
throw new EchoBaseTechnicalException("Could not obtain query db", e);
}
}
+
+ protected SpeciesCategory getSpeciesCategory(SpeciesCategoryDAO speciesCategoryDAO,
+ Species species,
+ SizeCategory sizeCategory,
+ SexCategory sexCategory) {
+ SpeciesCategory category = findByProperties(
+ speciesCategoryDAO,
+ SpeciesCategory.PROPERTY_SPECIES, species,
+ SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
+ SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory
+ );
+
+ if (category == null) {
+
+ // create it
+
+ category = create(speciesCategoryDAO);
+ category.setSpecies(species);
+ category.setSizeCategory(sizeCategory);
+ category.setSexCategory(sexCategory);
+ }
+
+ return category;
+ }
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -28,6 +28,7 @@
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBasePredicates;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.data.Cell;
import fr.ifremer.echobase.entities.data.CellDAO;
@@ -39,6 +40,7 @@
import fr.ifremer.echobase.entities.data.DataProcessingDAO;
import fr.ifremer.echobase.entities.data.Transect;
import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.references.AcousticInstrument;
import fr.ifremer.echobase.entities.references.CellType;
import fr.ifremer.echobase.entities.references.DataMetadata;
@@ -55,6 +57,8 @@
import java.util.Date;
import java.util.Map;
+import static org.nuiton.i18n.I18n.l_;
+
/**
* Service to launch a "acoustic data" import.
*
@@ -64,21 +68,25 @@
public class AccousticDataImportService extends AbstractImportDataService<AccousticDataImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(AccousticDataImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.AccousticData.getI18nKey());
+ }
+
+ @Override
+ protected Map<InputFile, CsvImportResult> startImport(
+ AccousticDataImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
+
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
- // get selected transit
- Transit transit = getEntityById(Transit.class,
- configuration.getTransitId());
+ // get selected voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
// get selected vessel
Vessel vessel = getEntityById(Vessel.class,
configuration.getVesselId());
- // find out the correct transect to use
- Transect transect = transit.getTransect(vessel);
-
CellType esduCellType = getEntityByProperty(
CellType.class, CellType.PROPERTY_ID, "Esdu");
Preconditions.checkNotNull(esduCellType);
@@ -87,22 +95,61 @@
CellType.class, CellType.PROPERTY_ID, "Elementary");
Preconditions.checkNotNull(elementaryCellType);
- importMoviesFile(transect,
+ InputFile inputFile = configuration.getMoviesFile();
+
+ CsvImportResult importDataAcquisition = new CsvImportResult(
+ EchoBaseEntityEnum.DataAcquisition,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importDataProcessing = new CsvImportResult(
+ EchoBaseEntityEnum.DataProcessing,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importCell = new CsvImportResult(
+ EchoBaseEntityEnum.Cell,
+ inputFile.getFileName(),
+ false);
+
+ CsvImportResult importCellData = new CsvImportResult(
+ EchoBaseEntityEnum.Data,
+ inputFile.getFileName(),
+ false);
+
+ importMoviesFile(voyage,
+ vessel,
esduCellType,
elementaryCellType,
configuration,
- configuration.getMoviesFile());
+ inputFile,
+ importDataAcquisition,
+ importDataProcessing,
+ importCell,
+ importCellData);
+
+ addResultAndLog(result, inputFile, importDataAcquisition, user);
+ addResultAndLog(result, inputFile, importDataProcessing, user);
+ addResultAndLog(result, inputFile, importCell, user);
+ addResultAndLog(result, inputFile, importCellData, user);
+
return result;
}
private final DateFormat cellDateFormat =
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss'Z'");
- private void importMoviesFile(Transect transect,
+ private void importMoviesFile(Voyage voyage,
+ Vessel vessel,
CellType esduCellType,
CellType elementaryCellType,
AccousticDataImportConfiguration configuration,
- InputFile inputFile) throws ImportException {
+ InputFile inputFile,
+ CsvImportResult importDataAcquisition,
+ CsvImportResult importDataProcessing,
+ CsvImportResult importCell,
+ CsvImportResult importCellData
+ ) throws ImportException {
Map<String, AcousticInstrument> instrumentsById =
getEntitiesMap(AcousticInstrument.class,
@@ -133,6 +180,30 @@
Cell elementaryCell;
for (AcousticDataImportModelRow row : importer) {
+ Date startDate = row.getCellDateStart();
+
+ // get transect to use
+ Transit transit = voyage.getTransit(startDate);
+ if (transit == null) {
+
+ // can not find correct transit
+ throw new ImportException(
+ l_(getLocale(), "echobase.importError.transit.notfound",
+ voyage.getName(),
+ startDate));
+ }
+
+ Transect transect = transit.getTransect(vessel);
+ if (transect == null) {
+
+ // can not find correct transect
+ throw new ImportException(
+ l_(getLocale(), "echobase.importError.transect.notfound",
+ voyage.getName(),
+ startDate,
+ vessel.getName()));
+ }
+
// Build the row acoustic instrument
String sndname = row.getSndName();
String channelName = row.getChannelName();
@@ -153,7 +224,8 @@
String soundSpeedCalculations =
getSoundSpeedCalculations(configuration, isME70);
- if (!addDataAcquisition && !transect.isDataAcquisitionEmpty()) {
+ if (!addDataAcquisition &&
+ !transect.isDataAcquisitionEmpty()) {
// try to obtain an existing data acquisiton
@@ -182,6 +254,8 @@
dataAcquisitionDAO
);
+ importDataAcquisition.incrementsNumberCreated();
+
// add it to transect
transect.addDataAcquisition(dataAcquisition);
}
@@ -195,6 +269,8 @@
dataProcessingDAO
);
+ importDataProcessing.incrementsNumberUpdated();
+
// add it to data acquisition
dataAcquisition.addDataProcessing(dataProcessing);
@@ -204,7 +280,6 @@
int cellType = row.getCellType();
- Date startDate = row.getCellDateStart();
String esduCellId = cellDateFormat.format(startDate);
if (cellType == 4) {
@@ -217,6 +292,8 @@
Cell.PROPERTY_NAME, esduCellId
);
+ importCell.incrementsNumberCreated();
+
// add it to data processing
dataProcessing.addCell(esduCell);
@@ -225,7 +302,8 @@
esduCell,
dataMetadatasByName,
row,
- dataDAO);
+ dataDAO,
+ importCellData);
} else {
// this is a elementary cell row
@@ -247,6 +325,8 @@
Cell.PROPERTY_NAME, elementaryCellId
);
+ importCell.incrementsNumberCreated();
+
// add it to esdu cell
esduCell.addChilds(elementaryCell);
@@ -256,31 +336,13 @@
elementaryCell,
dataMetadatasByName,
row,
- dataDAO);
+ dataDAO,
+ importCellData);
}
-
-
-// if (esduCell == null ||
-// !esduCellId.equals(esduCell.getName())) {
-//
-//
-//
-// // force to create a new elementary cell
-// elementaryCell = null;
-// }
-//
-//
-//
-// if (elementaryCell == null ||
-// !elementaryCellId.equals(elementaryCell.getName())) {
-//
-//
-// }
-
}
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
@@ -290,7 +352,8 @@
Cell cell,
Map<String, DataMetadata> dataMetadatasByName,
AcousticDataImportModelRow row,
- DataDAO dao) {
+ DataDAO dao,
+ CsvImportResult importCellData) {
DataMetadata dataMetadata;
Data data;
@@ -306,6 +369,8 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
// create Longitude data
dataMetadata = dataMetadatasByName.get("Longitude" + suffix);
dataValue = row.getEsduCellDataLongitude();
@@ -313,6 +378,8 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
// create Depth data
dataMetadata = dataMetadatasByName.get("DepthRefSurface" + suffix);
dataValue = row.getEsduCellDataDepth();
@@ -320,6 +387,8 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
// create Time data
dataMetadata = dataMetadatasByName.get("Time" + suffix);
dataValue = cellDateFormat.format(row.getCellDateStart());
@@ -327,19 +396,24 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
// create AcousticDensity data
dataMetadata = dataMetadatasByName.get("sa");
dataValue = row.getEsduCellDataAcousticDensity();
data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
+
+ importCellData.incrementsNumberCreated();
}
private void createElementaryCellData(AccousticDataImportConfiguration configuration,
Cell cell,
Map<String, DataMetadata> dataMetadatasByName,
AcousticDataImportModelRow row,
- DataDAO dao) {
+ DataDAO dao,
+ CsvImportResult importCellData) {
DataMetadata dataMetadata;
Data data;
@@ -372,6 +446,9 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
+
// create depth end data
dataMetadata = dataMetadatasByName.get(endMeta);
dataValue = row.getCellDepthEnd();
@@ -379,6 +456,8 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
// create acoustic density data
dataMetadata = dataMetadatasByName.get("sa");
dataValue = row.getCellSa();
@@ -386,6 +465,8 @@
data.setDataValue(dataValue);
cell.addData(data);
+ importCellData.incrementsNumberCreated();
+
}
private DataAcquisition createDataAcquisition(AccousticDataImportConfiguration configuration,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,26 +23,45 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
+import fr.ifremer.echobase.EchoBaseFunctions;
+import fr.ifremer.echobase.EchoBasePredicates;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.data.Operation;
import fr.ifremer.echobase.entities.data.Sample;
import fr.ifremer.echobase.entities.data.SampleDAO;
import fr.ifremer.echobase.entities.data.SampleData;
import fr.ifremer.echobase.entities.data.SampleDataDAO;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.SampleDataType;
+import fr.ifremer.echobase.entities.references.SampleDataTypeDAO;
+import fr.ifremer.echobase.entities.references.SampleType;
+import fr.ifremer.echobase.entities.references.SampleTypeDAO;
+import fr.ifremer.echobase.entities.references.SexCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.entities.references.SpeciesCategory;
+import fr.ifremer.echobase.entities.references.SpeciesCategoryDAO;
import fr.ifremer.echobase.entities.references.Vessel;
import fr.ifremer.echobase.services.configurations.CatchesDataImportConfiguration;
-import fr.ifremer.echobase.services.csv.SampleDataImportModel;
-import fr.ifremer.echobase.services.csv.SampleDataImportModelRow;
-import fr.ifremer.echobase.services.csv.SampleImportModel;
-import fr.ifremer.echobase.services.csv.SampleImportModelRow;
+import fr.ifremer.echobase.services.csv.BiometrySampleImportModel;
+import fr.ifremer.echobase.services.csv.BiometrySampleImportModelRow;
+import fr.ifremer.echobase.services.csv.SubSampleImportModel;
+import fr.ifremer.echobase.services.csv.SubSampleImportModelRow;
+import fr.ifremer.echobase.services.csv.TotalSampleImportModel;
+import fr.ifremer.echobase.services.csv.TotalSampleImportModelRow;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportRuntimeException;
import java.io.Reader;
+import java.util.Collection;
import java.util.Map;
+import static org.nuiton.i18n.I18n.l_;
+
/**
* Service to launch a "catches sample data" import.
*
@@ -52,8 +71,13 @@
public class CatchesDataImportService extends AbstractImportDataService<CatchesDataImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(CatchesDataImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.CatchesData.getI18nKey());
+ }
+
+ @Override
+ protected Map<InputFile, CsvImportResult> startImport(CatchesDataImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
Voyage voyage = getEntityById(Voyage.class,
@@ -62,64 +86,336 @@
Vessel vessel = getEntityById(Vessel.class,
configuration.getVesselId());
- importSampleFile(configuration.getSampleFile(), voyage, vessel);
+ // get all operation for this voyage and this vessel
+ Collection<Operation> operations = voyage.getOperations(vessel);
- importSampleDataFile(configuration.getSampleDataFile(), voyage, vessel);
+ // split them by operation Id
+ Map<String, Operation> operationMap = Maps.uniqueIndex(
+ operations, EchoBaseFunctions.OPERATION_ID);
+ Map<String, Species> speciesMap = getEntitiesMap(
+ Species.class,
+ EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
+
+ Map<String, SizeCategory> sizeCategoryMap = getEntitiesMap(
+ SizeCategory.class,
+ EchoBaseFunctions.SIZE_CATEGORY_NAME);
+
+ Map<String, SexCategory> sexCategoryMap = getEntitiesMap(
+ SexCategory.class,
+ EchoBaseFunctions.SEX_CATEGORY_NAME);
+
+ CsvImportResult totalSampleResult = importTotalSampleFile(
+ configuration.getTotalSampleFile(),
+ operationMap,
+ speciesMap,
+ sizeCategoryMap);
+
+ CsvImportResult subSampleResult = importSubSampleFile(
+ configuration.getSubSampleFile(),
+ operationMap,
+ speciesMap,
+ sizeCategoryMap,
+ sexCategoryMap);
+
+ CsvImportResult biometrySampleResult = importBiometrySampleFile(
+ configuration.getBiometrySampleFile(),
+ operationMap,
+ speciesMap);
+
+ addResultAndLog(result, configuration.getTotalSampleFile(), totalSampleResult, user);
+ addResultAndLog(result, configuration.getSubSampleFile(), subSampleResult, user);
+ addResultAndLog(result, configuration.getBiometrySampleFile(), biometrySampleResult, user);
+
return result;
}
- private void importSampleFile(InputFile inputFile,
- Voyage voyage,
- Vessel vessel) throws ImportException {
+ private CsvImportResult importTotalSampleFile(InputFile inputFile,
+ Map<String, Operation> operationMap,
+ Map<String, Species> speciesMap,
+ Map<String, SizeCategory> sizeCategoryMap) throws ImportException {
- SampleImportModel csvModel = new SampleImportModel(getCsvSeparator());
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Sample,
+ inputFile.getFileName(),
+ false);
- SampleDAO dao = getDAO(Sample.class, SampleDAO.class);
+ TotalSampleImportModel csvModel = new TotalSampleImportModel(getCsvSeparator(),
+ operationMap,
+ speciesMap,
+ sizeCategoryMap
+ );
+ SampleDAO sampleDAO = getDAO(Sample.class, SampleDAO.class);
+ SampleDataDAO sampleDataDAO = getDAO(SampleData.class, SampleDataDAO.class);
+ SampleTypeDAO sampleTypeDAO = getDAO(SampleType.class, SampleTypeDAO.class);
+ SampleDataTypeDAO sampleDataTypeDAO = getDAO(SampleDataType.class, SampleDataTypeDAO.class);
+ SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class);
+
+ SampleType sampleTypeTotal = findByProperties(sampleTypeDAO, SampleType.PROPERTY_NAME, "Total");
+ Preconditions.checkNotNull(sampleTypeTotal);
+ SampleType sampleTypeUnsorted = findByProperties(sampleTypeDAO, SampleType.PROPERTY_NAME, "Unsorted");
+ Preconditions.checkNotNull(sampleTypeUnsorted);
+ SampleType sampleTypeSorted = findByProperties(sampleTypeDAO, SampleType.PROPERTY_NAME, "Sorted");
+ Preconditions.checkNotNull(sampleTypeSorted);
+
+ SampleDataType sampleDataTypeMeanLength = findByProperties(sampleDataTypeDAO, SampleDataType.PROPERTY_NAME, "MeanLengthcm");
+ Preconditions.checkNotNull(sampleDataTypeMeanLength);
+ SampleDataType sampleDataTypeMeanWeight = findByProperties(sampleDataTypeDAO, SampleDataType.PROPERTY_NAME, "MeanWeightg");
+ Preconditions.checkNotNull(sampleDataTypeMeanWeight);
+ SampleDataType sampleDataTypeNoPerKg = findByProperties(sampleDataTypeDAO, SampleDataType.PROPERTY_NAME, "NoPerKg");
+ Preconditions.checkNotNull(sampleDataTypeNoPerKg);
+
Reader reader = getInputFileReader(inputFile);
try {
- Import<SampleImportModelRow> importer =
+ Import<TotalSampleImportModelRow> importer =
Import.newImport(csvModel, reader);
- for (SampleImportModelRow row : importer) {
+ for (TotalSampleImportModelRow row : importer) {
- //TODO
+ Operation operation = row.getOperation();
+ Species species = row.getSpecies();
+ SizeCategory sizeCategory = row.getSizeCategory();
+
+ SpeciesCategory category = getSpeciesCategory(
+ speciesCategoryDAO,
+ species,
+ sizeCategory,
+ null
+ );
+
+ SampleType sampleType;
+
+ if (EchoBasePredicates.IS_HORS_VRAC.apply(sizeCategory)) {
+
+ // hors vrac case
+ sampleType = sampleTypeUnsorted;
+
+ } else {
+ // none hors vrac case
+ sampleType = sampleTypeTotal;
+ }
+
+ Sample sample = operation.getSample(category, sampleType);
+
+ if (sample != null) {
+
+ // can not have twice same sample
+ throw new ImportException(
+ l_(getLocale(), "echobase.importError.duplicate.sample",
+ operation.getId(),
+ sampleType.getName(),
+ species.getBaracoudaCode(),
+ sizeCategory.getName()));
+ }
+
+ sample = row.getSample();
+ sample.setSpeciesCategory(category);
+
+ sample.setSampleType(sampleType);
+ Sample createdSample = create(sampleDAO, sample);
+
+ operation.addSample(createdSample);
+
+ importResult.incrementsNumberCreated();
+
+ // create datas
+
+ if (row.getMeanLength() != null) {
+
+ //create meanLength data
+ addSampleData(sampleDataDAO,
+ sampleDataTypeMeanLength,
+ null,
+ row.getMeanLength(),
+ createdSample);
+ }
+
+ if (row.getMeanWeight() != null) {
+
+ //create meanWeight data
+ addSampleData(sampleDataDAO,
+ sampleDataTypeMeanWeight,
+ null,
+ row.getMeanWeight(),
+ createdSample);
+ }
+
+ if (row.getNoPerKg() != null) {
+
+ //create noPerKg data
+ addSampleData(sampleDataDAO,
+ sampleDataTypeNoPerKg,
+ null,
+ row.getNoPerKg(),
+ createdSample);
+ }
+
+ // create sorted sample
+ Sample createdSortedSample = create(sampleDAO);
+ createdSortedSample.setSampleType(sampleTypeSorted);
+ createdSortedSample.setSampleWeight(row.getSortedWeight());
+
+ operation.addSample(createdSortedSample);
+
+ importResult.incrementsNumberCreated();
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- private void importSampleDataFile(InputFile inputFile,
- Voyage voyage,
- Vessel vessel) throws ImportException {
+ private CsvImportResult importSubSampleFile(InputFile inputFile,
+ Map<String, Operation> operationMap,
+ Map<String, Species> speciesMap,
+ Map<String, SizeCategory> sizeCategoryMap,
+ Map<String, SexCategory> sexCategoryMap
+ ) throws ImportException {
- SampleDataImportModel csvModel = new SampleDataImportModel(getCsvSeparator());
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Sample,
+ inputFile.getFileName(),
+ false);
+ SubSampleImportModel csvModel = new SubSampleImportModel(getCsvSeparator(),
+ operationMap,
+ speciesMap,
+ sizeCategoryMap,
+ sexCategoryMap);
- SampleDataDAO dao = getDAO(SampleData.class, SampleDataDAO.class);
+ SampleDAO sampleDAO = getDAO(Sample.class, SampleDAO.class);
+ SampleDataDAO sampleDataDAO = getDAO(SampleData.class, SampleDataDAO.class);
+ SampleTypeDAO sampleTypeDAO = getDAO(SampleType.class, SampleTypeDAO.class);
+ SampleDataTypeDAO sampleDataTypeDAO = getDAO(SampleDataType.class, SampleDataTypeDAO.class);
+ SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class);
+ SampleType sampleTypeSubsample = findByProperties(sampleTypeDAO, SampleType.PROPERTY_NAME, "Subsample");
+ Preconditions.checkNotNull(sampleTypeSubsample);
+
+ SampleDataType sampleDataTypeNumberAtLength = findByProperties(sampleDataTypeDAO, SampleDataType.PROPERTY_NAME, "NumberAtLength");
+ Preconditions.checkNotNull(sampleDataTypeNumberAtLength);
+ SampleDataType sampleDataTypeWeightAtLength = findByProperties(sampleDataTypeDAO, SampleDataType.PROPERTY_NAME, "WeightAtLengthkg");
+ Preconditions.checkNotNull(sampleDataTypeWeightAtLength);
+
Reader reader = getInputFileReader(inputFile);
try {
- Import<SampleDataImportModelRow> importer =
+ Import<SubSampleImportModelRow> importer =
Import.newImport(csvModel, reader);
- for (SampleDataImportModelRow row : importer) {
+ for (SubSampleImportModelRow row : importer) {
+ Operation operation = row.getOperation();
+
+
+ Species species = row.getSpecies();
+ SizeCategory sizeCategory = row.getSizeCategory();
+ SexCategory sexCategory = row.getSexCategory();
+
+ SpeciesCategory category = getSpeciesCategory(
+ speciesCategoryDAO,
+ species,
+ sizeCategory,
+ sexCategory
+ );
+
+ // find the sample with this category
+ Sample sample = operation.getSample(category, sampleTypeSubsample);
+
+ if (sample == null) {
+
+ // must create it
+ sample = row.getSample();
+
+ sample.setSpeciesCategory(category);
+ sample.setSampleType(sampleTypeSubsample);
+
+ sample = create(sampleDAO, sample);
+
+ operation.addSample(sample);
+
+ importResult.incrementsNumberUpdated();
+ }
+
+ //create numberAtLength data
+ addSampleData(sampleDataDAO,
+ sampleDataTypeNumberAtLength,
+ "" + row.getLengthClass(),
+ row.getNumberAtLength(),
+ sample);
+
+ if (row.getWeightAtLength() > 0) {
+
+ //create weightAtLength data
+ addSampleData(sampleDataDAO,
+ sampleDataTypeWeightAtLength,
+ "" + row.getLengthClass(),
+ row.getWeightAtLength(),
+ sample);
+ }
+ }
+
+ return importResult;
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(getLocale(), inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
+ }
+
+ private CsvImportResult importBiometrySampleFile(InputFile inputFile,
+ Map<String, Operation> operationMap,
+ Map<String, Species> speciesMap
+ ) throws ImportException {
+
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Sample,
+ inputFile.getFileName(),
+ false);
+
+ BiometrySampleImportModel csvModel = new BiometrySampleImportModel(getCsvSeparator());
+
+ SampleDAO sampleDAO = getDAO(Sample.class, SampleDAO.class);
+ SampleDataDAO sampleDataDAO = getDAO(SampleData.class, SampleDataDAO.class);
+ SampleTypeDAO sampleTypeDAO = getDAO(SampleType.class, SampleTypeDAO.class);
+
+ SampleType sampleTypeIndividual = findByProperties(sampleTypeDAO, SampleType.PROPERTY_NAME, "Individual");
+ Preconditions.checkNotNull(sampleTypeIndividual);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<BiometrySampleImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (BiometrySampleImportModelRow row : importer) {
+
//TODO
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
+ private SampleData addSampleData(SampleDataDAO dao,
+ SampleDataType sampleDataType,
+ String label,
+ float value,
+ Sample sample) {
+ SampleData sampleData = create(dao);
+ sampleData.setSampleDataType(sampleDataType);
+ sampleData.setDataValue(value);
+ sampleData.setDataLabel(label);
+ sample.addSampleData(sampleData);
+ return sampleData;
+ }
+
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -28,6 +28,7 @@
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.data.Transect;
import fr.ifremer.echobase.entities.data.TransectDAO;
@@ -52,10 +53,12 @@
import org.nuiton.util.csv.ImportRuntimeException;
import java.io.Reader;
+import java.util.Arrays;
import java.util.Date;
import java.util.Map;
import static org.nuiton.i18n.I18n._;
+import static org.nuiton.i18n.I18n.l_;
/**
* Service to launch a "common data" import.
@@ -66,9 +69,15 @@
public class CommonDataImportService extends AbstractImportDataService<CommonDataImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(CommonDataImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.CommonData.getI18nKey());
+ }
+ @Override
+ protected Map<InputFile, CsvImportResult> startImport(
+ CommonDataImportConfiguration configuration,
+ EchoBaseUser user) throws ImportException {
+
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
CommonDataImportMode importMode = configuration.getImportMode();
@@ -85,32 +94,40 @@
getEntityById(AreaOfOperation.class,
configuration.getAreaOfOperationId());
- importVoyageFile(configuration.getVoyageFile(),
- mission,
- areaOfOperation,
- configuration.getVoyageDescription(),
- configuration.getDatum());
+ CsvImportResult voyageResult = importVoyageFile(
+ configuration.getVoyageFile(),
+ mission,
+ areaOfOperation,
+ configuration);
+ CsvImportResult transitResult = importTransitFile(
+ configuration.getTransitFile(),
+ configuration);
- importTransitFile(configuration.getTransitFile(),
- configuration.getTransitRelatedActivity());
+ CsvImportResult transectResult = importTransectFile(
+ configuration.getTransectFile(),
+ vessel,
+ configuration);
- importTransectFile(configuration.getTransectFile(),
- vessel,
- configuration);
+ addResultAndLog(result, configuration.getVoyageFile(), voyageResult, user);
+ addResultAndLog(result, configuration.getTransitFile(), transitResult, user);
+ addResultAndLog(result, configuration.getTransectFile(), transectResult, user);
+
}
break;
case TRANSECT: {
- importTransectFile(configuration.getTransectFile(),
- vessel,
- configuration);
+ CsvImportResult transectResult = importTransectFile(
+ configuration.getTransectFile(),
+ vessel,
+ configuration);
+
+ addResultAndLog(result, configuration.getTransectFile(), transectResult, user);
}
break;
}
- commitTransaction("Could not commit transaction of common data import");
return result;
}
@@ -138,12 +155,20 @@
}
}
- protected void importVoyageFile(InputFile inputFile,
- Mission mission,
- AreaOfOperation areaOfOperation,
- String voyageDescription,
- String datum) throws ImportException {
+ protected CsvImportResult importVoyageFile(
+ InputFile inputFile,
+ Mission mission,
+ AreaOfOperation areaOfOperation,
+ CommonDataImportConfiguration configuration) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Voyage,
+ inputFile.getFileName(),
+ false);
+
+ String voyageDescription = configuration.getVoyageDescription();
+ String datum = configuration.getDatum();
+
VoyageDAO dao = getDAO(Voyage.class, VoyageDAO.class);
ImportModel<Voyage> csvModel =
@@ -152,79 +177,127 @@
Reader reader = getInputFileReader(inputFile);
Import<Voyage> importer = Import.newImport(csvModel, reader);
+ Voyage newVoyage = null;
try {
for (Voyage voyage : importer) {
- Voyage createdVoyage = create(dao);
- createdVoyage.setMission(mission);
- createdVoyage.setAreaOfOperation(areaOfOperation);
- createdVoyage.setDescription(voyageDescription);
- createdVoyage.setDatum(datum);
- createdVoyage.setName(voyage.getName());
- createdVoyage.setStartDate(voyage.getStartDate());
- createdVoyage.setEndDate(voyage.getEndDate());
- createdVoyage.setStartPort(voyage.getStartPort());
- createdVoyage.setEndPort(voyage.getEndPort());
+ voyage.setMission(mission);
+ voyage.setAreaOfOperation(areaOfOperation);
+ voyage.setDescription(voyageDescription);
+ voyage.setDatum(datum);
+
+ Voyage createdVoyage = create(dao, voyage);
+ if (newVoyage == null) {
+ newVoyage = createdVoyage;
+ } else {
+ // this means a voyage file with more than one row not possible...
+
+ throw new ImportException(
+ _("echobase.importError.can.only.import.one.voyage.atime"));
+ }
+
+ importResult.incrementsNumberCreated();
}
+ if (newVoyage == null) {
+ throw new ImportException(
+ _("echobase.importError.no.voyage.imported"));
+ }
+
+ // push back to id of the voyage in configuration for next imports
+ configuration.setVoyageId(newVoyage.getTopiaId());
+
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importTransitFile(InputFile inputFile,
- String relatedActivity) throws ImportException {
+ protected CsvImportResult importTransitFile(
+ InputFile inputFile,
+ CommonDataImportConfiguration configuration) throws ImportException {
- Map<String, Voyage> voyageMap = getEntitiesMap(
- Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Voyage,
+ inputFile.getFileName(),
+ false);
- TransitImportModel csvModel = new TransitImportModel(getCsvSeparator(), voyageMap);
+ // get voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
+ // restrict voyage to use to this voyage
+ Map<String, Voyage> voyageMap = Maps.uniqueIndex(
+ Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME);
+
+ String relatedActivity = configuration.getTransitRelatedActivity();
+
+ TransitImportModel csvModel =
+ new TransitImportModel(getCsvSeparator(), voyageMap);
+
TransitDAO dao = getDAO(Transit.class, TransitDAO.class);
+
+ int nbTransits = 0;
+
Reader reader = getInputFileReader(inputFile);
try {
Import<TransitImportModelRow> importer =
Import.newImport(csvModel, reader);
for (TransitImportModelRow row : importer) {
- Voyage voyage = row.getVoyage();
+ Transit transit = row.getTransit();
- Transit transit = create(dao);
+ transit.setRelatedActivity(relatedActivity);
- transit.setDescription(row.getDescription());
- transit.setStartLocality(row.getStartLocality());
- transit.setEndLocality(row.getEndLocality());
+ Transit createdTransit = create(dao);
- transit.setStartTime(row.getStartTime());
- transit.setEndTime(row.getEndTime());
- transit.setRelatedActivity(relatedActivity);
- voyage.addTransit(transit);
+ voyage.addTransit(createdTransit);
+
+ importResult.incrementsNumberCreated();
}
+ if (nbTransits == 0) {
+ throw new ImportException(
+ _("echobase.importError.no.transit.imported"));
+ }
+
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- private void importTransectFile(InputFile inputFile,
- Vessel vessel,
- CommonDataImportConfiguration configuration
- ) throws ImportException {
+ private CsvImportResult importTransectFile(
+ InputFile inputFile,
+ Vessel vessel,
+ CommonDataImportConfiguration configuration) throws ImportException {
- Map<String, Voyage> voyageMap = getEntitiesMap(
- Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Voyage,
+ inputFile.getFileName(),
+ false);
+ // get voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
+
+ // restrict voyage to use to this voyage
+ Map<String, Voyage> voyageMap = Maps.uniqueIndex(
+ Arrays.asList(voyage), EchoBaseFunctions.VOYAGE_NAME);
+
String datum = configuration.getDatum();
String license = configuration.getTransectLicence();
- String geospatialVerticalPositive = configuration.getTransectGeospatialVerticalPositive();
+ String geospatialVerticalPositive =
+ configuration.getTransectGeospatialVerticalPositive();
String binUnitsPingAxis = configuration.getTransectBinUnitsPingAxis();
- TransectImportModel csvModel = new TransectImportModel(getCsvSeparator(), voyageMap);
+ TransectImportModel csvModel =
+ new TransectImportModel(getCsvSeparator(), voyageMap);
TransectDAO dao = getDAO(Transect.class, TransectDAO.class);
@@ -234,47 +307,36 @@
Import.newImport(csvModel, reader);
for (TransectImportModelRow row : importer) {
- Voyage voyage = row.getVoyage();
+ Transect transect = row.getTransect();
- Date timeCoverageStart = row.getTimeCoverageStart();
- Date timeCoverageEnd = row.getTimeCoverageEnd();
+ Date timeCoverageStart = transect.getTimeCoverageStart();
+ Date timeCoverageEnd = transect.getTimeCoverageEnd();
- Transit transit = voyage.getTransit(timeCoverageStart, timeCoverageEnd);
+ Transit transit = voyage.getTransit(timeCoverageStart,
+ timeCoverageEnd);
if (transit == null) {
throw new ImportException(
_("echobase.importError.no.transit.between.date",
voyage.getName(), timeCoverageStart, timeCoverageEnd));
}
- Transect transect = create(dao);
transect.setVessel(vessel);
- transect.setTitle(row.getTitle());
- transect.setTransectAbstract(row.getTransectAbstract());
- transect.setComment(row.getComment());
-
transect.setDatum(datum);
transect.setLicence(license);
- transect.setGeospatialVerticalPositive(geospatialVerticalPositive);
+ transect.setGeospatialVerticalPositive(
+ geospatialVerticalPositive);
transect.setBinUnitsPingAxis(binUnitsPingAxis);
- transect.setDateCreated(row.getDateCreated());
+ Transect createdTransect = create(dao, transect);
- transect.setTimeCoverageStart(timeCoverageStart);
- transect.setTimeCoverageEnd(timeCoverageEnd);
+ transit.addTransect(createdTransect);
+ importResult.incrementsNumberCreated();
+ }
- transect.setGeospatialLatMin(row.getGeospatialLatMin());
- transect.setGeospatialLonMin(row.getGeospatialLonMin());
- transect.setGeospatialVerticalMin(row.getGeospatialVerticalMin());
+ return importResult;
- transect.setGeospatialLatMax(row.getGeospatialLatMax());
- transect.setGeospatialLonMax(row.getGeospatialLonMax());
- transect.setGeospatialVerticalMax(row.getGeospatialVerticalMax());
- transect.setLinestring(row.getLinestring());
- transit.addTransect(transect);
- }
-
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -66,10 +66,10 @@
DbMeta dbMeta,
EchoBaseServiceFactory serviceFactory) {
return new DefaultEchoBaseServiceContext(locale,
- transaction,
- configuration,
- dbMeta,
- serviceFactory);
+ transaction,
+ configuration,
+ dbMeta,
+ serviceFactory);
}
protected DefaultEchoBaseServiceContext(Locale locale,
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -26,8 +26,10 @@
import fr.ifremer.echobase.InputFile;
import org.nuiton.util.csv.ImportRuntimeException;
-import static org.nuiton.i18n.I18n._;
+import java.util.Locale;
+import static org.nuiton.i18n.I18n.l_;
+
/**
* Exception when a import new data failed.
*
@@ -46,8 +48,9 @@
super(message, cause);
}
- public ImportException(InputFile inputfile, ImportRuntimeException importError) {
- this(_("echobase.importError.fromFile", inputfile.getFile(),
- importError.getMessage()), importError);
+ public ImportException(Locale locale, InputFile inputfile, ImportRuntimeException importError) {
+ this(l_(locale, "echobase.importError.fromFile",
+ inputfile.getFile().getName(),
+ importError.getMessage()), importError);
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -26,6 +26,7 @@
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.data.GearMetadataValue;
import fr.ifremer.echobase.entities.data.GearMetadataValueDAO;
@@ -35,6 +36,7 @@
import fr.ifremer.echobase.entities.data.OperationMetadataValueDAO;
import fr.ifremer.echobase.entities.data.Transect;
import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.references.DepthStratum;
import fr.ifremer.echobase.entities.references.Gear;
import fr.ifremer.echobase.entities.references.GearMetadata;
@@ -52,8 +54,12 @@
import java.io.Reader;
import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
import java.util.Map;
+import static org.nuiton.i18n.I18n.l_;
+
/**
* Service to launch a "operations" import.
*
@@ -63,53 +69,80 @@
public class OperationImportService extends AbstractImportDataService<OperationImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.Operation.getI18nKey());
+ }
+
+ @Override
+ protected Map<InputFile, CsvImportResult> startImport(
OperationImportConfiguration configuration,
EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
- // get selected transit
- Transit transit = getEntityById(Transit.class,
- configuration.getTransitId());
+ // get selected voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
// get selected vessel
Vessel vessel = getEntityById(Vessel.class,
configuration.getVesselId());
- // find out the correct transect to use
- Transect transect = transit.getTransect(vessel);
-
// authorize only to use this vessel in import files
Map<String, Vessel> vesselMap = Maps.uniqueIndex(
Arrays.asList(vessel), EchoBaseFunctions.VESSEL_NAME);
+ // get all gears by their gear code
Map<String, Gear> gearMap = getEntitiesMap(
- Gear.class, EchoBaseFunctions.GEAR_NAME);
+ Gear.class, EchoBaseFunctions.GEAR_GEAR_CODE);
- importOperationFile(configuration.getOperationFile(),
- transect,
- vesselMap,
- gearMap);
+ CsvImportResult nbOperations = importOperationFile(
+ configuration.getOperationFile(),
+ voyage,
+ vesselMap,
+ gearMap);
- importOperationMetadataFile(configuration.getOperationMetadataFile(),
- transect,
- vesselMap);
+ // get all operation for this voyage and this vessel
+ Collection<Operation> operations = voyage.getOperations(vessel);
- importGearMetadataFile(configuration.getGearMetadataFile(),
- transect,
- vesselMap,
- gearMap);
+ // split them by operation Id
+ Map<String, Operation> operationMap = Maps.uniqueIndex(
+ operations, EchoBaseFunctions.OPERATION_ID);
- commitTransaction("Could not commit transaction of operation import");
+ CsvImportResult nbOperationMetas = importOperationMetadataFile(
+ configuration.getOperationMetadataFile(),
+ vesselMap,
+ operationMap);
+
+ CsvImportResult nbGearMetas = importGearMetadataFile(
+ configuration.getGearMetadataFile(),
+ vesselMap,
+ gearMap,
+ operationMap);
+
+ addResultAndLog(result, configuration.getOperationFile(),
+ nbOperations, user);
+
+ addResultAndLog(result, configuration.getOperationMetadataFile(),
+ nbOperationMetas, user);
+
+ addResultAndLog(result, configuration.getGearMetadataFile(),
+ nbGearMetas, user);
+
return result;
}
- protected void importOperationFile(InputFile inputFile,
- Transect transect,
- Map<String, Vessel> vesselMap,
- Map<String, Gear> gearMap) throws ImportException {
+ protected CsvImportResult importOperationFile(
+ InputFile inputFile,
+ Voyage voyage,
+ Map<String, Vessel> vesselMap,
+ Map<String, Gear> gearMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Operation,
+ inputFile.getFileName(),
+ false);
+
Map<String, DepthStratum> depthStratumMap = getEntitiesMap(
DepthStratum.class, EchoBaseFunctions.DEPTH_STRATUM_ID);
@@ -128,36 +161,51 @@
for (OperationImportModelRow row : importer) {
- Operation operationToCreate = row.getOperation();
+ Vessel vessel = row.getVessel();
- Operation operation = create(dao, operationToCreate);
+ Operation operation = row.getOperation();
- transect.addOperation(operation);
+ Date startTime = operation.getGearShootingStartTime();
+ Date endTime = operation.getGearShootingEndTime();
+
+ Transit transit = voyage.getTransit(startTime, endTime);
+
+ Transect transect = transit.getTransect(vessel);
+
+ Operation createdOperation = create(dao, operation);
+
+ transect.addOperation(createdOperation);
+
+ importResult.incrementsNumberCreated();
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importOperationMetadataFile(InputFile inputFile,
- Transect transect,
- Map<String, Vessel> vesselMap) throws ImportException {
+ protected CsvImportResult importOperationMetadataFile(
+ InputFile inputFile,
+ Map<String, Vessel> vesselMap,
+ Map<String, Operation> operationMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.OperationMetadata,
+ inputFile.getFileName(),
+ false);
+
Map<String, OperationMetadata> operationMetadatasByName =
getEntitiesMap(OperationMetadata.class,
EchoBaseFunctions.OPERATION_METADATA_NAME);
- Map<String, Operation> operationById = Maps.uniqueIndex(
- transect.getOperation(), EchoBaseFunctions.OPERATION_ID);
-
OperationMetadataValueImportModel csvModel =
new OperationMetadataValueImportModel(getCsvSeparator(),
vesselMap,
operationMetadatasByName,
- operationById);
+ operationMap);
OperationMetadataValueDAO dao = getDAO(
OperationMetadataValue.class,
@@ -178,33 +226,37 @@
dao, operationMetadataValueToCreate);
operation.addOperationMetadataValue(operationMetadataValue);
-
+ importResult.incrementsNumberCreated();
}
-
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importGearMetadataFile(InputFile inputFile,
- Transect transect,
- Map<String, Vessel> vesselMap,
- Map<String, Gear> gearMap) throws ImportException {
+ protected CsvImportResult importGearMetadataFile(
+ InputFile inputFile,
+ Map<String, Vessel> vesselMap,
+ Map<String, Gear> gearMap,
+ Map<String, Operation> operationMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.GearMetadata,
+ inputFile.getFileName(),
+ false);
+
Map<String, GearMetadata> gearMetadatasByType =
- getEntitiesMap(GearMetadata.class, EchoBaseFunctions.GEAR_METADATA_TYPE);
+ getEntitiesMap(GearMetadata.class,
+ EchoBaseFunctions.GEAR_METADATA_NAME);
- Map<String, Operation> operationById = Maps.uniqueIndex(
- transect.getOperation(), EchoBaseFunctions.OPERATION_ID);
-
GearMetadataValueImportModel csvModel =
new GearMetadataValueImportModel(getCsvSeparator(),
vesselMap,
gearMetadatasByType,
gearMap,
- operationById);
+ operationMap);
GearMetadataValueDAO dao = getDAO(GearMetadataValue.class,
GearMetadataValueDAO.class);
@@ -224,11 +276,11 @@
dao, gearMetadataValuetoCreate);
operation.addGearMetadataValue(gearMetadataValue);
-
+ importResult.incrementsNumberCreated();
}
-
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -28,6 +28,7 @@
import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBasePredicates;
import fr.ifremer.echobase.InputFile;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.data.Cell;
import fr.ifremer.echobase.entities.data.CellDAO;
@@ -61,6 +62,8 @@
import java.util.Arrays;
import java.util.Map;
+import static org.nuiton.i18n.I18n.l_;
+
/**
* Service to launch a "results" import.
*
@@ -70,6 +73,11 @@
public class ResultsImportService extends AbstractImportDataService<ResultsImportConfiguration> {
@Override
+ protected String getImportLabel() {
+ return l_(getLocale(), ImportDataMode.Results.getI18nKey());
+ }
+
+ @Override
public Map<InputFile, CsvImportResult> startImport(ResultsImportConfiguration configuration, EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
@@ -92,42 +100,87 @@
if (configuration.canImportLengthAgeKeyFile()) {
- importLenthAgeKey(configuration.getLengthAgeKeyFile(),
- voyageMap,
- speciesMap
+ CsvImportResult importResult = importLenthAgeKey(
+ configuration.getLengthAgeKeyFile(),
+ voyageMap,
+ speciesMap
);
+
+
+ addResultAndLog(result, configuration.getLengthAgeKeyFile(),
+ importResult, user);
}
if (configuration.canImportLengthWeightKeyFile()) {
- importLenghtWeightKey(configuration.getLengthWeightKeyFile(),
- voyageMap,
- speciesMap
+ CsvImportResult importResult = importLenghtWeightKey(
+ configuration.getLengthWeightKeyFile(),
+ voyageMap,
+ speciesMap
);
+
+ addResultAndLog(result, configuration.getLengthWeightKeyFile(),
+ importResult, user);
}
if (configuration.canImportEchotypeFile()) {
- importEchotypeFile(configuration.getEchotypeFile(),
- voyageMap,
- speciesMap
+ CsvImportResult importResult = importEchotypeFile(
+ configuration.getEchotypeFile(),
+ voyageMap,
+ speciesMap
);
+
+ addResultAndLog(result, configuration.getEchotypeFile(),
+ importResult, user);
}
break;
+
+ case REGION:
+
+ if (configuration.canImportRegionsFile()) {
+ CsvImportResult importResult = importRegionsFile(
+ configuration.getRegionsFile());
+
+ addResultAndLog(result, configuration.getRegionsFile(),
+ importResult, user);
+ }
+ if (configuration.canImportAssociationFile()) {
+ CsvImportResult importResult = importRegionAssociationFile(
+ configuration.getAssociationFile());
+
+ addResultAndLog(result, configuration.getAssociationFile(),
+ importResult, user);
+ }
+ break;
+
case ACOUSTIC:
if (configuration.canImportRegionsFile()) {
- importRegionsFile(configuration.getRegionsFile());
+ CsvImportResult importResult = importRegionsFile(
+ configuration.getRegionsFile());
+
+ addResultAndLog(result, configuration.getRegionsFile(),
+ importResult, user);
}
if (configuration.canImportAssociationFile()) {
- importAssociationFile(configuration.getAssociationFile());
+ CsvImportResult importResult = importRegionAssociationFile(
+ configuration.getAssociationFile());
+
+ addResultAndLog(result, configuration.getAssociationFile(),
+ importResult, user);
}
break;
}
return result;
}
- protected void importRegionsFile(InputFile inputFile) throws ImportException {
+ protected CsvImportResult importRegionsFile(InputFile inputFile) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Cell,
+ inputFile.getFileName(),
+ false);
+
RegionCellImportModel csvModel = new RegionCellImportModel(
serviceContext.getConfiguration().getCsvSeparator());
@@ -142,19 +195,25 @@
//TODO
+ importResult.incrementsNumberCreated();
}
-
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importAssociationFile(InputFile inputFile) throws ImportException {
+ protected CsvImportResult importRegionAssociationFile(InputFile inputFile) throws ImportException {
RegionCellAssociationImportModel csvModel = new RegionCellAssociationImportModel(
serviceContext.getConfiguration().getCsvSeparator());
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Cell,
+ inputFile.getFileName(),
+ false);
+
CellDAO dao = getDAO(Cell.class, CellDAO.class);
Reader reader = getInputFileReader(inputFile);
@@ -166,19 +225,26 @@
//TODO
+ importResult.incrementsNumberUpdated();
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importLenghtWeightKey(InputFile inputFile,
- Map<String, Voyage> voyageMap,
- Map<String, Species> speciesMap) throws ImportException {
+ protected CsvImportResult importLenghtWeightKey(InputFile inputFile,
+ Map<String, Voyage> voyageMap,
+ Map<String, Species> speciesMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.LengthWeightKey,
+ inputFile.getFileName(),
+ false);
+
Map<String, SizeCategory> sizeCategoryMap = getEntitiesMap(
SizeCategory.class,
EchoBaseFunctions.SIZE_CATEGORY_NAME);
@@ -216,38 +282,37 @@
SizeCategory sizeCategory = row.getSizeCategory();
// find speciesCategory
- SpeciesCategory speciesCategory = findByProperties(
+ SpeciesCategory speciesCategory = getSpeciesCategory(
speciesCategoryDAO,
- SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
- SpeciesCategory.PROPERTY_SPECIES, species
+ species, sizeCategory,
+ null
);
- if (speciesCategory == null) {
-
- // not found, creates it
- speciesCategory = create(speciesCategoryDAO,
- SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
- SpeciesCategory.PROPERTY_SPECIES, species
- );
- }
-
lengthWeightKey.setSpeciesCategory(speciesCategory);
// attach it to voyage
voyage.addLengthWeightKey(lengthWeightKey);
+
+ importResult.incrementsNumberCreated();
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- protected void importLenthAgeKey(InputFile inputFile,
- Map<String, Voyage> voyageMap,
- Map<String, Species> speciesMap) throws ImportException {
+ protected CsvImportResult importLenthAgeKey(InputFile inputFile,
+ Map<String, Voyage> voyageMap,
+ Map<String, Species> speciesMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.LengthAgeKey,
+ inputFile.getFileName(),
+ false);
+
Map<String, Strata> strataMap = getEntitiesMap(
Strata.class, EchoBaseFunctions.STRATA_BY_NAME);
@@ -274,19 +339,25 @@
// attach it to voyage
voyage.addLengthAgeKey(lengthAgeKey);
+ importResult.incrementsNumberCreated();
}
-
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
}
- private void importEchotypeFile(InputFile inputFile,
- Map<String, Voyage> voyageMap,
- Map<String, Species> speciesMap) throws ImportException {
+ private CsvImportResult importEchotypeFile(InputFile inputFile,
+ Map<String, Voyage> voyageMap,
+ Map<String, Species> speciesMap) throws ImportException {
+ CsvImportResult importResult = new CsvImportResult(
+ EchoBaseEntityEnum.Echotype,
+ inputFile.getFileName(),
+ false);
+
Map<String, DepthStratum> depthStratumMap = getEntitiesMap(
DepthStratum.class,
EchoBaseFunctions.DEPTH_STRATUM_ID);
@@ -336,6 +407,11 @@
// attach it to voyage
voyage.addEchotype(echotype);
+
+ importResult.incrementsNumberCreated();
+ } else {
+
+ importResult.incrementsNumberUpdated();
}
Species species = row.getSpecies();
@@ -349,8 +425,9 @@
}
}
+ return importResult;
} catch (ImportRuntimeException e) {
- throw new ImportException(inputFile, e);
+ throw new ImportException(getLocale(), inputFile, e);
} finally {
closeReader(reader, inputFile);
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AccousticDataImportConfiguration.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -42,9 +42,6 @@
/** Selected voyage id where to import datas. */
protected String voyageId;
- /** Selected transit id where to import datas. */
- protected String transitId;
-
/** Selected vessel id to find out transect where to import datas. */
protected String vesselId;
@@ -115,15 +112,6 @@
this.voyageId = voyageId;
}
-
- public String getTransitId() {
- return transitId;
- }
-
- public void setTransitId(String transitId) {
- this.transitId = transitId;
- }
-
public String getVesselId() {
return vesselId;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/CatchesDataImportConfiguration.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -45,17 +45,22 @@
/** Selected vessel id to find out transect where to import datas. */
protected String vesselId;
- /** Station file to import. */
- protected final InputFile sampleFile;
+ /** Sample file to import. */
+ protected final InputFile totalSampleFile;
- /** Tri file to import. */
- protected final InputFile sampleDataFile;
+ /** Sub sample file to import. */
+ protected final InputFile subSampleFile;
+ /** Biometry sample file to import. */
+ protected final InputFile biometrySampleFile;
+
public CatchesDataImportConfiguration(Locale locale) {
- sampleFile = InputFile.newFile(
- l_(locale, "echobase.common.sampleFile"));
- sampleDataFile = InputFile.newFile(
- l_(locale, "echobase.common.sampleDatafile"));
+ totalSampleFile = InputFile.newFile(
+ l_(locale, "echobase.common.totalSampleFile"));
+ subSampleFile = InputFile.newFile(
+ l_(locale, "echobase.common.subSampleFile"));
+ biometrySampleFile = InputFile.newFile(
+ l_(locale, "echobase.common.biometrySampleFile"));
}
public String getVoyageId() {
@@ -74,16 +79,20 @@
this.vesselId = vesselId;
}
- public InputFile getSampleFile() {
- return sampleFile;
+ public InputFile getTotalSampleFile() {
+ return totalSampleFile;
}
- public InputFile getSampleDataFile() {
- return sampleDataFile;
+ public InputFile getSubSampleFile() {
+ return subSampleFile;
}
+ public InputFile getBiometrySampleFile() {
+ return biometrySampleFile;
+ }
+
@Override
public InputFile[] getInputFiles() {
- return new InputFile[]{sampleFile, sampleDataFile};
+ return new InputFile[]{totalSampleFile, subSampleFile, biometrySampleFile};
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -42,9 +42,6 @@
/** Selected voyage id where to import datas. */
protected String voyageId;
- /** Selected transit id where to import datas. */
- protected String transitId;
-
/** Selected vessel to use for transect. */
protected String vesselId;
@@ -74,14 +71,6 @@
this.voyageId = voyageId;
}
- public String getTransitId() {
- return transitId;
- }
-
- public void setTransitId(String transitId) {
- this.transitId = transitId;
- }
-
public String getVesselId() {
return vesselId;
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/ResultsImportMode.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/ResultsImportMode.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/ResultsImportMode.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -38,6 +38,9 @@
/** Import results at voyage level. */
VOYAGE(n_("echobase.common.resultsImportMode.voyage")),
+ /** Import Regions. */
+ REGION(n_("echobase.common.resultsImportMode.region")),
+
/** Import acoustic results. */
ACOUSTIC(n_("echobase.common.resultsImportMode.acoustic"));
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,44 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+import fr.ifremer.echobase.entities.data.Sample;
+
+/**
+ * Model to import {@link Sample} of total biometry.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class BiometrySampleImportModel extends CsvModelUtil.AbstractImportModel<BiometrySampleImportModelRow> {
+
+ public BiometrySampleImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public BiometrySampleImportModelRow newEmptyInstance() {
+ return new BiometrySampleImportModelRow();
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,33 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+/**
+ * Bean used as a row for import of {@link BiometrySampleImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class BiometrySampleImportModelRow {
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/BiometrySampleImportModelRow.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -63,8 +63,8 @@
newMandatoryColumn("gearName", Operation.PROPERTY_GEAR, CsvModelUtil.newForeignKeyValue(Gear.class, gearMap));
newMandatoryColumn("depthStratumID", Operation.PROPERTY_DEPTH_STRATUM, CsvModelUtil.newForeignKeyValue(DepthStratum.class, depthStratumMap));
newMandatoryColumn(Operation.PROPERTY_ID);
- newMandatoryColumn(Operation.PROPERTY_MID_HAULE_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(Operation.PROPERTY_MID_HAULE_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Operation.PROPERTY_MID_HAUL_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_TIME, CsvModelUtil.DAY_TIME_SECOND);
newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_TIME, CsvModelUtil.DAY_TIME_SECOND);
newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -91,11 +91,11 @@
}
public void setMidHauleLatitude(float midHauleLatitude) {
- operation.setMidHauleLatitude(midHauleLatitude);
+ operation.setMidHaulLatitude(midHauleLatitude);
}
public void setMidHauleLongitude(float midHauleLongitude) {
- operation.setMidHauleLongitude(midHauleLongitude);
+ operation.setMidHaulLongitude(midHauleLongitude);
}
public void setDepthStratum(DepthStratum depthStratum) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,9 +23,6 @@
*/
package fr.ifremer.echobase.services.csv;
-import fr.ifremer.echobase.entities.data.Cell;
-import fr.ifremer.echobase.entities.data.CellImpl;
-
/**
* Bean used as a row for import of {@link RegionCellAssociationImportModel}.
*
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,44 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services.csv;
-
-import fr.ifremer.echobase.entities.data.SampleData;
-
-/**
- * Model to import {@link SampleData}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class SampleDataImportModel extends CsvModelUtil.AbstractImportModel<SampleDataImportModelRow> {
-
- public SampleDataImportModel(char separator) {
- super(separator);
- }
-
- @Override
- public SampleDataImportModelRow newEmptyInstance() {
- return new SampleDataImportModelRow();
- }
-}
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,38 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services.csv;
-
-/**
- * Bean used as a row for import of {@link SampleDataImportModel}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class SampleDataImportModelRow {
-
-
- public SampleDataImportModelRow() {
- }
-
-}
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,44 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services.csv;
-
-import fr.ifremer.echobase.entities.data.Sample;
-
-/**
- * Model to import {@link Sample}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class SampleImportModel extends CsvModelUtil.AbstractImportModel<SampleImportModelRow> {
-
- public SampleImportModel(char separator) {
- super(separator);
- }
-
- @Override
- public SampleImportModelRow newEmptyInstance() {
- return new SampleImportModelRow();
- }
-}
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,38 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services.csv;
-
-/**
- * Bean used as a row for import of {@link SampleImportModel}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class SampleImportModelRow {
-
-
- public SampleImportModelRow() {
- }
-
-}
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java (from rev 307, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,87 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleData;
+import fr.ifremer.echobase.entities.references.SexCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+
+import java.util.Map;
+
+/**
+ * Model to import {@link SampleData}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class SubSampleImportModel extends CsvModelUtil.AbstractImportModel<SubSampleImportModelRow> {
+
+
+ public SubSampleImportModel(char separator,
+ Map<String, Operation> operationMap,
+ Map<String, Species> speciesMap,
+ Map<String, SizeCategory> sizeCategoryMap,
+ Map<String, SexCategory> sexCategoryMap) {
+ super(separator);
+
+ /*
+ operationID
+ subHaul
+ baracoudacode
+ sizeCategory
+ sexCategory
+ sampleWeight
+ numberSampled
+
+ numberAtLength
+ weightAtLength
+ units
+ round
+ */
+
+ newIgnoredColumn("subHaul");
+ newIgnoredColumn("units");
+ newIgnoredColumn("round");
+
+ newMandatoryColumn("operationID", SubSampleImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
+ newMandatoryColumn("baracoudacode", SubSampleImportModelRow.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap));
+ newMandatoryColumn(SubSampleImportModelRow.PROPERTY_SIZE_CATEGORY, CsvModelUtil.newForeignKeyValue(SizeCategory.class, sizeCategoryMap));
+ newMandatoryColumn(SubSampleImportModelRow.PROPERTY_SEX_CATEGORY, CsvModelUtil.newForeignKeyValue(SexCategory.class, sexCategoryMap));
+
+ newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_FLOAT);
+
+ newMandatoryColumn(SubSampleImportModelRow.PROPERTY_NUMBER_AT_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(SubSampleImportModelRow.PROPERTY_WEIGHT_AT_LENGTH, CsvModelUtil.FLOAT);
+ newMandatoryColumn(SubSampleImportModelRow.PROPERTY_LENGTH_CLASS);
+ }
+
+ @Override
+ public SubSampleImportModelRow newEmptyInstance() {
+ return new SubSampleImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModelRow.java (from rev 307, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,145 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleImpl;
+import fr.ifremer.echobase.entities.references.SexCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+
+/**
+ * Bean used as a row for import of {@link SubSampleImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class SubSampleImportModelRow {
+
+
+ public static final String PROPERTY_OPERATION = "operation";
+
+ public static final String PROPERTY_SPECIES = "species";
+
+ public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory";
+
+ public static final String PROPERTY_SEX_CATEGORY = "sexCategory";
+
+ public static final String PROPERTY_SAMPLE = "sample";
+
+ public static final String PROPERTY_NUMBER_AT_LENGTH = "numberAtLength";
+
+ public static final String PROPERTY_WEIGHT_AT_LENGTH = "weightAtLength";
+
+ public static final String PROPERTY_LENGTH_CLASS = "lengthClass";
+
+ protected Operation operation;
+
+ protected Species species;
+
+ protected SizeCategory sizeCategory;
+
+ protected SexCategory sexCategory;
+
+ protected final Sample sample;
+
+ protected float numberAtLength;
+
+ protected float weightAtLength;
+
+ protected String lengthClass;
+
+ public SubSampleImportModelRow() {
+ sample = new SampleImpl();
+ }
+
+ public Sample getSample() {
+ return sample;
+ }
+
+ public Operation getOperation() {
+ return operation;
+ }
+
+ public void setOperation(Operation operation) {
+ this.operation = operation;
+ }
+
+ public Species getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(Species species) {
+ this.species = species;
+ }
+
+ public SizeCategory getSizeCategory() {
+ return sizeCategory;
+ }
+
+ public void setSizeCategory(SizeCategory sizeCategory) {
+ this.sizeCategory = sizeCategory;
+ }
+
+ public void setNumberSampled(Integer numberSampled) {
+ sample.setNumberSampled(numberSampled);
+ }
+
+ public void setSampleWeight(Float sampleWeight) {
+ sample.setSampleWeight(sampleWeight);
+ }
+
+ public SexCategory getSexCategory() {
+ return sexCategory;
+ }
+
+ public void setSexCategory(SexCategory sexCategory) {
+ this.sexCategory = sexCategory;
+ }
+
+ public float getNumberAtLength() {
+ return numberAtLength;
+ }
+
+ public void setNumberAtLength(float numberAtLength) {
+ this.numberAtLength = numberAtLength;
+ }
+
+ public float getWeightAtLength() {
+ return weightAtLength;
+ }
+
+ public void setWeightAtLength(float weightAtLength) {
+ this.weightAtLength = weightAtLength;
+ }
+
+ public String getLengthClass() {
+ return lengthClass;
+ }
+
+ public void setLengthClass(String lengthClass) {
+ this.lengthClass = lengthClass;
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SubSampleImportModelRow.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java (from rev 307, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,77 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+
+import java.util.Map;
+
+/**
+ * Model to import {@link Sample} of total type.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class TotalSampleImportModel extends CsvModelUtil.AbstractImportModel<TotalSampleImportModelRow> {
+
+ public TotalSampleImportModel(char separator,
+ Map<String, Operation> operationMap,
+ Map<String, Species> speciesMap,
+ Map<String, SizeCategory> sizeCategoryMap) {
+ super(separator);
+
+ /*
+ operationID
+ baracoudacode
+ sizeCategory
+ sampleWeight
+ numberSampled
+ meanLength
+ meanWeight
+ noPerKg
+ sortedWeight
+ */
+
+ newMandatoryColumn("operationID", TotalSampleImportModelRow.PROPERTY_OPERATION, CsvModelUtil.newForeignKeyValue(Operation.class, operationMap));
+ newMandatoryColumn("baracoudacode", TotalSampleImportModelRow.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap));
+ newMandatoryColumn(TotalSampleImportModelRow.PROPERTY_SIZE_CATEGORY, CsvModelUtil.newForeignKeyValue(SizeCategory.class, sizeCategoryMap));
+
+ newMandatoryColumn(Sample.PROPERTY_SAMPLE_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Sample.PROPERTY_NUMBER_SAMPLED, CsvModelUtil.PRIMITIVE_FLOAT);
+
+ newMandatoryColumn("meanLength", TotalSampleImportModelRow.PROPERTY_MEAN_LENGTH, CsvModelUtil.FLOAT);
+ newMandatoryColumn("meanWeight", TotalSampleImportModelRow.PROPERTY_MEAN_WEIGHT, CsvModelUtil.FLOAT);
+ newMandatoryColumn("noPerKg", TotalSampleImportModelRow.PROPERTY_NO_PER_KG, CsvModelUtil.FLOAT);
+ newMandatoryColumn("sortedWeight", TotalSampleImportModelRow.PROPERTY_SORTED_WEIGHT, CsvModelUtil.PRIMITIVE_FLOAT);
+
+ }
+
+ @Override
+ public TotalSampleImportModelRow newEmptyInstance() {
+ return new TotalSampleImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModelRow.java (from rev 307, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,143 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services.csv;
+
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleImpl;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+
+/**
+ * Bean used as a row for import of {@link TotalSampleImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class TotalSampleImportModelRow {
+
+ public static final String PROPERTY_OPERATION = "operation";
+
+ public static final String PROPERTY_SPECIES = "species";
+
+ public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory";
+
+ public static final String PROPERTY_SAMPLE = "sample";
+
+ public static final String PROPERTY_MEAN_LENGTH = "meanLength";
+
+ public static final String PROPERTY_MEAN_WEIGHT = "meanWeight";
+
+ public static final String PROPERTY_NO_PER_KG = "noPerKg";
+
+ public static final String PROPERTY_SORTED_WEIGHT = "sortedWeight";
+
+ protected Float meanLength;
+
+ protected Float meanWeight;
+
+ protected Float noPerKg;
+
+ protected float sortedWeight;
+
+ protected Operation operation;
+
+ protected Species species;
+
+ protected SizeCategory sizeCategory;
+
+ protected final Sample sample;
+
+ public TotalSampleImportModelRow() {
+ sample = new SampleImpl();
+ }
+
+ public Sample getSample() {
+ return sample;
+ }
+
+ public Operation getOperation() {
+ return operation;
+ }
+
+ public void setOperation(Operation operation) {
+ this.operation = operation;
+ }
+
+ public Species getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(Species species) {
+ this.species = species;
+ }
+
+ public SizeCategory getSizeCategory() {
+ return sizeCategory;
+ }
+
+ public void setSizeCategory(SizeCategory sizeCategory) {
+ this.sizeCategory = sizeCategory;
+ }
+
+ public void setNumberSampled(Integer numberSampled) {
+ sample.setNumberSampled(numberSampled);
+ }
+
+ public void setSampleWeight(Float sampleWeight) {
+ sample.setSampleWeight(sampleWeight);
+ }
+
+ public Float getMeanLength() {
+ return meanLength;
+ }
+
+ public void setMeanLength(Float meanLength) {
+ this.meanLength = meanLength;
+ }
+
+ public Float getMeanWeight() {
+ return meanWeight;
+ }
+
+ public void setMeanWeight(Float meanWeight) {
+ this.meanWeight = meanWeight;
+ }
+
+ public Float getNoPerKg() {
+ return noPerKg;
+ }
+
+ public void setNoPerKg(Float noPerKg) {
+ this.noPerKg = noPerKg;
+ }
+
+ public float getSortedWeight() {
+ return sortedWeight;
+ }
+
+ public void setSortedWeight(float sortedWeight) {
+ this.sortedWeight = sortedWeight;
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TotalSampleImportModelRow.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Transect;
import fr.ifremer.echobase.entities.data.Voyage;
import java.util.Map;
@@ -35,29 +36,29 @@
*/
public class TransectImportModel extends CsvModelUtil.AbstractImportModel<TransectImportModelRow> {
- protected final Map<String, Voyage> voyageMap;
-
public TransectImportModel(char separator,
Map<String, Voyage> voyageMap) {
super(separator);
- this.voyageMap = voyageMap;
- newMandatoryColumn(TransectImportModelRow.PROPERTY_TITLE);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_TRANSECT_ABSTRACT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_STRATUM);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_COMMENT);
- newMandatoryColumn("voyageName", TransectImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap));
+ newMandatoryColumn(
+ "voyageName", TransectImportModelRow.PROPERTY_VOYAGE,
+ CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap));
- newMandatoryColumn(TransectImportModelRow.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY_TIME2);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.IMPORT_DAY_TIME2);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.IMPORT_DAY_TIME2);
+ newMandatoryColumn(Transect.PROPERTY_TITLE);
+ newMandatoryColumn(Transect.PROPERTY_TRANSECT_ABSTRACT);
+ newMandatoryColumn(Transect.PROPERTY_STRATUM);
+ newMandatoryColumn(Transect.PROPERTY_COMMENT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(TransectImportModelRow.PROPERTY_LINESTRING);
+ newMandatoryColumn(Transect.PROPERTY_DATE_CREATED, CsvModelUtil.IMPORT_DAY_TIME2);
+ newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_START, CsvModelUtil.IMPORT_DAY_TIME2);
+ newMandatoryColumn(Transect.PROPERTY_TIME_COVERAGE_END, CsvModelUtil.IMPORT_DAY_TIME2);
+
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MIN, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LON_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_LAT_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_GEOSPATIAL_VERTICAL_MAX, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Transect.PROPERTY_LINESTRING);
}
@Override
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransectImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,6 +23,8 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.TransectImpl;
import fr.ifremer.echobase.entities.data.Voyage;
import java.io.Serializable;
@@ -40,104 +42,18 @@
public static final String PROPERTY_VOYAGE = "voyage";
- public static final String PROPERTY_TITLE = "title";
-
- public static final String PROPERTY_TRANSECT_ABSTRACT = "transectAbstract";
-
- public static final String PROPERTY_COMMENT = "comment";
-
- public static final String PROPERTY_DATE_CREATED = "dateCreated";
-
- public static final String PROPERTY_GEOSPATIAL_LON_MIN = "geospatialLonMin";
-
- public static final String PROPERTY_GEOSPATIAL_LON_MAX = "geospatialLonMax";
-
- public static final String PROPERTY_GEOSPATIAL_LAT_MIN = "geospatialLatMin";
-
- public static final String PROPERTY_GEOSPATIAL_LAT_MAX = "geospatialLatMax";
-
- public static final String PROPERTY_LINESTRING = "linestring";
-
- public static final String PROPERTY_GEOSPATIAL_VERTICAL_MIN = "geospatialVerticalMin";
-
- public static final String PROPERTY_GEOSPATIAL_VERTICAL_MAX = "geospatialVerticalMax";
-
- public static final String PROPERTY_TIME_COVERAGE_START = "timeCoverageStart";
-
- public static final String PROPERTY_TIME_COVERAGE_END = "timeCoverageEnd";
-
- public static final String PROPERTY_STRATUM = "stratum";
-
- protected String title;
-
- protected String transectAbstract;
-
- protected String stratum;
-
- protected String comment;
-
- protected String linestring;
-
protected Voyage voyage;
- protected Date dateCreated;
+ protected Transect transect;
- protected Date timeCoverageStart;
-
- protected Date timeCoverageEnd;
-
- protected float geospatialLonMin;
-
- protected float geospatialLonMax;
-
- protected float geospatialLatMin;
-
- protected float geospatialLatMax;
-
- protected float geospatialVerticalMin;
-
- protected float geospatialVerticalMax;
-
- public String getTitle() {
- return title;
+ public TransectImportModelRow() {
+ transect = new TransectImpl();
}
- public void setTitle(String title) {
- this.title = title;
+ public Transect getTransect() {
+ return transect;
}
- public String getTransectAbstract() {
- return transectAbstract;
- }
-
- public void setTransectAbstract(String transectAbstract) {
- this.transectAbstract = transectAbstract;
- }
-
- public String getStratum() {
- return stratum;
- }
-
- public void setStratum(String stratum) {
- this.stratum = stratum;
- }
-
- public String getComment() {
- return comment;
- }
-
- public void setComment(String comment) {
- this.comment = comment;
- }
-
- public String getLinestring() {
- return linestring;
- }
-
- public void setLinestring(String linestring) {
- this.linestring = linestring;
- }
-
public Voyage getVoyage() {
return voyage;
}
@@ -146,75 +62,59 @@
this.voyage = voyage;
}
- public Date getDateCreated() {
- return dateCreated;
+ public void setTitle(String title) {
+ transect.setTitle(title);
}
- public void setDateCreated(Date dateCreated) {
- this.dateCreated = dateCreated;
+ public void setTransectAbstract(String transectAbstract) {
+ transect.setTransectAbstract(transectAbstract);
}
- public Date getTimeCoverageStart() {
- return timeCoverageStart;
+ public void setComment(String comment) {
+ transect.setComment(comment);
}
- public void setTimeCoverageStart(Date timeCoverageStart) {
- this.timeCoverageStart = timeCoverageStart;
+ public void setDateCreated(Date dateCreated) {
+ transect.setDateCreated(dateCreated);
}
- public Date getTimeCoverageEnd() {
- return timeCoverageEnd;
- }
-
- public void setTimeCoverageEnd(Date timeCoverageEnd) {
- this.timeCoverageEnd = timeCoverageEnd;
- }
-
- public float getGeospatialLonMin() {
- return geospatialLonMin;
- }
-
public void setGeospatialLonMin(float geospatialLonMin) {
- this.geospatialLonMin = geospatialLonMin;
+ transect.setGeospatialLonMin(geospatialLonMin);
}
- public float getGeospatialLonMax() {
- return geospatialLonMax;
- }
-
public void setGeospatialLonMax(float geospatialLonMax) {
- this.geospatialLonMax = geospatialLonMax;
+ transect.setGeospatialLonMax(geospatialLonMax);
}
- public float getGeospatialLatMin() {
- return geospatialLatMin;
+ public void setGeospatialLatMin(float geospatialLatMin) {
+ transect.setGeospatialLatMin(geospatialLatMin);
}
- public void setGeospatialLatMin(float geospatialLatMin) {
- this.geospatialLatMin = geospatialLatMin;
+ public void setGeospatialLatMax(float geospatialLatMax) {
+ transect.setGeospatialLatMax(geospatialLatMax);
}
- public float getGeospatialLatMax() {
- return geospatialLatMax;
+ public void setLinestring(String linestring) {
+ transect.setLinestring(linestring);
}
- public void setGeospatialLatMax(float geospatialLatMax) {
- this.geospatialLatMax = geospatialLatMax;
+ public void setGeospatialVerticalMin(float geospatialVerticalMin) {
+ transect.setGeospatialVerticalMin(geospatialVerticalMin);
}
- public float getGeospatialVerticalMin() {
- return geospatialVerticalMin;
+ public void setGeospatialVerticalMax(float geospatialVerticalMax) {
+ transect.setGeospatialVerticalMax(geospatialVerticalMax);
}
- public void setGeospatialVerticalMin(float geospatialVerticalMin) {
- this.geospatialVerticalMin = geospatialVerticalMin;
+ public void setTimeCoverageStart(Date timeCoverageStart) {
+ transect.setTimeCoverageStart(timeCoverageStart);
}
- public float getGeospatialVerticalMax() {
- return geospatialVerticalMax;
+ public void setTimeCoverageEnd(Date timeCoverageEnd) {
+ transect.setTimeCoverageEnd(timeCoverageEnd);
}
- public void setGeospatialVerticalMax(float geospatialVerticalMax) {
- this.geospatialVerticalMax = geospatialVerticalMax;
+ public void setStratum(String stratum) {
+ transect.setStratum(stratum);
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModel.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,6 +23,7 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Transit;
import fr.ifremer.echobase.entities.data.Voyage;
import java.util.Map;
@@ -37,18 +38,15 @@
public static final String TRANSIT_VoyageId = "voyageName";
- protected final Map<String, Voyage> voyageMap;
-
public TransitImportModel(char separator,
Map<String, Voyage> voyageMap) {
super(separator);
- this.voyageMap = voyageMap;
newMandatoryColumn("voyageName", TransitImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap));
- newMandatoryColumn(TransitImportModelRow.PROPERTY_DESCRIPTION);
- newMandatoryColumn(TransitImportModelRow.PROPERTY_START_TIME, CsvModelUtil.DAY_TIME);
- newMandatoryColumn(TransitImportModelRow.PROPERTY_END_TIME, CsvModelUtil.DAY_TIME);
- newMandatoryColumn(TransitImportModelRow.PROPERTY_START_LOCALITY);
- newMandatoryColumn(TransitImportModelRow.PROPERTY_END_LOCALITY);
+ newMandatoryColumn(Transit.PROPERTY_DESCRIPTION);
+ newMandatoryColumn(Transit.PROPERTY_START_TIME, CsvModelUtil.DAY_TIME);
+ newMandatoryColumn(Transit.PROPERTY_END_TIME, CsvModelUtil.DAY_TIME);
+ newMandatoryColumn(Transit.PROPERTY_START_LOCALITY);
+ newMandatoryColumn(Transit.PROPERTY_END_LOCALITY);
}
@Override
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services.csv;
import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.TransitImpl;
import fr.ifremer.echobase.entities.data.Voyage;
import java.util.Date;
@@ -38,18 +39,10 @@
public static final String PROPERTY_VOYAGE = "voyage";
- public static final String PROPERTY_DESCRIPTION = Transit.PROPERTY_DESCRIPTION;
-
- public static final String PROPERTY_START_TIME = Transit.PROPERTY_START_TIME;
-
- public static final String PROPERTY_END_TIME = Transit.PROPERTY_END_TIME;
-
- public static final String PROPERTY_START_LOCALITY = Transit.PROPERTY_START_LOCALITY;
-
- public static final String PROPERTY_END_LOCALITY = Transit.PROPERTY_END_LOCALITY;
-
protected Voyage voyage;
+ protected final Transit transit;
+
protected String description;
protected String relatedActivity;
@@ -62,6 +55,14 @@
protected String endLocality;
+ public TransitImportModelRow() {
+ transit = new TransitImpl();
+ }
+
+ public Transit getTransit() {
+ return transit;
+ }
+
public Voyage getVoyage() {
return voyage;
}
@@ -70,51 +71,23 @@
this.voyage = voyage;
}
- public String getDescription() {
- return description;
- }
-
public void setDescription(String description) {
- this.description = description;
+ transit.setDescription(description);
}
- public String getRelatedActivity() {
- return relatedActivity;
- }
-
- public void setRelatedActivity(String relatedActivity) {
- this.relatedActivity = relatedActivity;
- }
-
- public Date getStartTime() {
- return startTime;
- }
-
public void setStartTime(Date startTime) {
- this.startTime = startTime;
+ transit.setStartTime(startTime);
}
- public Date getEndTime() {
- return endTime;
- }
-
public void setEndTime(Date endTime) {
- this.endTime = endTime;
+ transit.setEndTime(endTime);
}
- public String getStartLocality() {
- return startLocality;
- }
-
public void setStartLocality(String startLocality) {
- this.startLocality = startLocality;
+ transit.setStartLocality(startLocality);
}
- public String getEndLocality() {
- return endLocality;
- }
-
public void setEndLocality(String endLocality) {
- this.endLocality = endLocality;
+ transit.setEndLocality(endLocality);
}
}
Modified: trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
===================================================================
--- trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties 2012-02-09 17:07:50 UTC (rev 311)
@@ -20,14 +20,19 @@
echobase.common.operationMetadataFile=
echobase.common.regionsFile=
echobase.common.resultsImportMode.acoustic=
+echobase.common.resultsImportMode.region=
echobase.common.resultsImportMode.voyage=
echobase.common.sampleFile=
echobase.common.subSampleFile=
+echobase.common.totalSampleFile=
echobase.common.transectFile=
echobase.common.transitFile=
echobase.common.voyageFile=
echobase.importError.can.only.import.one.voyage.atime=
+echobase.importError.duplicate.sample=
echobase.importError.fromFile=
echobase.importError.no.transit.between.date=
echobase.importError.no.transit.imported=
echobase.importError.no.voyage.imported=
+echobase.importError.transect.notfound=
+echobase.importError.transit.notfound=
Modified: trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
===================================================================
--- trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,7 +1,8 @@
echobase.common.associationFile=Fichier d'associations de cellules
-echobase.common.cellPositionReference.end=Début
+echobase.common.biometrySampleFile=Fichier BiometrySample
+echobase.common.cellPositionReference.end=Fin
echobase.common.cellPositionReference.mid=Milieu
-echobase.common.cellPositionReference.start=Fin
+echobase.common.cellPositionReference.start=Début
echobase.common.commonDataImportMode.all=Import Voyage / Transit / Transects
echobase.common.commonDataImportMode.transect=Import Transects
echobase.common.echotypeFile=Fichier echotype
@@ -19,11 +20,18 @@
echobase.common.operationMetadataFile=Fichier Méta-données opération
echobase.common.regionsFile=Fichier des régions
echobase.common.resultsImportMode.acoustic=Import des résultats acoustiques
+echobase.common.resultsImportMode.region=Import des cellules régions d'un voyage
echobase.common.resultsImportMode.voyage=Import des résultats du voyage
-echobase.common.sampleDatafile=Fichier SampleData
-echobase.common.sampleFile=Fichier Sample
+echobase.common.subSampleFile=Fichier SubSample
+echobase.common.totalSampleFile=Fichier TotalSample
echobase.common.transectFile=Fichier des transects
echobase.common.transitFile=Fichier des transits
echobase.common.voyageFile=Fichier des voyages
+echobase.importError.can.only.import.one.voyage.atime=Vous ne pouvez pas importer plus d'un voyage à la fois.
+echobase.importError.duplicate.sample=L'opération %s ne peut pas contenir deux échantillons de même type %s, espèce %s et taille %s
echobase.importError.fromFile=Erreur lors de l'import du fichier %s \: %s
echobase.importError.no.transit.between.date=Pas de transit trouvé pour le voyage %s entre les dates %s et %s
+echobase.importError.no.transit.imported=Aucun transit importé
+echobase.importError.no.voyage.imported=Aucun voyage importé
+echobase.importError.transect.notfound=Transit non trouvé pour la campagne %s et la date %s et le navire %s
+echobase.importError.transit.notfound=Transit non trouvé pour la campagne %s et la date %s
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearLoader.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -58,7 +58,7 @@
model.newMandatoryColumn("ValidSince", Gear.PROPERTY_VALID_SINCE, CsvModelUtil.IMPORT_DAY);
model.newMandatoryColumn("InvalidSince", Gear.PROPERTY_INVALID_SINCE, CsvModelUtil.IMPORT_DAY);
model.newMandatoryColumn("IsFishingGear", Gear.PROPERTY_FISHING_GEAR, CsvModelUtil.INT_TO_BOOLEAN_PARSER);
- model.newMandatoryColumn("gearLabel", Gear.PROPERTY_LABEL);
+ model.newMandatoryColumn("gearLabel", Gear.PROPERTY_GEAR_CODE);
model.newMandatoryColumn("GearName", Gear.PROPERTY_NAME);
model.newMandatoryColumn("Description", Gear.PROPERTY_DESCRIPTION);
model.addDefaultColumn("UpdateDate", Gear.PROPERTY_UPDATE_DATE, Date.class);
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -58,7 +58,7 @@
/*
MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
*/
- model.newMandatoryColumn("MetadataType", GearMetadata.PROPERTY_TYPE);
+ model.newMandatoryColumn("MetadataType", GearMetadata.PROPERTY_NAME);
model.newMandatoryColumn("MetadataTypeMeaning", GearMetadata.PROPERTY_MEANING);
model.newMandatoryColumn("MetadataTypeGroup", GearMetadata.PROPERTY_METADATA_GROUP);
model.addForeignKeyForImport("OperationEvent", GearMetadata.PROPERTY_OPERATION_EVENT, OperationEvent.class, events, EchoBaseFunctions.OPERATION_EVENT_NAME);
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -41,7 +41,6 @@
import fr.ifremer.echobase.entities.references.Gear;
import fr.ifremer.echobase.entities.references.GearMetadata;
import fr.ifremer.echobase.entities.references.GearMetadataDAO;
-import fr.ifremer.echobase.entities.references.OperationEvent;
import fr.ifremer.echobase.entities.references.OperationMetadata;
import fr.ifremer.echobase.entities.references.OperationMetadataDAO;
import fr.ifremer.echobase.tools.FileType;
@@ -177,29 +176,23 @@
operationMetadataDAO.findByName("DielPeriod");
Preconditions.checkNotNull(dielPeriodOperationMeta);
//SONDEDEB
- startWaterDepthOperationMeta = operationMetadataDAO.findByProperties(
- OperationMetadata.PROPERTY_NAME, "WaterDepth",
- OperationMetadata.PROPERTY_OPERATION_EVENT + "." + OperationEvent.PROPERTY_NAME, "ShootingStart"
- );
+ startWaterDepthOperationMeta = operationMetadataDAO.findByName("WaterDepthShoot");
Preconditions.checkNotNull(startWaterDepthOperationMeta);
//SONDEFIN
- endWaterDepthOperationMeta = operationMetadataDAO.findByProperties(
- OperationMetadata.PROPERTY_NAME, "WaterDepth",
- OperationMetadata.PROPERTY_OPERATION_EVENT + "." + OperationEvent.PROPERTY_NAME, "HaulingEnd"
- );
+ endWaterDepthOperationMeta = operationMetadataDAO.findByName("WaterDepthHaul");
Preconditions.checkNotNull(endWaterDepthOperationMeta);
GearMetadataDAO gearMetadataDAO =
(GearMetadataDAO) getDAO(GearMetadata.class);
//LFUNES
- cableLengthGearMeta = gearMetadataDAO.findByType("CableLength");
+ cableLengthGearMeta = gearMetadataDAO.findByName("CableLength");
Preconditions.checkNotNull(cableLengthGearMeta);
//VMIN
- minSpeedGearMeta = gearMetadataDAO.findByType("MinSpeed");
+ minSpeedGearMeta = gearMetadataDAO.findByName("MinSpeed");
Preconditions.checkNotNull(minSpeedGearMeta);
//VMAX
- maxSpeedGearMeta = gearMetadataDAO.findByType("MaxSpeed");
+ maxSpeedGearMeta = gearMetadataDAO.findByName("MaxSpeed");
Preconditions.checkNotNull(maxSpeedGearMeta);
dao = getDAO();
@@ -326,8 +319,8 @@
Operation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, shootingEndLongitude,
Operation.PROPERTY_GEAR_SHOOTING_START_TIME, shootingStartTime,
Operation.PROPERTY_GEAR_SHOOTING_END_TIME, shootingEndTime,
- Operation.PROPERTY_MID_HAULE_LATITUDE, midHauleLatitude,
- Operation.PROPERTY_MID_HAULE_LONGITUDE, midHauleLongitude,
+ Operation.PROPERTY_MID_HAUL_LATITUDE, midHauleLatitude,
+ Operation.PROPERTY_MID_HAUL_LONGITUDE, midHauleLongitude,
Operation.PROPERTY_COMMENT, comment
);
Modified: trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,5 +1,5 @@
MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
MeanWaterDepth;Mean water depth during operation;Depth;Average
DielPeriod;1 : day, 0 : night;Diel;Global
-WaterDepth;Water depth at the beginning of the operation;Depth;ShootingStart
-WaterDepth;Water depth at the end of the operation;Depth;HaulingEnd
\ No newline at end of file
+WaterDepthShoot;Water depth at the beginning of the operation;Depth;ShootingStart
+WaterDepthHaul;Water depth at the end of the operation;Depth;HaulingEnd
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -29,8 +29,8 @@
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.EchoBaseUserImpl;
import fr.ifremer.echobase.entities.meta.DbMeta;
+import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import fr.ifremer.echobase.services.UserService;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -29,9 +29,9 @@
import fr.ifremer.echobase.I18nAble;
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.services.DecoratorService;
+import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import fr.ifremer.echobase.ui.EchoBaseApplicationContext;
import fr.ifremer.echobase.ui.EchoBaseSession;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/AbstractLaunchImport.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,12 +23,17 @@
*/
package fr.ifremer.echobase.ui.actions.importData;
+import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.services.AbstractImportDataService;
+import fr.ifremer.echobase.services.CsvImportResult;
+import fr.ifremer.echobase.services.ImportException;
import fr.ifremer.echobase.services.configurations.AbstractImportConfiguration;
import fr.ifremer.echobase.ui.actions.AbstractWaitAndExecAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.util.Map;
+
/**
* TODO
*
@@ -48,6 +53,8 @@
protected transient S service;
+ protected Map<InputFile, CsvImportResult> result;
+
protected AbstractLaunchImport(Class<M> modelType, Class<S> serviceType) {
this.modelType = modelType;
this.serviceType = serviceType;
@@ -58,6 +65,10 @@
return getEchoBaseSession().getImportDataConfiguration(modelType);
}
+ public Map<InputFile, CsvImportResult> getResult() {
+ return result;
+ }
+
@Override
public void prepare() throws Exception {
@@ -73,14 +84,16 @@
}
try {
- service.startImport(model, getEchoBaseSession().getEchoBaseUser());
+ result = service.doImport(model,
+ getEchoBaseSession().getEchoBaseUser());
service.commitTransaction("Could not commit imported data");
- } catch (Exception e) {
+ } catch (ImportException e) {
if (log.isErrorEnabled()) {
- log.error("Could not do import ", e);
+ log.error("Error while import ", e);
}
+ addActionError(e.getMessage());
}
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -44,9 +44,6 @@
/** Universe of existing voyages. */
protected Map<String, String> voyages;
-// /** Universe of existing vessels. */
-// protected Map<String, String> vessels;
-
protected Map<String, String> cellPositionReferences;
public ConfigureAccousticData() {
@@ -67,7 +64,6 @@
newService(EchoBaseServiceSupport.class);
voyages = loadSortAndDecorate(service, Voyage.class);
-// vessels = loadSortAndDecorate(service, Vessel.class);
cellPositionReferences = decorateEnums(CellPositionReference.values());
if (getModel().getCellPositionReference() == null) {
@@ -82,10 +78,6 @@
return voyages;
}
-// public Map<String, String> getVessels() {
-// return vessels;
-// }
-
public Map<String, String> getCellPositionReferences() {
return cellPositionReferences;
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -78,27 +78,39 @@
return vessels;
}
- public void setSampleFile(File file) {
- getModel().getSampleFile().setFile(file);
+ public void setTotalSampleFile(File file) {
+ getModel().getTotalSampleFile().setFile(file);
}
- public void setSampleFileContentType(String contentType) {
- getModel().getSampleFile().setContentType(contentType);
+ public void setTotalSampleFileContentType(String contentType) {
+ getModel().getTotalSampleFile().setContentType(contentType);
}
- public void setSampleFileFileName(String fileName) {
- getModel().getSampleFile().setFileName(fileName);
+ public void setTotalSampleFileFileName(String fileName) {
+ getModel().getTotalSampleFile().setFileName(fileName);
}
- public void setSampleDataFile(File file) {
- getModel().getSampleDataFile().setFile(file);
+ public void setSubSampleFile(File file) {
+ getModel().getSubSampleFile().setFile(file);
}
- public void setSampleDataFileContentType(String contentType) {
- getModel().getSampleDataFile().setContentType(contentType);
+ public void setSubSampleFileContentType(String contentType) {
+ getModel().getSubSampleFile().setContentType(contentType);
}
- public void setSampleDataFileFileName(String fileName) {
- getModel().getSampleDataFile().setFileName(fileName);
+ public void setSubSampleFileFileName(String fileName) {
+ getModel().getSubSampleFile().setFileName(fileName);
}
+
+ public void setBiometrySampleFile(File file) {
+ getModel().getBiometrySampleFile().setFile(file);
+ }
+
+ public void setBiometrySampleFileContentType(String contentType) {
+ getModel().getBiometrySampleFile().setContentType(contentType);
+ }
+
+ public void setBiometrySampleFileFileName(String fileName) {
+ getModel().getBiometrySampleFile().setFileName(fileName);
+ }
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.ui.actions.importData;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.Vessel;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.configurations.OperationImportConfiguration;
@@ -43,6 +44,9 @@
/** Universe of existing voyages. */
protected Map<String, String> voyages;
+ /** Universe of existing vessels. */
+ protected Map<String, String> vessels;
+
public ConfigureOperation() {
super(OperationImportConfiguration.class);
}
@@ -61,6 +65,7 @@
newService(EchoBaseServiceSupport.class);
voyages = loadSortAndDecorate(service, Voyage.class);
+ vessels = loadSortAndDecorate(service, Vessel.class);
return INPUT;
}
@@ -68,6 +73,10 @@
return voyages;
}
+ public Map<String, String> getVessels() {
+ return vessels;
+ }
+
public void setOperationFile(File file) {
getModel().getOperationFile().setFile(file);
}
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResults.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResults.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureResults.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -92,6 +92,12 @@
return execute();
}
+ @InputConfig(methodName = "input")
+ public String modeRegion() throws Exception {
+
+ return execute();
+ }
+
public Map<String, String> getVoyages() {
return voyages;
}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetTransits.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,92 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.importData;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
-import fr.ifremer.echobase.entities.data.Transit;
-import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.services.EchoBaseServiceSupport;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang3.StringUtils;
-import org.nuiton.util.decorator.Decorator;
-
-import java.util.Map;
-
-/**
- * Given a voyage, obtain all his transits.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class GetTransits extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
-
- protected String voyageId;
-
- protected Map<String, String> transits;
-
- public void setVoyageId(String voyageId) {
- this.voyageId = voyageId;
- }
-
- public Map<String, String> getTransits() {
- return transits;
- }
-
- @Override
- public String execute() throws Exception {
-
- transits = Maps.newLinkedHashMap();
-
- if (StringUtils.isNotEmpty(voyageId)) {
-
- EchoBaseServiceSupport service =
- newService(EchoBaseServiceSupport.class);
-
- Voyage voyage = service.getEntityById(Voyage.class, voyageId);
-
- Preconditions.checkNotNull(
- voyage,
- "Could not find voyage with id " + voyageId);
-
- if (!voyage.isTransitEmpty()) {
-
- Decorator<Transit> decorator =
- getDecoratorService().getDecorator(getLocale(),
- Transit.class,
- null);
-
- for (Transit transit : voyage.getTransit()) {
- String value = decorator.toString(transit);
- transits.put(transit.getTopiaId(), value);
- }
- }
- }
-
- return SUCCESS;
- }
-}
Deleted: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -1,94 +0,0 @@
-/*
- * #%L
- * EchoBase :: UI
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 - 2012 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.ui.actions.importData;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Maps;
-import fr.ifremer.echobase.entities.data.Transect;
-import fr.ifremer.echobase.entities.data.Transit;
-import fr.ifremer.echobase.entities.references.Vessel;
-import fr.ifremer.echobase.services.EchoBaseServiceSupport;
-import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
-import org.apache.commons.lang3.StringUtils;
-import org.nuiton.util.decorator.Decorator;
-
-import java.util.Map;
-
-/**
- * Given a voyage, obtain all his transits.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.3
- */
-public class GetVessels extends EchoBaseActionSupport {
-
- private static final long serialVersionUID = 1L;
-
-
- protected String transitId;
-
- protected Map<String, String> vessels;
-
- public void setTransitId(String transitId) {
- this.transitId = transitId;
- }
-
- public Map<String, String> getVessels() {
- return vessels;
- }
-
- @Override
- public String execute() throws Exception {
-
- vessels = Maps.newLinkedHashMap();
-
- if (StringUtils.isNotEmpty(transitId)) {
-
- EchoBaseServiceSupport service =
- newService(EchoBaseServiceSupport.class);
-
- Transit transit = service.getEntityById(Transit.class, transitId);
-
- Preconditions.checkNotNull(transit,
- "Could not find transit with id " + transitId);
- if (!transit.isTransectEmpty()) {
-
- Decorator<Vessel> decorator =
- getDecoratorService().getDecorator(getLocale(),
- Vessel.class,
- null);
-
- for (Transect transect : transit.getTransect()) {
- String id = transect.getTopiaId();
- if (!vessels.containsKey(id)) {
- String value = decorator.toString(transect.getVessel());
- vessels.put(id, value);
- }
- }
- }
- }
-
- return SUCCESS;
- }
-}
Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java (rev 0)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,94 @@
+/*
+ * #%L
+ * EchoBase :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.ui.actions.importData;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.Vessel;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
+import org.apache.commons.lang3.StringUtils;
+import org.nuiton.util.decorator.Decorator;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Get all vessels used in a voyage.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class GetVesselsForVoyage extends EchoBaseActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Selected voyage id. */
+ protected String voyageId;
+
+ protected Map<String, String> vessels;
+
+ public void setVoyageId(String voyageId) {
+ this.voyageId = voyageId;
+ }
+
+ public Map<String, String> getVessels() {
+ return vessels;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ vessels = Maps.newLinkedHashMap();
+
+ if (StringUtils.isNotEmpty(voyageId)) {
+
+ EchoBaseServiceSupport service =
+ newService(EchoBaseServiceSupport.class);
+
+ Voyage voyage = service.getEntityById(Voyage.class, voyageId);
+
+ Preconditions.checkNotNull(voyage,
+ "Could not find voyage with id " + voyageId);
+ if (!voyage.isTransitEmpty()) {
+
+ Decorator<Vessel> decorator =
+ getDecoratorService().getDecorator(getLocale(),
+ Vessel.class,
+ null);
+
+ Set<Vessel> allVessels = voyage.getAllVessels();
+
+ for (Vessel vessel : allVessels) {
+ String value = decorator.toString(vessel);
+ vessels.put(vessel.getTopiaId(), value);
+ }
+
+ }
+ }
+
+ return SUCCESS;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVesselsForVoyage.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-ui/src/main/resources/config/struts-importData.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/resources/config/struts-importData.xml 2012-02-09 17:07:50 UTC (rev 311)
@@ -75,18 +75,12 @@
<result>/WEB-INF/jsp/importData/result{1}.jsp</result>
</action>
- <!-- Get transits for a given voyage id -->
- <action name="getTransits"
- class="fr.ifremer.echobase.ui.actions.importData.GetTransits">
+ <!-- Get all vessels used by any transects of a voyage -->
+ <action name="getVesselsForVoyage"
+ class="fr.ifremer.echobase.ui.actions.importData.GetVesselsForVoyage">
<result type="json"/>
</action>
- <!-- Get vessels (of transects) for a given transit id -->
- <action name="getVessels"
- class="fr.ifremer.echobase.ui.actions.importData.GetVessels">
- <result type="json"/>
- </action>
-
<!-- Create a new mission -->
<action name="createMission"
class="fr.ifremer.echobase.ui.actions.importData.CreateMission">
Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData-validation.xml 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureCatchesData-validation.xml 2012-02-09 17:07:50 UTC (rev 311)
@@ -32,18 +32,25 @@
</field-validator>
</field>
- <field name="sampleFile">
+ <field name="totalSampleFile">
<field-validator type="nfieldexpression">
- <param name="expression">model.sampleFile.file!=null</param>
- <message key="echobase.error.import.sampleFile.required"/>
+ <param name="expression">model.totalSampleFile.file!=null</param>
+ <message key="echobase.error.import.totalSampleFile.required"/>
</field-validator>
</field>
- <field name="sampleDataFile">
+ <field name="subSampleFile">
<field-validator type="nfieldexpression">
- <param name="expression">model.sampleDataFile.file!=null</param>
- <message key="echobase.error.import.sampleDataFile.required"/>
+ <param name="expression">model.subSampleFile.file!=null</param>
+ <message key="echobase.error.import.subSampleFile.required"/>
</field-validator>
</field>
+ <field name="biometrySampleFile">
+ <field-validator type="nfieldexpression">
+ <param name="expression">model.biometrySampleFile.file!=null</param>
+ <message key="echobase.error.import.biometrySampleFile.required"/>
+ </field-validator>
+ </field>
+
</validators>
\ No newline at end of file
Added: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml (rev 0)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureResults-ConfigureResults-modeRegion-validation.xml 2012-02-09 17:07:50 UTC (rev 311)
@@ -0,0 +1,49 @@
+<!--
+ #%L
+ EchoBase :: UI
+
+ $Id: ConfigureResults-ConfigureResults-modeVoyage-validation.xml 304 2012-02-02 22:58:29Z tchemit $
+ $HeadURL: http://svn.forge.codelutin.com/svn/echobase/trunk/echobase-ui/src/main/reso… $
+ %%
+ Copyright (C) 2011 Ifremer, Codelutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #L%
+ -->
+<!DOCTYPE validators PUBLIC
+ "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+<validators>
+
+ <field name="model.voyageId">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.voyage.required"/>
+ </field-validator>
+ </field>
+
+ <field name="regionsFile">
+ <field-validator type="nfieldexpression">
+ <param name="expression">model.regionsFile.file!=null</param>
+ <message key="echobase.error.import.regionsFile.required"/>
+ </field-validator>
+ </field>
+
+ <field name="associationFile">
+ <field-validator type="nfieldexpression">
+ <param name="expression">model.associationFile.file!=null</param>
+ <message key="echobase.error.import.associationFile.required"/>
+ </field-validator>
+ </field>
+
+</validators>
\ No newline at end of file
Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-02-09 17:07:50 UTC (rev 311)
@@ -68,6 +68,7 @@
echobase.error.import.acquisitionSoftwareVersionME70.required=acquisitionSoftwareVersionME70 non renseigné
echobase.error.import.areaOfOperation.required=La sélection d'une zone d'opération est obligatoire
echobase.error.import.associationFile.required=La sélection d'un fichier Association est obligatoire
+echobase.error.import.biometrySampleFile.required=La sélection d'un fichier BiometrySample est obligatoire
echobase.error.import.cellPositionReference.required=La sélection d'un cellPositionReference est obligatoire
echobase.error.import.datum.required=Datum de la campagne non rengeigné
echobase.error.import.digitThreshold.required=digitThreshold non renseigné
@@ -75,8 +76,6 @@
echobase.error.import.echotypeFile.required=La sélection d'un fichier Echotype est obligatoire
echobase.error.import.gearMetadataFile.required=La sélection d'un fichier GearMetadata est obligatoire
echobase.error.import.importMode.required=Le mode d'import est obligatoire
-echobase.error.import.individualDataFile.required=La sélection d'un fichier individualData est obligatoire
-echobase.error.import.lengthAgeKeyFile.required=La sélection d'un fichier lengthAgeKey est obligatoire
echobase.error.import.lengthWeightKeyFile.required=La sélection d'un fichier lengthWeightKey est obligatoire
echobase.error.import.loggedDataDatatype.required=loggedDataDatatype non renseigné
echobase.error.import.loggedDataFormat.required=loggedDataFormat non renseigné
@@ -92,11 +91,11 @@
echobase.error.import.processingTemplate.required=processingTemplate non renseigné
echobase.error.import.regionsFile.required=La sélection d'un fichier Region est obligatoire
echobase.error.import.resultImportFile.required=Veuillez donner au moins un fichier à importer
-echobase.error.import.sampleDataFile.required=La sélection d'un fichier SampleData est obligatoire
-echobase.error.import.sampleFile.required=La sélection d'un fichier Sample est obligatoire
echobase.error.import.soundSpeedCalculationsER60.required=soundSpeedCalculationsER60 non renseigné
echobase.error.import.soundSpeedCalculationsME70.required=soundSpeedCalculationsME70 non renseigné
echobase.error.import.sounderConstant.required=sounderConstant non renseigné
+echobase.error.import.subSampleFile.required=La sélection d'un fichier SubSample est obligatoire
+echobase.error.import.totalSampleFile.required=La sélection d'un fichier Sample est obligatoire
echobase.error.import.transceiverAcquisitionAbsorptionDescription.required=transceiverAcquisitionAbsorptionDescription non renseigné
echobase.error.import.transectBinUnitsPingAxis.required=BinUnitsPingAxis des transtects non rengeigné
echobase.error.import.transectFile.required=La sélection d'un fichier Transect est obligatoire
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-02-09 17:07:50 UTC (rev 311)
@@ -36,14 +36,11 @@
jQuery(document).ready(function () {
- $.autoSelectVoyageTransitAndVessel(
+ $.autoSelectVoyageAndVessel(
$('[name="model.voyageId"]'),
- $('[name="model.transitId"]'),
$('[name="model.vesselId"]'),
- '<s:url action="getTransits" namespace="/importData"/>',
- '<s:url action="getVessels" namespace="/importData"/>',
+ '<s:url action="getVesselsForVoyage" namespace="/importData"/>',
'<s:property value="model.voyageId"/>',
- '<s:property value="model.transitId"/>',
'<s:property value="model.vesselId"/>'
);
});
@@ -60,9 +57,6 @@
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <sj:select key="model.transitId" required="true"
- label='%{getText("echobase.common.transit")}'/>
-
<sj:select key="model.vesselId" required="true"
label='%{getText("echobase.common.vessel")}'/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureCatchesData.jsp 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,6 +23,9 @@
--%>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+<script type="text/javascript"
+ src="<s:url value='/js/gridHelper.js' />"></script>
<title>
Configuration <s:text name="echobase.common.importDataMode.catchesData"/>
@@ -31,7 +34,13 @@
<script type="text/javascript">
jQuery(document).ready(function () {
-
+ $.autoSelectVoyageAndVessel(
+ $('[name="model.voyageId"]'),
+ $('[name="model.vesselId"]'),
+ '<s:url action="getVesselsForVoyage" namespace="/importData"/>',
+ '<s:property value="model.voyageId"/>',
+ '<s:property value="model.vesselId"/>'
+ );
});
</script>
@@ -46,15 +55,17 @@
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <s:select key="model.vesselId" required="true"
- label='%{getText("echobase.common.vessel")}'
- list="vessels" headerKey="" headerValue=""/>
+ <sj:select key="model.vesselId" required="true"
+ label='%{getText("echobase.common.vessel")}'/>
- <s:file key="sampleFile" required="true"
- label='%{getText("echobase.common.sampleFile")}'/>
+ <s:file key="totalSampleFile" required="true"
+ label='%{getText("echobase.common.totalSampleFile")}'/>
- <s:file key="sampleDataFile" required="true"
- label='%{getText("echobase.common.sampleDataFile")}'/>
+ <s:file key="subSampleFile" required="true"
+ label='%{getText("echobase.common.subSampleFile")}'/>
+
+ <s:file key="biometrySampleFile" required="true"
+ label='%{getText("echobase.common.biometrySampleFile")}'/>
</fieldset>
<br/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp 2012-02-09 17:07:50 UTC (rev 311)
@@ -34,14 +34,11 @@
<script type="text/javascript">
jQuery(document).ready(function () {
- $.autoSelectVoyageTransitAndVessel(
+ $.autoSelectVoyageAndVessel(
$('[name="model.voyageId"]'),
- $('[name="model.transitId"]'),
$('[name="model.vesselId"]'),
- '<s:url action="getTransits" namespace="/importData"/>',
- '<s:url action="getVessels" namespace="/importData"/>',
+ '<s:url action="getVesselsForVoyage" namespace="/importData"/>',
'<s:property value="model.voyageId"/>',
- '<s:property value="model.transitId"/>',
'<s:property value="model.vesselId"/>'
);
});
@@ -59,9 +56,6 @@
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <sj:select key="model.transitId" required="true"
- label='%{getText("echobase.common.transit")}'/>
-
<sj:select key="model.vesselId" required="true"
label='%{getText("echobase.common.vessel")}'/>
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureResults.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureResults.jsp 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureResults.jsp 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,7 +23,9 @@
--%>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
-
+<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
+<script type="text/javascript"
+ src="<s:url value='/js/gridHelper.js' />"></script>
<title>
Configuration <s:text name="echobase.common.importDataMode.results"/>
</title>
@@ -40,6 +42,15 @@
var incomingVal = $('[name="model.importMode"][checked="checked"]').val();
$('#' + incomingVal).show();
+
+ $.autoSelectVoyageAndVessel(
+ $('#ACOUSTIC_model_voyageId'),
+ $('[name="model.vesselId"]'),
+ '<s:url action="getVesselsForVoyage" namespace="/importData"/>',
+ '<s:property value="model.voyageId"/>',
+ '<s:property value="model.vesselId"/>'
+ );
+
});
</script>
@@ -78,6 +89,34 @@
</s:form>
+<s:form id="REGION" namespace="/importData" method="POST"
+ enctype="multipart/form-data" cssClass="hidden importMode">
+
+ <fieldset>
+ <legend>
+ <s:text name="echobase.legend.importData.configure"/>
+ </legend>
+
+ <s:hidden key="model.importMode" value="REGION" label=''/>
+
+ <s:select key="model.voyageId" required="true"
+ label='%{getText("echobase.common.voyage")}'
+ list="voyages" headerKey="" headerValue=""/>
+
+ <s:file key="regionsFile" required="true"
+ label='%{getText("echobase.common.regionsFile")}'/>
+
+ <s:file key="associationFile" required="true"
+ label='%{getText("echobase.common.associationFile")}'/>
+
+ </fieldset>
+
+ <br/>
+ <s:submit action="ConfigureResults-modeRegion"
+ value='%{getText("echobase.action.import")}'/>
+
+</s:form>
+
<s:form id="ACOUSTIC" namespace="/importData" method="POST"
enctype="multipart/form-data" cssClass="hidden importMode">
@@ -92,9 +131,8 @@
label='%{getText("echobase.common.voyage")}'
list="voyages" headerKey="" headerValue=""/>
- <s:select key="model.vesselId" required="true"
- label='%{getText("echobase.common.vessel")}'
- list="vessels" headerKey="" headerValue=""/>
+ <sj:select key="model.vesselId" required="true"
+ label='%{getText("echobase.common.vessel")}'/>
<s:file key="regionsFile" required="true"
label='%{getText("echobase.common.regionsFile")}'/>
Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js
===================================================================
--- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-09 17:07:50 UTC (rev 311)
@@ -168,52 +168,31 @@
},
- // auto-selection des voyages - transit - vessel
- autoSelectVoyageTransitAndVessel:function (voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId) {
+ // auto-selection des voyages - vessel
+ autoSelectVoyageAndVessel:function (voyageSelectBox, vesselSelectBox, getVesselsUrl, voyageId, vesselId) {
- voyageSelectBox.change({transitSelectBox:transitSelectBox,
- vesselSelectBox:vesselSelectBox,
- getTransitsUrl:getTransitsUrl}, function (event) {
+ voyageSelectBox.change({vesselSelectBox:vesselSelectBox,
+ getVesselsUrl:getVesselsUrl}, function (event) {
- $.updateSelectBoxContent(event.data.getTransitsUrl,
+ $.updateSelectBoxContent(event.data.getVesselsUrl,
{voyageId:this.value},
- 'transits',
- event.data.transitSelectBox
+ 'vessels',
+ event.data.vesselSelectBox
);
- event.data.vesselSelectBox.html("");
});
- transitSelectBox.change({vesselSelectBox:vesselSelectBox,
- getVesselsUrl:getVesselsUrl}, function (event) {
-
- $.updateSelectBoxContent(event.data.getVesselsUrl,
- {transitId:this.value},
- 'vessels',
- event.data.vesselSelectBox);
- });
-
if (voyageId) {
voyageSelectBox.change(voyageId);
- $.updateSelectBoxContent(
- getTransitsUrl,
- {voyageId:voyageId},
- 'transits',
- transitSelectBox, function () {
- if (transitId) {
+ $.updateSelectBoxContent(getVesselsUrl,
+ {voyageId:voyageId},
+ 'vessels',
+ vesselSelectBox, function () {
- transitSelectBox.val(transitId);
- $.updateSelectBoxContent(
- getVesselsUrl,
- {transitId:transitId},
- 'vessels',
- vesselSelectBox, function () {
+ if (vesselId) {
- if (vesselId) {
- vesselSelectBox.val(vesselId);
- }
- });
+ vesselSelectBox.val(vesselId);
}
}
);
@@ -253,8 +232,8 @@
addEvenAndOddClasses:function (gridId) {
return $(document).addEvenAndOddClasses(gridId);
},
- autoSelectVoyageTransitAndVessel:function (voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId) {
- return $(document).autoSelectVoyageTransitAndVessel(voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId);
+ autoSelectVoyageAndVessel:function (voyageSelectBox, vesselSelectBox, getVesselsUrl, voyageId, vesselId) {
+ return $(document).autoSelectVoyageAndVessel(voyageSelectBox, vesselSelectBox, getVesselsUrl, voyageId, vesselId);
}
});
})(jQuery);
Modified: trunk/src/doc/reunions/reunion-2012-02-08.txt
===================================================================
--- trunk/src/doc/reunions/reunion-2012-02-08.txt 2012-02-09 12:14:03 UTC (rev 310)
+++ trunk/src/doc/reunions/reunion-2012-02-08.txt 2012-02-09 17:07:50 UTC (rev 311)
@@ -23,28 +23,61 @@
1) Un seul écran pour importer les données communes :
mode 1: import d'un nouveau voyage / transit / transect
+
+AVoir --> Dans ce mode il faudrait être sûr de créer un unique voyage sinon ça va poser des problèmes...
+Ok.
+
+On vérifie ensuite lors des imports transit - transect qu'on est bien sur le voyage créée
+Ok.
+
mode 2: import d'un nouveau transect (renseigné par un voyage + un navire)
-OK.
+On vérifie ensuite de l'import transect qu'on est bien sur le voyage sélectionné
Import Operations
=================
+Input :
- voyage
- navire (connus dans les transects du voyage)
-- format des fichiers à définir
-Operation / OperationMetaData / GearMetaData
+Operation
+_________
-OK.
+Peux-ton ici renseigné plus d'un transect à la fois ?
+Oui
+
+Si oui on doit utiliser un borne de temps pour retrouver le transit puis
+ensuite retrouvert le transect via le navire.
+
+Donc operation.gearShootingStartTime et operation.gearShootingEndTime puis on
+retrouve le transect via le navire
+
+Attention le vesselName n'est pas bon :(
+
+Attention, problème en base pour le Gear le name n'est pas unique
+
+OperationMetaDataValue
+______________________
+
+GearMetaDataValue
+_________________
+
+
+On vérifie que navire sélectionné
+
+Pour le Gear on se base sur le Gear#label
Import Samples
==============
- voyage
- navire
-- fichier Sample
-- fichier SampleData
+
+- fichier Sample Total
+- fichier SampleData Sub
+
+On retrouve l'opération par la campagne + l'id de l'opération unique
- on utilisera une clef temporaire pour lier les Sample et SampleData)
- pour retrouver les Operations, on se basera sur Operation#id
@@ -54,13 +87,12 @@
mode 1: (celui implanté) va créer les data acquisition trouvées dans le fichier movie
mode 2: (a faire) on créer le dataAcquisition uniquement s'il n'existe pas déjà pour le transect.
-OK.
+Utiliser le la datestart de la cellule pour retrouver le transit puis transect.
Rajouté un boolean (ajout de nouvelles données acoustiques) = mode 2
OK
- voyage
-- transit
- navire
- Cell Position Reference rajouter 3 jours une combobox Start - Mid - End pour retrouver
@@ -68,7 +100,8 @@
OK.
-- prendre en compte le nouveau format movies (suppression colonne) + comment sélectionner les acousticInstrument.
+- prendre en compte le nouveau format movies (suppression colonne) +
+comment sélectionner les acousticInstrument.
OK réalisé.
@@ -85,34 +118,56 @@
OK réalisé.
-mode 2: import acoustique
+mode 2: import des régions et résultats
- sélection voyage
+ - fichier définition des régions
+ - fichier association des cellules
+ - fichier résultats
+
+mode 3: import des résultats cellules esdu
+ - sélection voyage
- sélection navire
+ - fichier résultats
on retrouvera les transits via les plages temporelles
-- ajoute les celles régions
+Modifications du modèle
+-----------------------
-- et les résultats ???
+Ajouter un héritage RegionCell sur Cell que l'on rattache voyage
+Renommage modèle
+ - Operation midHaulLatitude au lieu de midHauleLatitude ok
+ - Operation midHaulLongitude au lieu de midHaulLongitude ok
+ - GearMetadata name au lieu de type ok
+ - Gear gearCode au lieu label ok
+ - renommer DataAcquisition en AcousticDataAcquisition
+ - renommer DataProcessing en AcousticDataProcessing
+
+Modificication de OperationMetadata#name
+
+WaterDepth | ShootingStart -> WaterDepthShoot ok
+WaterDepth | HaulingEnd -> WaterDepthHaul ok
+
+
Action
------
- CodeLutin
- - infra des imports
- - finir import acoustic
- - commencer import results
- - relancer Aurelie pour la charte graphique
- - corriger le journal de bords lors d'un import d'une table (problème de comparaison sur la nulitté).
+ - finaliser les imports suite aux ultimes mises au point.
+ - intégrer charte graphique
+ - corriger le journal de bords lors d'un import d'une table (problème de comparaison sur la nullitté).
+ - voir avec Ben pour trouver des example publiques de site pour utiliser les données spatiales en base
+ - supprimer les gears qui deconnent (les lignes en rouge dans le fichier que mathieu va m'envoyer)
+ - fournir le fichier i18n qui va bien et mathieu fait les traductions et les corrections
- Mathieu
- - import operation (format et fichiers à fournir)
- - import "sample" (format et fichiers à fournir)
- - import "résultats" (echotype, taille-poids-age), + clarifier la partie acoustic
+ - fournir nouveau fichiers mise à jour
+ - fichier gear
Prochaine réunion :
- - mercredi 8/02 14h30
\ No newline at end of file
+ - mardi 21/02 10h00 ?
\ No newline at end of file
1
0