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
- 1820 discussions
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
Author: tchemit
Date: 2012-02-09 13:14:03 +0100 (Thu, 09 Feb 2012)
New Revision: 310
Url: http://forge.codelutin.com/repositories/revision/echobase/310
Log:
fix repositories
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-02-09 11:59:29 UTC (rev 309)
+++ trunk/pom.xml 2012-02-09 12:14:03 UTC (rev 310)
@@ -95,6 +95,21 @@
</site>
</distributionManagement>
+ <repositories>
+ <repository>
+ <id>nexus</id>
+ <layout>default</layout>
+ <name>echobase-group</name>
+ <url>http://nexus.nuiton.org/nexus/content/groups/echobase-group/</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+
<!-- ************************************************************* -->
<!-- *** Build Settings ****************************************** -->
<!-- ************************************************************* -->
1
0
r309 - in trunk: . echobase-entities/src/main/resources/i18n echobase-services/src/main/resources/i18n echobase-ui/src/main/resources/i18n
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 12:59:29 +0100 (Thu, 09 Feb 2012)
New Revision: 309
Url: http://forge.codelutin.com/repositories/revision/echobase/309
Log:
use i18n in gp too
updates to hibernate 3.6.10
swithc to helper-m-p invocation
Added:
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_en_GB.properties
trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
Modified:
trunk/pom.xml
Added: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_en_GB.properties
===================================================================
--- trunk/echobase-entities/src/main/resources/i18n/echobase-entities_en_GB.properties (rev 0)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_en_GB.properties 2012-02-09 11:59:29 UTC (rev 309)
@@ -0,0 +1,274 @@
+echobase.common.AParameter=
+echobase.common.BParameter=
+echobase.common.TSParameters=
+echobase.common.a=
+echobase.common.accuracyEstimate=
+echobase.common.acknowledgement=
+echobase.common.acousticDensityUnit=
+echobase.common.acousticFrequency=
+echobase.common.acousticInstrument=
+echobase.common.acquisitionSoftwareVersion=
+echobase.common.active=
+echobase.common.addOffset=
+echobase.common.admin=
+echobase.common.age=
+echobase.common.ageCategory=
+echobase.common.altCallsign=
+echobase.common.aquisitionMethod=
+echobase.common.areaOfOperation=
+echobase.common.author=
+echobase.common.authorEmail=
+echobase.common.authorReference=
+echobase.common.averageDepth=
+echobase.common.averageFishLength=
+echobase.common.axis=
+echobase.common.b=
+echobase.common.baracoudaCode=
+echobase.common.binSizePingAxis=
+echobase.common.binSizeRangeAxis=
+echobase.common.binUnitsPingAxis=
+echobase.common.calendar=
+echobase.common.calibration=
+echobase.common.callsign=
+echobase.common.casinoGearName=
+echobase.common.category=
+echobase.common.categoryMeaning=
+echobase.common.categoryRef=
+echobase.common.categoryType=
+echobase.common.categoryValue=
+echobase.common.cell=
+echobase.common.cellMethod=
+echobase.common.cellType=
+echobase.common.childs=
+echobase.common.citation=
+echobase.common.classCode=
+echobase.common.code=
+echobase.common.codeMemo=
+echobase.common.codePerm=
+echobase.common.comment=
+echobase.common.data=
+echobase.common.dataAcquisition=
+echobase.common.dataCentre=
+echobase.common.dataCentreEmail=
+echobase.common.dataLabel=
+echobase.common.dataMetadata=
+echobase.common.dataProcessing=
+echobase.common.dataProtocol=
+echobase.common.dataQuality=
+echobase.common.dataType=
+echobase.common.dataValue=
+echobase.common.date=
+echobase.common.dateCreated=
+echobase.common.datum=
+echobase.common.datumType=
+echobase.common.depthStratum=
+echobase.common.description=
+echobase.common.dielPeriod=
+echobase.common.digitThreshold=
+echobase.common.distributionStatement=
+echobase.common.echoBaseUser=
+echobase.common.echosounderSoundSpeed=
+echobase.common.echotype=
+echobase.common.echotypeCategory=
+echobase.common.eiThreshold=
+echobase.common.email=
+echobase.common.endDate=
+echobase.common.endLocality=
+echobase.common.endPort=
+echobase.common.endTime=
+echobase.common.enginePower=
+echobase.common.entityId=
+echobase.common.entityModificationLog=
+echobase.common.entityType=
+echobase.common.exportQuery=
+echobase.common.fillValue=
+echobase.common.fishingGear=
+echobase.common.flagMeanings=
+echobase.common.frequency=
+echobase.common.gear=
+echobase.common.gearCharacteristic=
+echobase.common.gearCharacteristicValue=
+echobase.common.gearClassification=
+echobase.common.gearCode=
+echobase.common.gearMetadata=
+echobase.common.gearMetadataValue=
+echobase.common.gearShootingEndLatitude=
+echobase.common.gearShootingEndLongitude=
+echobase.common.gearShootingEndTime=
+echobase.common.gearShootingStartLatitude=
+echobase.common.gearShootingStartLongitude=
+echobase.common.gearShootingStartTime=
+echobase.common.genusSpecies=
+echobase.common.geospatialLatMax=
+echobase.common.geospatialLatMin=
+echobase.common.geospatialLonMax=
+echobase.common.geospatialLonMin=
+echobase.common.geospatialVerticalMax=
+echobase.common.geospatialVerticalMin=
+echobase.common.geospatialVerticalPositive=
+echobase.common.history=
+echobase.common.id=
+echobase.common.imo=
+echobase.common.impacte=
+echobase.common.institution=
+echobase.common.invalidSince=
+echobase.common.keywords=
+echobase.common.label=
+echobase.common.lastModifiedDate=
+echobase.common.lastModifiedUser=
+echobase.common.length=
+echobase.common.lengthAgeKey=
+echobase.common.lengthWeightKey=
+echobase.common.level=
+echobase.common.licence=
+echobase.common.linestring=
+echobase.common.litteratureReference=
+echobase.common.litteratureReferences=
+echobase.common.location=
+echobase.common.loggedDataDatatype=
+echobase.common.loggedDataFormat=
+echobase.common.longName=
+echobase.common.maxDepth=
+echobase.common.maxFishLength=
+echobase.common.maxLatitude=
+echobase.common.maxLongitude=
+echobase.common.meaning=
+echobase.common.meaningEn=
+echobase.common.meaningFr=
+echobase.common.measureType=
+echobase.common.measurementBinSize=
+echobase.common.measurementMetadata=
+echobase.common.measurementUnit=
+echobase.common.metadata=
+echobase.common.metadataGroup=
+echobase.common.method=
+echobase.common.midHaulLatitude=
+echobase.common.midHaulLongitude=
+echobase.common.midHauleLatitude=
+echobase.common.minDepth=
+echobase.common.minFishLength=
+echobase.common.minLatitude=
+echobase.common.minLongitude=
+echobase.common.mission=
+echobase.common.missionAbstract=
+echobase.common.modificationDate=
+echobase.common.modificationText=
+echobase.common.modificationUser=
+echobase.common.name=
+echobase.common.noiseDesign=
+echobase.common.notes=
+echobase.common.numberSampled=
+echobase.common.ok=
+echobase.common.operation=
+echobase.common.operationEvent=
+echobase.common.operationMetadata=
+echobase.common.operationMetadataValue=
+echobase.common.operator=
+echobase.common.organisationLevelAcknowledgements=
+echobase.common.organisationReferences=
+echobase.common.parentGear=
+echobase.common.password=
+echobase.common.percentAtAge=
+echobase.common.pingDutyCycle=
+echobase.common.platform=
+echobase.common.positive=
+echobase.common.precision=
+echobase.common.principalInvestigator=
+echobase.common.principalInvestigatorEmail=
+echobase.common.processingDescription=
+echobase.common.processingMethod=
+echobase.common.processingSoftwareVersion=
+echobase.common.processingTemplate=
+echobase.common.project=
+echobase.common.published=
+echobase.common.qualityDataFlagValues=
+echobase.common.r2=
+echobase.common.raptriBiometryDataType=
+echobase.common.referenceDatum=
+echobase.common.referenceDatumType=
+echobase.common.referencingMethod=
+echobase.common.regionCell=
+echobase.common.relatedActivity=
+echobase.common.report=
+echobase.common.result=
+echobase.common.resultvalue=
+echobase.common.sample=
+echobase.common.sampleData=
+echobase.common.sampleDataType=
+echobase.common.sampleType=
+echobase.common.sampleWeight=
+echobase.common.scaleFactor=
+echobase.common.seafloorSubstrate=
+echobase.common.sexCategory=
+echobase.common.sizeCategory=
+echobase.common.soundSpeedCalculations=
+echobase.common.sounderConstant=
+echobase.common.source=
+echobase.common.species=
+echobase.common.speciesCategory=
+echobase.common.speciesCode=
+echobase.common.speciesCommonName=
+echobase.common.speciesTSGroup=
+echobase.common.sqlQuery=
+echobase.common.standardName=
+echobase.common.startDate=
+echobase.common.startLocality=
+echobase.common.startPort=
+echobase.common.startTime=
+echobase.common.status=
+echobase.common.strata=
+echobase.common.stratum=
+echobase.common.swimbladder=
+echobase.common.swimbladderType=
+echobase.common.taxonCode=
+echobase.common.taxonFatherMemocode=
+echobase.common.taxonSystematicLevel=
+echobase.common.taxonSystematicOrder=
+echobase.common.timeCoverageEnd=
+echobase.common.timeCoverageStart=
+echobase.common.title=
+echobase.common.tonnage=
+echobase.common.towed=
+echobase.common.transceiverAcquisitionAbsorption=
+echobase.common.transceiverAcquisitionAbsorptionDescription=
+echobase.common.transceiverAcquisitionGain=
+echobase.common.transceiverAcquisitionPower=
+echobase.common.transceiverAcquisitionPulseLength=
+echobase.common.transceiverAcquisitionSacorrection=
+echobase.common.transceiverAperture=
+echobase.common.transceiverBeams=
+echobase.common.transceiverFirmware=
+echobase.common.transceiverManufacturer=
+echobase.common.transceiverModel=
+echobase.common.transceiverProcessingAbsorption=
+echobase.common.transceiverProcessingAbsorptionDescription=
+echobase.common.transceiverProcessingGain=
+echobase.common.transceiverProcessingSacorrection=
+echobase.common.transceiverSerial=
+echobase.common.transducerAcquisitionBeamAngleAlongship=
+echobase.common.transducerAcquisitionBeamAngleAthwartship=
+echobase.common.transducerAcquisitionPsi=
+echobase.common.transducerAperture=
+echobase.common.transducerBeams=
+echobase.common.transducerDepth=
+echobase.common.transducerLocation=
+echobase.common.transducerModel=
+echobase.common.transducerOrientation=
+echobase.common.transducerProcessingBeamAngleAlongship=
+echobase.common.transducerProcessingBeamAngleAthwartship=
+echobase.common.transducerProcessingPsi=
+echobase.common.transducerSerial=
+echobase.common.transect=
+echobase.common.transectAbstract=
+echobase.common.transit=
+echobase.common.type=
+echobase.common.unit=
+echobase.common.units=
+echobase.common.updateDate=
+echobase.common.validMax=
+echobase.common.validMin=
+echobase.common.validSince=
+echobase.common.vessel=
+echobase.common.vesselType=
+echobase.common.voyage=
+echobase.config.data.directory.description=
Property changes on: trunk/echobase-entities/src/main/resources/i18n/echobase-entities_en_GB.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
===================================================================
--- trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties (rev 0)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties 2012-02-09 11:59:29 UTC (rev 309)
@@ -0,0 +1,33 @@
+echobase.common.associationFile=
+echobase.common.biometrySampleFile=
+echobase.common.cellPositionReference.end=
+echobase.common.cellPositionReference.mid=
+echobase.common.cellPositionReference.start=
+echobase.common.commonDataImportMode.all=
+echobase.common.commonDataImportMode.transect=
+echobase.common.echotypeFile=
+echobase.common.gearMetadataFile=
+echobase.common.importDataMode.accousticData=
+echobase.common.importDataMode.catchesData=
+echobase.common.importDataMode.commonData=
+echobase.common.importDataMode.operation=
+echobase.common.importDataMode.results=
+echobase.common.importDbFile=
+echobase.common.lengthAgeKeyFile=
+echobase.common.lengthWeightKeyFile=
+echobase.common.moviesFile=
+echobase.common.operationFile=
+echobase.common.operationMetadataFile=
+echobase.common.regionsFile=
+echobase.common.resultsImportMode.acoustic=
+echobase.common.resultsImportMode.voyage=
+echobase.common.sampleFile=
+echobase.common.subSampleFile=
+echobase.common.transectFile=
+echobase.common.transitFile=
+echobase.common.voyageFile=
+echobase.importError.can.only.import.one.voyage.atime=
+echobase.importError.fromFile=
+echobase.importError.no.transit.between.date=
+echobase.importError.no.transit.imported=
+echobase.importError.no.voyage.imported=
Property changes on: trunk/echobase-services/src/main/resources/i18n/echobase-services_en_GB.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
===================================================================
--- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties (rev 0)
+++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-02-09 11:59:29 UTC (rev 309)
@@ -0,0 +1,19 @@
+echobase.error.bad.password=
+echobase.error.email.already.used=
+echobase.error.login.unknown=
+echobase.error.mission.name.already.exist=
+echobase.error.no.embeddedApplication.configurationFound=
+echobase.error.no.embeddedApplication.exportFileFound=
+echobase.error.no.exportDb.configurationFound=
+echobase.error.no.exportDb.exportFileFound=
+echobase.error.required.email=
+echobase.error.required.password=
+echobase.error.warlocation.notFound=
+echobase.info.no.sqlQuery.saved=
+echobase.info.no.sqlQuery.selected=
+echobase.info.no.table.selected=
+echobase.info.no.voyagee.found=
+echobase.info.user.create=
+echobase.info.user.delete=
+echobase.info.user.update=
+echobase.information.mission.created=
Property changes on: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-02-08 11:58:32 UTC (rev 308)
+++ trunk/pom.xml 2012-02-09 11:59:29 UTC (rev 309)
@@ -122,7 +122,7 @@
<slf4jVersion>1.6.4</slf4jVersion>
<jackcessVersion>1.2.6</jackcessVersion>
- <hibernateVersion>3.6.9.Final</hibernateVersion>
+ <hibernateVersion>3.6.10.Final</hibernateVersion>
<googleSearchEnabled>true</googleSearchEnabled>
@@ -133,7 +133,7 @@
<license.licenseName>agpl_v3</license.licenseName>
<!-- i18n configuration -->
- <i18n.bundles>fr_FR</i18n.bundles>
+ <i18n.bundles>fr_FR,en_GB</i18n.bundles>
<i18n.silent>true</i18n.silent>
</properties>
@@ -459,7 +459,7 @@
<plugins>
<plugin>
<groupId>org.nuiton</groupId>
- <artifactId>maven-helper-plugin</artifactId>
+ <artifactId>helper-maven-plugin</artifactId>
<executions>
<execution>
<id>check-central-safe</id>
1
0
r308 - in trunk: . echobase-services/src/main/java/fr/ifremer/echobase/services echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData src/doc/reunions
by tchemit@users.forge.codelutin.com 08 Feb '12
by tchemit@users.forge.codelutin.com 08 Feb '12
08 Feb '12
Author: tchemit
Date: 2012-02-08 12:58:32 +0100 (Wed, 08 Feb 2012)
New Revision: 308
Url: http://forge.codelutin.com/repositories/revision/echobase/308
Log:
update versions, add headers, next reunion file + snv properties and little...
Added:
trunk/src/doc/reunions/reunion-2012-02-08.txt
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java
trunk/pom.xml
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-07 01:28:50 UTC (rev 307)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-02-08 11:58:32 UTC (rev 308)
@@ -272,6 +272,7 @@
query.addOrderDesc(sidx);
}
}
+
query.setLimit(from, to - 1);
if (StringUtils.isNotEmpty(extraWhereQuery)) {
query.addWhere(extraWhereQuery);
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-07 01:28:50 UTC (rev 307)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-08 11:58:32 UTC (rev 308)
@@ -43,9 +43,6 @@
/** Universe of existing voyages. */
protected Map<String, String> voyages;
-// /** Universe of existing vessels. */
-// protected Map<String, String> vessels;
-
public ConfigureOperation() {
super(OperationImportConfiguration.class);
}
@@ -64,8 +61,6 @@
newService(EchoBaseServiceSupport.class);
voyages = loadSortAndDecorate(service, Voyage.class);
-// vessels = loadSortAndDecorate(service, Vessel.class);
-
return INPUT;
}
@@ -73,10 +68,6 @@
return voyages;
}
-// public Map<String, String> getVessels() {
-// return vessels;
-// }
-
public void setOperationFile(File file) {
getModel().getOperationFile().setFile(file);
}
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-02-07 01:28:50 UTC (rev 307)
+++ trunk/pom.xml 2012-02-08 11:58:32 UTC (rev 308)
@@ -112,19 +112,18 @@
<topiaVersion>2.6.6</topiaVersion>
<nuitonUtilsVersion>2.4.4</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
- <nuitonWebVersion>1.9.1</nuitonWebVersion>
+ <nuitonWebVersion>1.9.2</nuitonWebVersion>
<msaccessImporterVersion>1.4.1</msaccessImporterVersion>
<struts2Version>2.3.1.2</struts2Version>
<jqueryPluginVersion>3.2.1</jqueryPluginVersion>
- <seleniumVersion>2.17.0</seleniumVersion>
- <h2Version>1.3.163</h2Version>
+ <seleniumVersion>2.18.0</seleniumVersion>
+ <h2Version>1.3.164</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
<slf4jVersion>1.6.4</slf4jVersion>
<jackcessVersion>1.2.6</jackcessVersion>
<hibernateVersion>3.6.9.Final</hibernateVersion>
- <wagonPluginVersion>1.0-beta-3</wagonPluginVersion>
<googleSearchEnabled>true</googleSearchEnabled>
<!-- license header configuration -->
Added: trunk/src/doc/reunions/reunion-2012-02-08.txt
===================================================================
--- trunk/src/doc/reunions/reunion-2012-02-08.txt (rev 0)
+++ trunk/src/doc/reunions/reunion-2012-02-08.txt 2012-02-08 11:58:32 UTC (rev 308)
@@ -0,0 +1,118 @@
+projet echobase
+---------------
+
+Mercredi 08 février 2012 (Ifremer)
+
+Présents : Mathieu et Tony
+
+Planning
+--------
+
+- import nouvelles données
+- valider les imports déjà réalisés
+- revoir les clef des espèces
+
+Import nouvelles données
+------------------------
+
+- pouvoir créer une nouvelle mission en indépendant (un autre écran)
+
+Import Common datas
+===================
+
+1) Un seul écran pour importer les données communes :
+
+mode 1: import d'un nouveau voyage / transit / transect
+mode 2: import d'un nouveau transect (renseigné par un voyage + un navire)
+
+OK.
+
+Import Operations
+=================
+
+- voyage
+- navire (connus dans les transects du voyage)
+
+- format des fichiers à définir
+Operation / OperationMetaData / GearMetaData
+
+OK.
+
+Import Samples
+==============
+
+- voyage
+- navire
+- fichier Sample
+- fichier SampleData
+- on utilisera une clef temporaire pour lier les Sample et SampleData)
+- pour retrouver les Operations, on se basera sur Operation#id
+
+Import Acoustic data
+====================
+
+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.
+
+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
+les metadata à utiliser sur les data ESDU (suffix saufMid-> Bary)
+
+OK.
+
+- prendre en compte le nouveau format movies (suppression colonne) + comment sélectionner les acousticInstrument.
+
+OK réalisé.
+
+Import résultats
+================
+
+mode 1: import au niveau du voyage
+ - sélection voyage
+ - fichier echotype
+ - relations taille-poids
+ - relations taille-age
+
+Chaque import est indépendant et optionnel.
+
+OK réalisé.
+
+mode 2: import acoustique
+ - sélection voyage
+ - sélection navire
+
+ on retrouvera les transits via les plages temporelles
+
+- ajoute les celles régions
+
+- et les résultats ???
+
+
+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é).
+
+- Mathieu
+
+ - import operation (format et fichiers à fournir)
+ - import "sample" (format et fichiers à fournir)
+ - import "résultats" (echotype, taille-poids-age), + clarifier la partie acoustic
+
+Prochaine réunion :
+
+ - mercredi 8/02 14h30
\ No newline at end of file
Property changes on: trunk/src/doc/reunions/reunion-2012-02-08.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
07 Feb '12
Author: tchemit
Date: 2012-02-07 02:28:50 +0100 (Tue, 07 Feb 2012)
New Revision: 307
Url: http://forge.codelutin.com/repositories/revision/echobase/307
Log:
add operation imports + improve csv import model rows + reuse in ui voyage/transit/vessel selector
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.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/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/OperationImportConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.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/LengthAgeKeyImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.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/OperationMetadataValueImportModelRow.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/ConfigureOperation.java
trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp
trunk/echobase-ui/src/main/webapp/js/gridHelper.js
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -208,6 +208,13 @@
}
};
+ public static final Function<Gear, String> GEAR_NAME = new Function<Gear, String>() {
+ @Override
+ public String apply(Gear input) {
+ return input.getName();
+ }
+ };
+
public static final Function<Operation, String> OPERATION_ID = new Function<Operation, String>() {
@Override
public String apply(Operation input) {
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -68,8 +68,11 @@
EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ // get selected transit
Transit transit = getEntityById(Transit.class,
configuration.getTransitId());
+
+ // get selected vessel
Vessel vessel = getEntityById(Vessel.class,
configuration.getVesselId());
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -26,10 +26,10 @@
import com.google.common.collect.Maps;
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.data.GearMetadataValue;
-import fr.ifremer.echobase.entities.data.GearMetadataValueDAO;
-import fr.ifremer.echobase.entities.data.Operation;
-import fr.ifremer.echobase.entities.data.OperationDAO;
+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.Vessel;
import fr.ifremer.echobase.services.configurations.CatchesDataImportConfiguration;
@@ -75,9 +75,7 @@
SampleImportModel csvModel = new SampleImportModel(getCsvSeparator());
- OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
- GearMetadataValueDAO metadataValuedao =
- getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+ SampleDAO dao = getDAO(Sample.class, SampleDAO.class);
Reader reader = getInputFileReader(inputFile);
try {
@@ -103,10 +101,9 @@
SampleDataImportModel csvModel = new SampleDataImportModel(getCsvSeparator());
- OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
- GearMetadataValueDAO metadataValuedao =
- getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+ SampleDataDAO dao = getDAO(SampleData.class, SampleDataDAO.class);
+
Reader reader = getInputFileReader(inputFile);
try {
Import<SampleDataImportModelRow> importer =
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -33,7 +33,10 @@
import fr.ifremer.echobase.entities.data.OperationDAO;
import fr.ifremer.echobase.entities.data.OperationMetadataValue;
import fr.ifremer.echobase.entities.data.OperationMetadataValueDAO;
-import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.references.DepthStratum;
+import fr.ifremer.echobase.entities.references.Gear;
import fr.ifremer.echobase.entities.references.GearMetadata;
import fr.ifremer.echobase.entities.references.OperationMetadata;
import fr.ifremer.echobase.entities.references.Vessel;
@@ -48,6 +51,7 @@
import org.nuiton.util.csv.ImportRuntimeException;
import java.io.Reader;
+import java.util.Arrays;
import java.util.Map;
/**
@@ -59,36 +63,61 @@
public class OperationImportService extends AbstractImportDataService<OperationImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(OperationImportConfiguration configuration,
- EchoBaseUser user) throws ImportException {
+ public 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 vessel
Vessel vessel = getEntityById(Vessel.class,
configuration.getVesselId());
- Voyage voyage = getEntityById(Voyage.class,
- configuration.getVoyageId());
+ // find out the correct transect to use
+ Transect transect = transit.getTransect(vessel);
- importOperationFile(configuration.getOperationFile(), voyage, vessel);
+ // authorize only to use this vessel in import files
+ Map<String, Vessel> vesselMap = Maps.uniqueIndex(
+ Arrays.asList(vessel), EchoBaseFunctions.VESSEL_NAME);
+ Map<String, Gear> gearMap = getEntitiesMap(
+ Gear.class, EchoBaseFunctions.GEAR_NAME);
+
+ importOperationFile(configuration.getOperationFile(),
+ transect,
+ vesselMap,
+ gearMap);
+
importOperationMetadataFile(configuration.getOperationMetadataFile(),
- voyage, vessel);
+ transect,
+ vesselMap);
importGearMetadataFile(configuration.getGearMetadataFile(),
- voyage,
- vessel);
+ transect,
+ vesselMap,
+ gearMap);
commitTransaction("Could not commit transaction of operation import");
return result;
}
protected void importOperationFile(InputFile inputFile,
- Voyage voyage,
- Vessel vessel) throws ImportException {
+ Transect transect,
+ Map<String, Vessel> vesselMap,
+ Map<String, Gear> gearMap) throws ImportException {
+ Map<String, DepthStratum> depthStratumMap = getEntitiesMap(
+ DepthStratum.class, EchoBaseFunctions.DEPTH_STRATUM_ID);
+
OperationImportModel csvModel =
- new OperationImportModel(getCsvSeparator());
+ new OperationImportModel(getCsvSeparator(),
+ vesselMap,
+ gearMap,
+ depthStratumMap);
OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
@@ -99,8 +128,11 @@
for (OperationImportModelRow row : importer) {
- //TODO
+ Operation operationToCreate = row.getOperation();
+ Operation operation = create(dao, operationToCreate);
+
+ transect.addOperation(operation);
}
} catch (ImportRuntimeException e) {
@@ -111,20 +143,25 @@
}
protected void importOperationMetadataFile(InputFile inputFile,
- Voyage voyage,
- Vessel vessel) throws ImportException {
+ Transect transect,
+ Map<String, Vessel> vesselMap) throws ImportException {
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());
+ new OperationMetadataValueImportModel(getCsvSeparator(),
+ vesselMap,
+ operationMetadatasByName,
+ operationById);
- OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
- OperationMetadataValueDAO metadataValuedao =
- getDAO(OperationMetadataValue.class,
- OperationMetadataValueDAO.class);
+ OperationMetadataValueDAO dao = getDAO(
+ OperationMetadataValue.class,
+ OperationMetadataValueDAO.class);
Reader reader = getInputFileReader(inputFile);
try {
@@ -133,8 +170,15 @@
for (OperationMetadataValueImportModelRow row : importer) {
- //TODO
+ Operation operation = row.getOperation();
+ OperationMetadataValue operationMetadataValueToCreate =
+ row.getOperationMetadataValue();
+ OperationMetadataValue operationMetadataValue = create(
+ dao, operationMetadataValueToCreate);
+
+ operation.addOperationMetadataValue(operationMetadataValue);
+
}
} catch (ImportRuntimeException e) {
@@ -145,18 +189,25 @@
}
protected void importGearMetadataFile(InputFile inputFile,
- Voyage voyage,
- Vessel vessel) throws ImportException {
+ Transect transect,
+ Map<String, Vessel> vesselMap,
+ Map<String, Gear> gearMap) throws ImportException {
Map<String, GearMetadata> gearMetadatasByType =
getEntitiesMap(GearMetadata.class, EchoBaseFunctions.GEAR_METADATA_TYPE);
+ Map<String, Operation> operationById = Maps.uniqueIndex(
+ transect.getOperation(), EchoBaseFunctions.OPERATION_ID);
+
GearMetadataValueImportModel csvModel =
- new GearMetadataValueImportModel(getCsvSeparator());
+ new GearMetadataValueImportModel(getCsvSeparator(),
+ vesselMap,
+ gearMetadatasByType,
+ gearMap,
+ operationById);
- OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
- GearMetadataValueDAO metadataValuedao =
- getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+ GearMetadataValueDAO dao = getDAO(GearMetadataValue.class,
+ GearMetadataValueDAO.class);
Reader reader = getInputFileReader(inputFile);
try {
@@ -165,8 +216,15 @@
for (GearMetadataValueImportModelRow row : importer) {
- //TODO
+ Operation operation = row.getOperation();
+ GearMetadataValue gearMetadataValuetoCreate =
+ row.getGearMetadataValue();
+ GearMetadataValue gearMetadataValue = create(
+ dao, gearMetadataValuetoCreate);
+
+ operation.addGearMetadataValue(gearMetadataValue);
+
}
} catch (ImportRuntimeException e) {
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -58,6 +58,7 @@
import org.nuiton.util.csv.ImportRuntimeException;
import java.io.Reader;
+import java.util.Arrays;
import java.util.Map;
/**
@@ -77,9 +78,14 @@
switch (importMode) {
case VOYAGE:
- Map<String, Voyage> voyageMap = getEntitiesMap(
- Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
+ // get selected voyage
+ Voyage voyage = getEntityById(Voyage.class,
+ configuration.getVoyageId());
+ // authorize only the selected voyage to be imported
+ Map<String, Voyage> voyageMap = Maps.uniqueIndex(Arrays.asList(
+ voyage), EchoBaseFunctions.VOYAGE_NAME);
+
Map<String, Species> speciesMap = getEntitiesMap(
Species.class,
EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
@@ -198,10 +204,11 @@
Voyage voyage = row.getVoyage();
- LengthWeightKey lengthWeightKey = create(dao);
+ LengthWeightKey lengthWeightKeyToCreate =
+ row.getLengthWeightKey();
+ LengthWeightKey lengthWeightKey = create(
+ dao, lengthWeightKeyToCreate);
- lengthWeightKey.setAParameter(row.getaParameter());
- lengthWeightKey.setBParameter(row.getbParameter());
//TODO should we import it ?
//lengthWeightKey.setMetadata(row.getMetadata());
@@ -261,15 +268,9 @@
Voyage voyage = row.getVoyage();
- LengthAgeKey lengthAgeKey = create(dao);
+ LengthAgeKey lengthAgeKeyToCreate = row.getLengthAgeKey();
+ LengthAgeKey lengthAgeKey = create(dao, lengthAgeKeyToCreate);
- lengthAgeKey.setAge(row.getAge());
- lengthAgeKey.setLength(row.getLength());
- lengthAgeKey.setPercentAtAge(row.getPercentAtAge());
- lengthAgeKey.setMetadata(row.getMetadata());
- lengthAgeKey.setSpecies(row.getSpecies());
- lengthAgeKey.setStrata(row.getStrata());
-
// attach it to voyage
voyage.addLengthAgeKey(lengthAgeKey);
@@ -314,8 +315,10 @@
if (!voyage.isEchotypeEmpty()) {
- echotype = Iterables.find(voyage.getEchotype(),
- EchoBasePredicates.newEchotypeByNamePredicate(echotypeName));
+ echotype = Iterables.find(
+ voyage.getEchotype(),
+ EchoBasePredicates.newEchotypeByNamePredicate(
+ echotypeName));
}
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/OperationImportConfiguration.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -42,6 +42,9 @@
/** 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;
@@ -71,6 +74,14 @@
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/csv/AcousticDataImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/AcousticDataImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -107,29 +107,6 @@
newIgnoredColumn("MOVIES_EILayer\\eilayer\\sv");//BL
newIgnoredColumn("MOVIES_EILayer\\eilayer\\ni");//BM
newIgnoredColumn("MOVIES_EILayer\\eilayer\\nt");//BN
-
-// // Cell ESDU Datas
-// newIgnoredColumn("MOVIES_EILayer\\cellset2");//BO
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\cellnum");//BP
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\celltype");//BQ
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\depthstart");//BR
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\depthend");//BS
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\indexstart");//BT
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\indexend");//BU
-// newMandatoryColumn("MOVIES_EILayer\\cellset2\\datestart", AcousticDataImportModelRow.PROPERTY_CELL_DATE_START);//BV
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\dateend");//BW
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\diststart");//BX
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\distend");//BY
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\thresholdup");//BZ
-// newIgnoredColumn("MOVIES_EILayer\\cellset2\\thresholdlow");//CA
-// newIgnoredColumn("MOVIES_EILayer\\eilayer2");//CB
-// newMandatoryColumn("MOVIES_EILayer\\eilayer2\\sa", AcousticDataImportModelRow.PROPERTY_CELL_SA);//CC
-// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\sv");//CD
-// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\ni");//CE
-// newIgnoredColumn("MOVIES_EILayer\\eilayer2\\nt");//CF
-// newIgnoredColumn("MOVIES_EILayer\\boterr");//CG
-// newIgnoredColumn("MOVIES_EILayer\\boterr\\sa");//CH
-// newIgnoredColumn("MOVIES_EILayer\\boterr\\ni");//CI
}
@Override
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -24,7 +24,13 @@
package fr.ifremer.echobase.services.csv;
import fr.ifremer.echobase.entities.data.GearMetadataValue;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.references.Gear;
+import fr.ifremer.echobase.entities.references.GearMetadata;
+import fr.ifremer.echobase.entities.references.Vessel;
+import java.util.Map;
+
/**
* Model to import {@link GearMetadataValue}.
*
@@ -33,8 +39,28 @@
*/
public class GearMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<GearMetadataValueImportModelRow> {
- public GearMetadataValueImportModel(char separator) {
+ public GearMetadataValueImportModel(char separator,
+ Map<String, Vessel> vesselMap,
+ Map<String, GearMetadata> gearMetadataMap,
+ Map<String, Gear> gearMap,
+ Map<String, Operation> operationMap) {
super(separator);
+
+ /*
+ vesselName
+ id
+ gearID
+ metadataType
+ gearMetadataValue
+ */
+
+ newMandatoryColumn("vesselName", GearMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
+ newMandatoryColumn("id", 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("gearMetadataValue", GearMetadataValue.PROPERTY_DATA_VALUE);
+
}
@Override
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -23,16 +23,60 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.GearMetadataValue;
+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.GearMetadata;
+import fr.ifremer.echobase.entities.references.Vessel;
+
/**
- * Bean used as a row for import of {@link OperationMetadataValueImportModel}.
+ * Bean used as a row for import of {@link GearMetadataValueImportModel}.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
public class GearMetadataValueImportModelRow {
+ public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL;
+ public static final String PROPERTY_OPERATION = Transect.PROPERTY_OPERATION;
+
+ protected Vessel vessel;
+
+ protected Operation operation;
+
+ protected final GearMetadataValue gearMetadataValue;
+
public GearMetadataValueImportModelRow() {
+ gearMetadataValue = new GearMetadataValueImpl();
}
+ public GearMetadataValue getGearMetadataValue() {
+ return gearMetadataValue;
+ }
+
+ public void setGearMetadata(GearMetadata gearMetadata) {
+ gearMetadataValue.setGearMetadata(gearMetadata);
+ }
+
+ public void setDataValue(String dataValue) {
+ gearMetadataValue.setDataValue(dataValue);
+ }
+
+ public Operation getOperation() {
+ return operation;
+ }
+
+ public void setOperation(Operation operation) {
+ this.operation = operation;
+ }
+
+ public Vessel getVessel() {
+ return vessel;
+ }
+
+ public void setVessel(Vessel vessel) {
+ this.vessel = vessel;
+ }
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -53,15 +53,15 @@
this.strataMap = strataMap;
this.speciesMap = speciesMap;
- newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_AGE, CsvModelUtil.PRIMITIVE_INTEGER);
- newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_PERCENT_AT_AGE, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_METADATA);
-
newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap));
- newMandatoryColumn(LengthAgeKeyImportModelRow.PROPERTY_STRATA, CsvModelUtil.newForeignKeyValue(Strata.class, strataMap));
- newMandatoryColumn("codeMemo", LengthAgeKeyImportModelRow.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap));
+ newMandatoryColumn(LengthAgeKey.PROPERTY_AGE, CsvModelUtil.PRIMITIVE_INTEGER);
+ newMandatoryColumn(LengthAgeKey.PROPERTY_PERCENT_AT_AGE, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(LengthAgeKey.PROPERTY_LENGTH, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(LengthAgeKey.PROPERTY_METADATA);
+ newMandatoryColumn(LengthAgeKey.PROPERTY_STRATA, CsvModelUtil.newForeignKeyValue(Strata.class, strataMap));
+ newMandatoryColumn("codeMemo", LengthAgeKey.PROPERTY_SPECIES, CsvModelUtil.newForeignKeyValue(Species.class, speciesMap));
+
}
@Override
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthAgeKeyImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -25,6 +25,7 @@
import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.references.LengthAgeKey;
+import fr.ifremer.echobase.entities.references.LengthAgeKeyImpl;
import fr.ifremer.echobase.entities.references.Species;
import fr.ifremer.echobase.entities.references.Strata;
@@ -40,50 +41,20 @@
private static final long serialVersionUID = 1L;
- public static final String PROPERTY_SPECIES = LengthAgeKey.PROPERTY_SPECIES;
-
- public static final String PROPERTY_AGE = LengthAgeKey.PROPERTY_AGE;
-
public static final String PROPERTY_VOYAGE = "voyage";
- public static final String PROPERTY_LENGTH = LengthAgeKey.PROPERTY_LENGTH;
-
- public static final String PROPERTY_PERCENT_AT_AGE = LengthAgeKey.PROPERTY_PERCENT_AT_AGE;
-
- public static final String PROPERTY_METADATA = LengthAgeKey.PROPERTY_METADATA;
-
- public static final String PROPERTY_STRATA = LengthAgeKey.PROPERTY_STRATA;
-
- protected Species species;
-
- protected int age;
-
protected Voyage voyage;
- protected float length;
+ protected final LengthAgeKey lengthAgeKey;
- protected float percentAtAge;
-
- protected String metadata;
-
- protected Strata strata;
-
- public Species getSpecies() {
- return species;
+ public LengthAgeKeyImportModelRow() {
+ lengthAgeKey = new LengthAgeKeyImpl();
}
- public void setSpecies(Species species) {
- this.species = species;
+ public LengthAgeKey getLengthAgeKey() {
+ return lengthAgeKey;
}
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
public Voyage getVoyage() {
return voyage;
}
@@ -92,35 +63,27 @@
this.voyage = voyage;
}
- public float getLength() {
- return length;
+ public void setAge(int age) {
+ lengthAgeKey.setAge(age);
}
public void setLength(float length) {
- this.length = length;
+ lengthAgeKey.setLength(length);
}
- public float getPercentAtAge() {
- return percentAtAge;
- }
-
public void setPercentAtAge(float percentAtAge) {
- this.percentAtAge = percentAtAge;
+ lengthAgeKey.setPercentAtAge(percentAtAge);
}
- public String getMetadata() {
- return metadata;
- }
-
public void setMetadata(String metadata) {
- this.metadata = metadata;
+ lengthAgeKey.setMetadata(metadata);
}
- public Strata getStrata() {
- return strata;
+ public void setStrata(Strata strata) {
+ lengthAgeKey.setStrata(strata);
}
- public void setStrata(Strata strata) {
- this.strata = strata;
+ public void setSpecies(Species species) {
+ lengthAgeKey.setSpecies(species);
}
}
\ No newline at end of file
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -61,8 +61,8 @@
codeMemo
*/
- newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_APARAMETER, CsvModelUtil.PRIMITIVE_FLOAT);
- newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_BPARAMETER, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(LengthWeightKey.PROPERTY_APARAMETER, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(LengthWeightKey.PROPERTY_BPARAMETER, CsvModelUtil.PRIMITIVE_FLOAT);
newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_VOYAGE, CsvModelUtil.newForeignKeyValue(Voyage.class, voyageMap));
newMandatoryColumn(LengthWeightKeyImportModelRow.PROPERTY_SIZE_CATEGORY, CsvModelUtil.newForeignKeyValue(SizeCategory.class, sizeCategoryMap));
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/LengthWeightKeyImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -25,6 +25,7 @@
import fr.ifremer.echobase.entities.data.Voyage;
import fr.ifremer.echobase.entities.references.LengthWeightKey;
+import fr.ifremer.echobase.entities.references.LengthWeightKeyImpl;
import fr.ifremer.echobase.entities.references.SizeCategory;
import fr.ifremer.echobase.entities.references.Species;
@@ -46,20 +47,22 @@
public static final String PROPERTY_SIZE_CATEGORY = "sizeCategory";
- public static final String PROPERTY_APARAMETER = LengthWeightKey.PROPERTY_APARAMETER;
-
- public static final String PROPERTY_BPARAMETER = LengthWeightKey.PROPERTY_BPARAMETER;
-
protected Species species;
protected SizeCategory sizeCategory;
protected Voyage voyage;
- protected float aParameter;
+ protected final LengthWeightKey lengthWeightKey;
- protected float bParameter;
+ public LengthWeightKeyImportModelRow() {
+ lengthWeightKey = new LengthWeightKeyImpl();
+ }
+ public LengthWeightKey getLengthWeightKey() {
+ return lengthWeightKey;
+ }
+
public Species getSpecies() {
return species;
}
@@ -84,19 +87,11 @@
this.voyage = voyage;
}
- public float getaParameter() {
- return aParameter;
+ public void setBParameter(float BParameter) {
+ lengthWeightKey.setBParameter(BParameter);
}
- public void setaParameter(float aParameter) {
- this.aParameter = aParameter;
+ public void setAParameter(float AParameter) {
+ lengthWeightKey.setAParameter(AParameter);
}
-
- public float getbParameter() {
- return bParameter;
- }
-
- public void setbParameter(float bParameter) {
- this.bParameter = bParameter;
- }
}
\ No newline at end of file
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -24,7 +24,12 @@
package fr.ifremer.echobase.services.csv;
import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.references.DepthStratum;
+import fr.ifremer.echobase.entities.references.Gear;
+import fr.ifremer.echobase.entities.references.Vessel;
+import java.util.Map;
+
/**
* Model to import {@link Operation}.
*
@@ -33,8 +38,39 @@
*/
public class OperationImportModel extends CsvModelUtil.AbstractImportModel<OperationImportModelRow> {
- public OperationImportModel(char separator) {
+ public OperationImportModel(char separator,
+ Map<String, Vessel> vesselMap,
+ Map<String, Gear> gearMap,
+ Map<String, DepthStratum> depthStratumMap) {
super(separator);
+
+ /*
+ vesselName //
+ id //
+ depthStratumID //
+ gearShootingStartTime //
+ midHaulLatitude //
+ midHaulLongitude //
+ gearShootingStartLatitude //
+ gearShootingStartLongitude //
+ gearShootingEndTime //
+ gearShootingEndLatitude //
+ gearShootingEndLongitude //
+ gearName //
+ */
+ newMandatoryColumn("vesselName", OperationImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
+
+ 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_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);
+ newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LATITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
+ newMandatoryColumn(Operation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, CsvModelUtil.PRIMITIVE_FLOAT);
}
@Override
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -23,6 +23,15 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationImpl;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.references.DepthStratum;
+import fr.ifremer.echobase.entities.references.Gear;
+import fr.ifremer.echobase.entities.references.Vessel;
+
+import java.util.Date;
+
/**
* Bean used as a row for import of {@link OperationImportModel}.
*
@@ -31,8 +40,69 @@
*/
public class OperationImportModelRow {
+ public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL;
+ protected Vessel vessel;
+
+ protected final Operation operation;
+
public OperationImportModelRow() {
+ operation = new OperationImpl();
}
+ public Operation getOperation() {
+ return operation;
+ }
+
+ public Vessel getVessel() {
+ return vessel;
+ }
+
+ public void setVessel(Vessel vessel) {
+ this.vessel = vessel;
+ }
+
+ public void setId(String id) {
+ operation.setId(id);
+ }
+
+ public void setGearShootingStartTime(Date gearShootingStartTime) {
+ operation.setGearShootingStartTime(gearShootingStartTime);
+ }
+
+ public void setGearShootingEndTime(Date gearShootingEndTime) {
+ operation.setGearShootingEndTime(gearShootingEndTime);
+ }
+
+ public void setGearShootingStartLatitude(Float gearShootingStartLatitude) {
+ operation.setGearShootingStartLatitude(gearShootingStartLatitude);
+ }
+
+ public void setGearShootingEndLatitude(Float gearShootingEndLatitude) {
+ operation.setGearShootingEndLatitude(gearShootingEndLatitude);
+ }
+
+ public void setGearShootingStartLongitude(Float gearShootingStartLongitude) {
+ operation.setGearShootingStartLongitude(gearShootingStartLongitude);
+ }
+
+ public void setGearShootingEndLongitude(Float gearShootingEndLongitude) {
+ operation.setGearShootingEndLongitude(gearShootingEndLongitude);
+ }
+
+ public void setMidHauleLatitude(float midHauleLatitude) {
+ operation.setMidHauleLatitude(midHauleLatitude);
+ }
+
+ public void setMidHauleLongitude(float midHauleLongitude) {
+ operation.setMidHauleLongitude(midHauleLongitude);
+ }
+
+ public void setDepthStratum(DepthStratum depthStratum) {
+ operation.setDepthStratum(depthStratum);
+ }
+
+ public void setGear(Gear gear) {
+ operation.setGear(gear);
+ }
}
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -23,8 +23,13 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Operation;
import fr.ifremer.echobase.entities.data.OperationMetadataValue;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
+import fr.ifremer.echobase.entities.references.Vessel;
+import java.util.Map;
+
/**
* Model to import {@link OperationMetadataValue}.
*
@@ -33,8 +38,24 @@
*/
public class OperationMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<OperationMetadataValueImportModelRow> {
- public OperationMetadataValueImportModel(char separator) {
+ public OperationMetadataValueImportModel(char separator,
+ Map<String, Vessel> vesselMap,
+ Map<String, OperationMetadata> operationMetadataMap,
+ Map<String, Operation> operationMap) {
super(separator);
+
+ /*
+ vesselName/
+ id/
+ metadataType/
+ operationMetadataValue/
+ */
+
+ newMandatoryColumn("vesselName", OperationMetadataValueImportModelRow.PROPERTY_VESSEL, CsvModelUtil.newForeignKeyValue(Vessel.class, vesselMap));
+ newMandatoryColumn("id", 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);
}
@Override
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -23,6 +23,13 @@
*/
package fr.ifremer.echobase.services.csv;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationMetadataValue;
+import fr.ifremer.echobase.entities.data.OperationMetadataValueImpl;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
+import fr.ifremer.echobase.entities.references.Vessel;
+
/**
* Bean used as a row for import of {@link OperationMetadataValueImportModel}.
*
@@ -31,8 +38,45 @@
*/
public class OperationMetadataValueImportModelRow {
+ public static final String PROPERTY_VESSEL = Transect.PROPERTY_VESSEL;
+ public static final String PROPERTY_OPERATION = Transect.PROPERTY_OPERATION;
+
+ protected Operation operation;
+
+ protected Vessel vessel;
+
+ protected final OperationMetadataValue operationMetadataValue;
+
public OperationMetadataValueImportModelRow() {
+ operationMetadataValue = new OperationMetadataValueImpl();
}
+ public OperationMetadataValue getOperationMetadataValue() {
+ return operationMetadataValue;
+ }
+
+ public void setOperationMetadata(OperationMetadata operationMetadata) {
+ operationMetadataValue.setOperationMetadata(operationMetadata);
+ }
+
+ public void setDataValue(String dataValue) {
+ operationMetadataValue.setDataValue(dataValue);
+ }
+
+ public Operation getOperation() {
+ return operation;
+ }
+
+ public void setOperation(Operation operation) {
+ this.operation = operation;
+ }
+
+ public Vessel getVessel() {
+ return vessel;
+ }
+
+ public void setVessel(Vessel vessel) {
+ this.vessel = vessel;
+ }
}
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -24,7 +24,6 @@
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.AccousticDataImportConfiguration;
import fr.ifremer.echobase.services.configurations.CellPositionReference;
@@ -45,8 +44,8 @@
/** Universe of existing voyages. */
protected Map<String, String> voyages;
- /** Universe of existing vessels. */
- protected Map<String, String> vessels;
+// /** Universe of existing vessels. */
+// protected Map<String, String> vessels;
protected Map<String, String> cellPositionReferences;
@@ -68,7 +67,7 @@
newService(EchoBaseServiceSupport.class);
voyages = loadSortAndDecorate(service, Voyage.class);
- vessels = loadSortAndDecorate(service, Vessel.class);
+// vessels = loadSortAndDecorate(service, Vessel.class);
cellPositionReferences = decorateEnums(CellPositionReference.values());
if (getModel().getCellPositionReference() == null) {
@@ -83,9 +82,9 @@
return voyages;
}
- public Map<String, String> getVessels() {
- return vessels;
- }
+// 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/ConfigureOperation.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation.java 2012-02-07 01:28:50 UTC (rev 307)
@@ -24,7 +24,6 @@
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;
@@ -44,8 +43,8 @@
/** Universe of existing voyages. */
protected Map<String, String> voyages;
- /** Universe of existing vessels. */
- protected Map<String, String> vessels;
+// /** Universe of existing vessels. */
+// protected Map<String, String> vessels;
public ConfigureOperation() {
super(OperationImportConfiguration.class);
@@ -65,7 +64,7 @@
newService(EchoBaseServiceSupport.class);
voyages = loadSortAndDecorate(service, Voyage.class);
- vessels = loadSortAndDecorate(service, Vessel.class);
+// vessels = loadSortAndDecorate(service, Vessel.class);
return INPUT;
}
@@ -74,9 +73,9 @@
return voyages;
}
- public Map<String, String> getVessels() {
- return vessels;
- }
+// public Map<String, String> getVessels() {
+// return vessels;
+// }
public void setOperationFile(File file) {
getModel().getOperationFile().setFile(file);
Modified: trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml
===================================================================
--- trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/resources/fr/ifremer/echobase/ui/actions/importData/ConfigureOperation-validation.xml 2012-02-07 01:28:50 UTC (rev 307)
@@ -36,6 +36,12 @@
</field-validator>
</field>
+ <field name="model.transitId">
+ <field-validator type="nrequiredstring">
+ <message key="echobase.error.import.transit.required"/>
+ </field-validator>
+ </field>
+
<field name="model.vesselId">
<field-validator type="nrequiredstring">
<message key="echobase.error.import.vessel.required"/>
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureAccousticData.jsp 2012-02-07 01:28:50 UTC (rev 307)
@@ -31,68 +31,21 @@
Configuration <s:text name="echobase.common.importDataMode.accousticData"/>
</title>
-<s:url id="getTransitsUrl" action="getTransits" namespace="/importData"/>
-<s:url id="getVesselsUrl" action="getVessels" namespace="/importData"/>
-
<script type="text/javascript">
+
jQuery(document).ready(function () {
- var voyageSelectBox = $('[name="model.voyageId"]');
- var transitSelectBox = $('[name="model.transitId"]');
- var vesselSelectBox = $('[name="model.vesselId"]');
-
- voyageSelectBox.change({transitSelectBox:transitSelectBox,
- vesselSelectBox:vesselSelectBox}, function (event) {
-
- $.updateSelectBoxContent('${getTransitsUrl}',
- {voyageId:this.value},
- 'transits',
- event.data.transitSelectBox
- );
- event.data.vesselSelectBox.html("");
- });
-
- transitSelectBox.change({vesselSelectBox:vesselSelectBox}, function (event) {
-
- $.updateSelectBoxContent('${getVesselsUrl}',
- {transitId:this.value},
- 'vessels',
- event.data.vesselSelectBox);
- });
-
- var voyageId = "${model.voyageId}";
-
- if (voyageId) {
-
- console.info("reload voyageId " + voyageId);
- voyageSelectBox.change(voyageId);
- $.updateSelectBoxContent(
- '${getTransitsUrl}',
- {voyageId:voyageId},
- 'transits',
- transitSelectBox,
- function () {
-
- var transitId = "${model.transitId}";
- if (transitId) {
-
- transitSelectBox.val(transitId);
- $.updateSelectBoxContent('${getVesselsUrl}',
- {transitId:transitId},
- 'vessels',
- vesselSelectBox, function () {
-
- var vesselId = "${model.vesselId}";
- if (vesselId) {
- vesselSelectBox.val(vesselId);
- }
- });
- }
- }
- );
- }
-
+ $.autoSelectVoyageTransitAndVessel(
+ $('[name="model.voyageId"]'),
+ $('[name="model.transitId"]'),
+ $('[name="model.vesselId"]'),
+ '<s:url action="getTransits" namespace="/importData"/>',
+ '<s:url action="getVessels" namespace="/importData"/>',
+ '<s:property value="model.voyageId"/>',
+ '<s:property value="model.transitId"/>',
+ '<s:property value="model.vesselId"/>'
+ );
});
</script>
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-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importData/configureOperation.jsp 2012-02-07 01:28:50 UTC (rev 307)
@@ -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.operation"/>
@@ -31,7 +34,16 @@
<script type="text/javascript">
jQuery(document).ready(function () {
-
+ $.autoSelectVoyageTransitAndVessel(
+ $('[name="model.voyageId"]'),
+ $('[name="model.transitId"]'),
+ $('[name="model.vesselId"]'),
+ '<s:url action="getTransits" namespace="/importData"/>',
+ '<s:url action="getVessels" namespace="/importData"/>',
+ '<s:property value="model.voyageId"/>',
+ '<s:property value="model.transitId"/>',
+ '<s:property value="model.vesselId"/>'
+ );
});
</script>
@@ -47,10 +59,12 @@
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.transitId" required="true"
+ label='%{getText("echobase.common.transit")}'/>
+ <sj:select key="model.vesselId" required="true"
+ label='%{getText("echobase.common.vessel")}'/>
+
<s:file key="operationFile" required="true"
label='%{getText("echobase.common.operationFile")}'/>
Modified: trunk/echobase-ui/src/main/webapp/js/gridHelper.js
===================================================================
--- trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-04 09:20:28 UTC (rev 306)
+++ trunk/echobase-ui/src/main/webapp/js/gridHelper.js 2012-02-07 01:28:50 UTC (rev 307)
@@ -166,6 +166,58 @@
$('table tr:odd').addClass('odd');
});
+ },
+
+ // auto-selection des voyages - transit - vessel
+ autoSelectVoyageTransitAndVessel:function (voyageSelectBox, transitSelectBox, vesselSelectBox, getTransitsUrl, getVesselsUrl, voyageId, transitId, vesselId) {
+
+ voyageSelectBox.change({transitSelectBox:transitSelectBox,
+ vesselSelectBox:vesselSelectBox,
+ getTransitsUrl:getTransitsUrl}, function (event) {
+
+ $.updateSelectBoxContent(event.data.getTransitsUrl,
+ {voyageId:this.value},
+ 'transits',
+ event.data.transitSelectBox
+ );
+ 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) {
+
+ transitSelectBox.val(transitId);
+ $.updateSelectBoxContent(
+ getVesselsUrl,
+ {transitId:transitId},
+ 'vessels',
+ vesselSelectBox, function () {
+
+ if (vesselId) {
+ vesselSelectBox.val(vesselId);
+ }
+ });
+ }
+ }
+ );
+ }
}
});
@@ -200,6 +252,9 @@
},
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);
}
});
})(jQuery);
1
0
04 Feb '12
Author: tchemit
Date: 2012-02-04 10:20:28 +0100 (Sat, 04 Feb 2012)
New Revision: 306
Url: http://forge.codelutin.com/repositories/revision/echobase/306
Log:
- prepare on structures for data import
- reformat code
- rename EchoBaseServiceContextImpl to DefaultEchoBaseServiceContext
- add some code to avoid nasty TopiaException everywhere (but should be done in Topia instead)
Added:
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/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/OperationMetadataValueImportModelRow.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModel.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/RegionCellImportModel.java
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
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
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/EchoBaseServiceSupport.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.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/AbstractEchobaseActionConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java
trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataProcessingLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesCategoryLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.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/embeddedApplication/Build.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/GetVessels.java
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -37,8 +37,10 @@
import fr.ifremer.echobase.entities.references.DepthStratum;
import fr.ifremer.echobase.entities.references.EchotypeCategory;
import fr.ifremer.echobase.entities.references.Gear;
+import fr.ifremer.echobase.entities.references.GearMetadata;
import fr.ifremer.echobase.entities.references.Mission;
import fr.ifremer.echobase.entities.references.OperationEvent;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
import fr.ifremer.echobase.entities.references.ReferenceDatum;
import fr.ifremer.echobase.entities.references.ReferenceDatumType;
import fr.ifremer.echobase.entities.references.SampleDataType;
@@ -248,6 +250,20 @@
}
};
+ public static final Function<OperationMetadata, String> OPERATION_METADATA_NAME = new Function<OperationMetadata, String>() {
+ @Override
+ public String apply(OperationMetadata input) {
+ return input.getName();
+ }
+ };
+
+ public static final Function<GearMetadata, String> GEAR_METADATA_TYPE = new Function<GearMetadata, String>() {
+ @Override
+ public String apply(GearMetadata input) {
+ return input.getType();
+ }
+ };
+
public static String getSpeciesCategoryKey(Species species, SizeCategory sizeCategory, SexCategory sexCategory) {
String key = species.getBaracoudaCode();
if (sizeCategory != null) {
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AbstractImportDataService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -23,12 +23,22 @@
*/
package fr.ifremer.echobase.services;
+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.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.FileNotFoundException;
+import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
+import java.util.List;
import java.util.Map;
/**
@@ -40,5 +50,68 @@
public abstract class AbstractImportDataService<M extends AbstractImportConfiguration> extends EchoBaseServiceSupport {
public abstract Map<InputFile, CsvImportResult> startImport(M configuration,
- EchoBaseUser user) throws IOException, TopiaException;
+ EchoBaseUser user) throws ImportException;
+
+
+ protected Reader getInputFileReader(InputFile inputFile) throws EchoBaseTechnicalException {
+ try {
+ Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ return reader;
+ } catch (FileNotFoundException e) {
+ throw new EchoBaseTechnicalException(
+ "Could not find import file " + inputFile.getFile(), e);
+ }
+ }
+
+ protected void closeReader(Reader reader, InputFile inputFile) {
+ try {
+ reader.close();
+ } catch (IOException 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) {
+ List<E> allVoyages = getEntities(entityType);
+ Map<K, E> voyageMap = Maps.uniqueIndex(
+ allVoyages, function);
+ return voyageMap;
+ }
+
+ protected <E extends TopiaEntity> E create(TopiaDAO<E> dao) {
+ try {
+ E result = dao.create();
+ return result;
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not create entity", e);
+ }
+ }
+
+ protected <E extends TopiaEntity> E create(TopiaDAO<E> dao, E entity) {
+ try {
+ E result = dao.create(entity);
+ return result;
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not create entity", e);
+ }
+ }
+
+ protected <E extends TopiaEntity> E create(TopiaDAO<E> dao, Object... properties) {
+ try {
+ E result = dao.create(properties);
+ return result;
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not create entity", e);
+ }
+ }
+
+ protected <E extends TopiaEntity> E findByProperties(TopiaDAO<E> dao, String propertyName, Object value,
+ Object... others) {
+ try {
+ E result = dao.findByProperties(propertyName, value, others);
+ return result;
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not obtain query db", e);
+ }
+ }
}
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/AccousticDataImportService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -46,17 +46,13 @@
import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration;
import fr.ifremer.echobase.services.csv.AcousticDataImportModel;
import fr.ifremer.echobase.services.csv.AcousticDataImportModelRow;
-import org.nuiton.topia.TopiaException;
import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportRuntimeException;
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
import java.io.Reader;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import java.util.List;
import java.util.Map;
/**
@@ -69,36 +65,26 @@
@Override
public Map<InputFile, CsvImportResult> startImport(AccousticDataImportConfiguration configuration,
- EchoBaseUser user) throws IOException, TopiaException {
+ EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
- Transit transit = getEntityById(Transit.class, configuration.getTransitId());
- Vessel vessel = getEntityById(Vessel.class, configuration.getVesselId());
+ Transit transit = getEntityById(Transit.class,
+ configuration.getTransitId());
+ Vessel vessel = getEntityById(Vessel.class,
+ configuration.getVesselId());
// find out the correct transect to use
Transect transect = transit.getTransect(vessel);
- List<AcousticInstrument> acousticInstruments = getEntities(AcousticInstrument.class);
- Map<String, AcousticInstrument> acousticInstrumentsById = Maps.uniqueIndex(
- acousticInstruments, EchoBaseFunctions.ACOUSTIC_INSTRUMENT_ID);
-
- List<CellType> cellTypes = getEntities(CellType.class);
- Map<String, CellType> cellTypesById = Maps.uniqueIndex(
- cellTypes, EchoBaseFunctions.CELL_TYPE_ID);
-
- List<DataMetadata> dataMetadatas = getEntities(DataMetadata.class);
- Map<String, DataMetadata> dataMetadatasByName = Maps.uniqueIndex(
- dataMetadatas, EchoBaseFunctions.DATA_METADATA_NAME);
-
- CellType esduCellType = cellTypesById.get("Esdu");
+ CellType esduCellType = getEntityByProperty(
+ CellType.class, CellType.PROPERTY_ID, "Esdu");
Preconditions.checkNotNull(esduCellType);
- CellType elementaryCellType = cellTypesById.get("Elementary");
+ CellType elementaryCellType = getEntityByProperty(
+ CellType.class, CellType.PROPERTY_ID, "Elementary");
Preconditions.checkNotNull(elementaryCellType);
importMoviesFile(transect,
- acousticInstrumentsById,
- dataMetadatasByName,
esduCellType,
elementaryCellType,
configuration,
@@ -110,31 +96,38 @@
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss'Z'");
private void importMoviesFile(Transect transect,
- Map<String, AcousticInstrument> instrumentsById,
- Map<String, DataMetadata> dataMetadatasByName,
CellType esduCellType,
CellType elementaryCellType,
AccousticDataImportConfiguration configuration,
- InputFile inputFile) throws TopiaException, IOException {
+ InputFile inputFile) throws ImportException {
- AcousticDataImportModel csvModel = new AcousticDataImportModel(serviceContext.getConfiguration().getCsvSeparator());
+ 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 =
- (DataAcquisitionDAO) getDAO(DataAcquisition.class);
+ getDAO(DataAcquisition.class, DataAcquisitionDAO.class);
DataProcessingDAO dataProcessingDAO =
- (DataProcessingDAO) getDAO(DataProcessing.class);
- CellDAO cellDAO = (CellDAO) getDAO(Cell.class);
- DataDAO dataDAO = (DataDAO) getDAO(Data.class);
+ 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 = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = getInputFileReader(inputFile);
try {
- Import<AcousticDataImportModelRow> importer = Import.newImport(csvModel, reader);
+ Import<AcousticDataImportModelRow> importer =
+ Import.newImport(csvModel, reader);
DataAcquisition dataAcquisition = null;
DataProcessing dataProcessing = null;
Cell esduCell = null;
- Cell elementaryCell = null;
+ Cell elementaryCell;
for (AcousticDataImportModelRow row : importer) {
// Build the row acoustic instrument
@@ -216,9 +209,9 @@
// this is a esdu cell row
// create esdu cell
- esduCell = cellDAO.create(
- Cell.PROPERTY_CELL_TYPE, esduCellType,
- Cell.PROPERTY_NAME, esduCellId
+ esduCell = create(cellDAO,
+ Cell.PROPERTY_CELL_TYPE, esduCellType,
+ Cell.PROPERTY_NAME, esduCellId
);
// add it to data processing
@@ -246,9 +239,9 @@
// create the elementary cell
- elementaryCell = cellDAO.create(
- Cell.PROPERTY_CELL_TYPE, elementaryCellType,
- Cell.PROPERTY_NAME, elementaryCellId
+ elementaryCell = create(cellDAO,
+ Cell.PROPERTY_CELL_TYPE, elementaryCellType,
+ Cell.PROPERTY_NAME, elementaryCellId
);
// add it to esdu cell
@@ -283,16 +276,18 @@
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
- private void createEsduCellData(AccousticDataImportConfiguration configuration,
- Cell cell,
- Map<String, DataMetadata> dataMetadatasByName,
- AcousticDataImportModelRow row,
- DataDAO dao) throws TopiaException {
+ protected void createEsduCellData(AccousticDataImportConfiguration configuration,
+ Cell cell,
+ Map<String, DataMetadata> dataMetadatasByName,
+ AcousticDataImportModelRow row,
+ DataDAO dao) {
DataMetadata dataMetadata;
Data data;
@@ -304,35 +299,35 @@
// create Latitude data
dataMetadata = dataMetadatasByName.get("Latitude" + suffix);
dataValue = row.getEsduCellDataLatitude();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create Longitude data
dataMetadata = dataMetadatasByName.get("Longitude" + suffix);
dataValue = row.getEsduCellDataLongitude();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create Depth data
dataMetadata = dataMetadatasByName.get("DepthRefSurface" + suffix);
dataValue = row.getEsduCellDataDepth();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create Time data
dataMetadata = dataMetadatasByName.get("Time" + suffix);
dataValue = cellDateFormat.format(row.getCellDateStart());
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create AcousticDensity data
dataMetadata = dataMetadatasByName.get("sa");
dataValue = row.getEsduCellDataAcousticDensity();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
}
@@ -341,7 +336,7 @@
Cell cell,
Map<String, DataMetadata> dataMetadatasByName,
AcousticDataImportModelRow row,
- DataDAO dao) throws TopiaException {
+ DataDAO dao) {
DataMetadata dataMetadata;
Data data;
@@ -370,21 +365,21 @@
// create depth start data
dataMetadata = dataMetadatasByName.get(startMeta);
dataValue = row.getCellDepthStart();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create depth end data
dataMetadata = dataMetadatasByName.get(endMeta);
dataValue = row.getCellDepthEnd();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
// create acoustic density data
dataMetadata = dataMetadatasByName.get("sa");
dataValue = row.getCellSa();
- data = dao.create(Data.PROPERTY_DATA_METADATA, dataMetadata);
+ data = create(dao, Data.PROPERTY_DATA_METADATA, dataMetadata);
data.setDataValue(dataValue);
cell.addData(data);
@@ -395,7 +390,7 @@
String softwareVersion,
String soundSpeedCalculations,
AcousticDataImportModelRow row,
- DataAcquisitionDAO dataAcquisitionDAO) throws TopiaException {
+ DataAcquisitionDAO dataAcquisitionDAO) {
String transceiverAcquisitionAbsorptionDescription =
configuration.getTransceiverAcquisitionAbsorptionDescription();
@@ -404,7 +399,7 @@
String pingDutyCycle = configuration.getPingDutyCycle();
String echosounderSoundSpeed = configuration.getEchosounderSoundSpeed();
- DataAcquisition dataAcquisition = dataAcquisitionDAO.create();
+ DataAcquisition dataAcquisition = create(dataAcquisitionDAO);
// fill from manual configuration
dataAcquisition.setAcousticInstrument(instrument);
@@ -450,7 +445,7 @@
String softwareVersion,
String soundSpeedCalculations,
AcousticDataImportModelRow row,
- DataProcessingDAO dataProcessingDAO) throws TopiaException {
+ DataProcessingDAO dataProcessingDAO) {
String transceiverAcquisitionAbsorptionDescription =
configuration.getTransceiverAcquisitionAbsorptionDescription();
@@ -462,7 +457,7 @@
String acousticDensityUnit = configuration.getAcousticDensityUnit();
String notes = configuration.getNotes();
- DataProcessing dataProcessing = dataProcessingDAO.create();
+ DataProcessing dataProcessing = create(dataProcessingDAO);
// fill from manual configuration
dataProcessing.setProcessingTemplate(processingTemplate);
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CatchesDataImportService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -26,14 +26,25 @@
import com.google.common.collect.Maps;
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.data.GearMetadataValue;
+import fr.ifremer.echobase.entities.data.GearMetadataValueDAO;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationDAO;
import fr.ifremer.echobase.entities.data.Voyage;
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 org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportRuntimeException;
+import java.io.Reader;
import java.util.Map;
/**
- * Service to launch a "catches data" import.
+ * Service to launch a "catches sample data" import.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
@@ -42,7 +53,7 @@
@Override
public Map<InputFile, CsvImportResult> startImport(CatchesDataImportConfiguration configuration,
- EchoBaseUser user) {
+ EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
Voyage voyage = getEntityById(Voyage.class,
@@ -58,12 +69,60 @@
return result;
}
- private void importSampleFile(InputFile inputFile, Voyage voyage, Vessel vessel) {
- char csvSeparator = serviceContext.getConfiguration().getCsvSeparator();
+ private void importSampleFile(InputFile inputFile,
+ Voyage voyage,
+ Vessel vessel) throws ImportException {
+
+ SampleImportModel csvModel = new SampleImportModel(getCsvSeparator());
+
+ OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
+ GearMetadataValueDAO metadataValuedao =
+ getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<SampleImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (SampleImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
- private void importSampleDataFile(InputFile inputFile, Voyage voyage, Vessel vessel) {
- char csvSeparator = serviceContext.getConfiguration().getCsvSeparator();
+ private void importSampleDataFile(InputFile inputFile,
+ Voyage voyage,
+ Vessel vessel) throws ImportException {
+
+ SampleDataImportModel csvModel = new SampleDataImportModel(getCsvSeparator());
+
+ OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
+ GearMetadataValueDAO metadataValuedao =
+ getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<SampleDataImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (SampleDataImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
}
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/CommonDataImportService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -30,8 +30,11 @@
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.TransectDAO;
import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.TransitDAO;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.data.VoyageDAO;
import fr.ifremer.echobase.entities.references.AreaOfOperation;
import fr.ifremer.echobase.entities.references.Mission;
import fr.ifremer.echobase.entities.references.MissionDAO;
@@ -44,18 +47,16 @@
import fr.ifremer.echobase.services.csv.TransitImportModelRow;
import fr.ifremer.echobase.services.csv.VoyageImportModel;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportModel;
+import org.nuiton.util.csv.ImportRuntimeException;
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
import java.io.Reader;
import java.util.Date;
-import java.util.List;
import java.util.Map;
+import static org.nuiton.i18n.I18n._;
+
/**
* Service to launch a "common data" import.
*
@@ -66,7 +67,7 @@
@Override
public Map<InputFile, CsvImportResult> startImport(CommonDataImportConfiguration configuration,
- EchoBaseUser user) throws IOException, TopiaException {
+ EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
@@ -84,61 +85,51 @@
getEntityById(AreaOfOperation.class,
configuration.getAreaOfOperationId());
-
importVoyageFile(configuration.getVoyageFile(),
mission,
areaOfOperation,
configuration.getVoyageDescription(),
configuration.getDatum());
- List<Voyage> allVoyages = getEntities(Voyage.class);
- Map<String, Voyage> voyageMap = Maps.uniqueIndex(
- allVoyages, EchoBaseFunctions.VOYAGE_NAME);
importTransitFile(configuration.getTransitFile(),
- voyageMap,
configuration.getTransitRelatedActivity());
+
importTransectFile(configuration.getTransectFile(),
vessel,
- voyageMap,
configuration);
-
-
}
break;
case TRANSECT: {
- List<Voyage> allVoyages = getEntities(Voyage.class);
- Map<String, Voyage> voyageMap = Maps.uniqueIndex(
- allVoyages, EchoBaseFunctions.VOYAGE_NAME);
+
importTransectFile(configuration.getTransectFile(),
vessel,
- voyageMap,
configuration);
}
break;
}
-
commitTransaction("Could not commit transaction of common data import");
return result;
}
+
public Mission createMission(Mission mission) throws MissionNameAlreadyExistException {
-
+
Preconditions.checkNotNull(mission);
-
+
try {
- MissionDAO dao = (MissionDAO) getDAO(Mission.class);
+ MissionDAO dao = getDAO(Mission.class, MissionDAO.class);
// check mission name is unique
- boolean exists = dao.existByProperties(Mission.PROPERTY_NAME,
+ boolean exists = dao.existByProperties(Mission.PROPERTY_NAME,
mission.getName());
-
+
if (exists) {
throw new MissionNameAlreadyExistException();
}
- Mission result = dao.create(mission);
+ Mission result = create(dao, mission);
commitTransaction("Could not create mission " +
mission.getName());
return result;
@@ -151,43 +142,57 @@
Mission mission,
AreaOfOperation areaOfOperation,
String voyageDescription,
- String datum) throws IOException, TopiaException {
+ String datum) throws ImportException {
+ VoyageDAO dao = getDAO(Voyage.class, VoyageDAO.class);
- ImportModel<Voyage> csvModel = new VoyageImportModel(serviceContext.getConfiguration().getCsvSeparator());
+ ImportModel<Voyage> csvModel =
+ new VoyageImportModel(getCsvSeparator());
- TopiaDAO<Voyage> dao = getDAO(Voyage.class);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+
+ Reader reader = getInputFileReader(inputFile);
+ Import<Voyage> importer = Import.newImport(csvModel, reader);
try {
- Import<Voyage> importer = Import.newImport(csvModel, reader);
for (Voyage voyage : importer) {
- voyage.setMission(mission);
- voyage.setAreaOfOperation(areaOfOperation);
- voyage.setDescription(voyageDescription);
- voyage.setDatum(datum);
- dao.create(voyage);
+ 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());
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
protected void importTransitFile(InputFile inputFile,
- Map<String, Voyage> voyageMap,
- String relatedActivity) throws TopiaException, IOException {
- TransitImportModel csvModel = new TransitImportModel(serviceContext.getConfiguration().getCsvSeparator(), voyageMap);
+ String relatedActivity) throws ImportException {
- TopiaDAO<Transit> dao = getDAO(Transit.class);
+ Map<String, Voyage> voyageMap = getEntitiesMap(
+ Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ TransitImportModel csvModel = new TransitImportModel(getCsvSeparator(), voyageMap);
+
+ TransitDAO dao = getDAO(Transit.class, TransitDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
try {
- Import<TransitImportModelRow> importer = Import.newImport(csvModel, reader);
+ Import<TransitImportModelRow> importer =
+ Import.newImport(csvModel, reader);
for (TransitImportModelRow row : importer) {
Voyage voyage = row.getVoyage();
- Transit transit = dao.create();
+ Transit transit = create(dao);
transit.setDescription(row.getDescription());
transit.setStartLocality(row.getStartLocality());
@@ -199,27 +204,31 @@
voyage.addTransit(transit);
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
private void importTransectFile(InputFile inputFile,
Vessel vessel,
- Map<String, Voyage> voyageMap,
CommonDataImportConfiguration configuration
- ) throws TopiaException, IOException {
+ ) throws ImportException {
+ Map<String, Voyage> voyageMap = getEntitiesMap(
+ Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
+
String datum = configuration.getDatum();
String license = configuration.getTransectLicence();
String geospatialVerticalPositive = configuration.getTransectGeospatialVerticalPositive();
String binUnitsPingAxis = configuration.getTransectBinUnitsPingAxis();
- TransectImportModel csvModel = new TransectImportModel(serviceContext.getConfiguration().getCsvSeparator(), voyageMap);
+ TransectImportModel csvModel = new TransectImportModel(getCsvSeparator(), voyageMap);
- TopiaDAO<Transect> dao = getDAO(Transect.class);
+ TransectDAO dao = getDAO(Transect.class, TransectDAO.class);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = getInputFileReader(inputFile);
try {
Import<TransectImportModelRow> importer =
Import.newImport(csvModel, reader);
@@ -232,14 +241,13 @@
Transit transit = voyage.getTransit(timeCoverageStart, timeCoverageEnd);
if (transit == null) {
- throw new EchoBaseTechnicalException(
- "Could not find transit for voyage " + voyage.getName() + " between " + timeCoverageStart + " and " + timeCoverageEnd);
+ throw new ImportException(
+ _("echobase.importError.no.transit.between.date",
+ voyage.getName(), timeCoverageStart, timeCoverageEnd));
}
- Transect transect = dao.create(
- Transect.PROPERTY_VESSEL, vessel
- );
-
+ Transect transect = create(dao);
+ transect.setVessel(vessel);
transect.setTitle(row.getTitle());
transect.setTransectAbstract(row.getTransectAbstract());
transect.setComment(row.getComment());
@@ -265,8 +273,10 @@
transit.addTransect(transect);
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java (from rev 305, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,122 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * 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%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.base.Preconditions;
+import fr.ifremer.echobase.EchoBaseConfiguration;
+import fr.ifremer.echobase.entities.meta.DbMeta;
+import org.nuiton.topia.TopiaContext;
+
+import java.util.Locale;
+
+/**
+ * Instances of this class will be given to service factory.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.1
+ */
+public class DefaultEchoBaseServiceContext implements EchoBaseServiceContext {
+
+ protected TopiaContext transaction;
+
+ protected EchoBaseServiceFactory serviceFactory;
+
+ protected EchoBaseConfiguration configuration;
+
+ protected Locale locale;
+
+ protected DbMeta dbMeta;
+
+ public static EchoBaseServiceContext newContext(
+ EchoBaseServiceContext serviceContext,
+ TopiaContext transaction) {
+ return newContext(serviceContext.getLocale(),
+ transaction,
+ serviceContext.getConfiguration(),
+ serviceContext.getDbMeta(),
+ serviceContext.getServiceFactory()
+ );
+ }
+
+ public static EchoBaseServiceContext newContext(
+ Locale locale,
+ TopiaContext transaction,
+ EchoBaseConfiguration configuration,
+ DbMeta dbMeta,
+ EchoBaseServiceFactory serviceFactory) {
+ return new DefaultEchoBaseServiceContext(locale,
+ transaction,
+ configuration,
+ dbMeta,
+ serviceFactory);
+ }
+
+ protected DefaultEchoBaseServiceContext(Locale locale,
+ TopiaContext transaction,
+ EchoBaseConfiguration configuration,
+ DbMeta dbMeta,
+ EchoBaseServiceFactory serviceFactory) {
+ this.locale = locale;
+ this.transaction = transaction;
+ this.configuration = configuration;
+ this.dbMeta = dbMeta;
+ this.serviceFactory = serviceFactory;
+ }
+
+ @Override
+ public TopiaContext getTransaction() {
+ Preconditions.checkNotNull(transaction);
+ return transaction;
+ }
+
+ @Override
+ public void setTransaction(TopiaContext transaction) {
+ this.transaction = transaction;
+ }
+
+ @Override
+ public Locale getLocale() {
+ return locale;
+ }
+
+ @Override
+ public <E extends EchoBaseService> E newService(Class<E> clazz) {
+ return serviceFactory.newService(clazz, this);
+ }
+
+ @Override
+ public EchoBaseConfiguration getConfiguration() {
+ return configuration;
+ }
+
+ @Override
+ public DbMeta getDbMeta() {
+ return dbMeta;
+ }
+
+ @Override
+ public EchoBaseServiceFactory getServiceFactory() {
+ return serviceFactory;
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DefaultEchoBaseServiceContext.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -1,122 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * 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%
- */
-package fr.ifremer.echobase.services;
-
-import com.google.common.base.Preconditions;
-import fr.ifremer.echobase.EchoBaseConfiguration;
-import fr.ifremer.echobase.entities.meta.DbMeta;
-import org.nuiton.topia.TopiaContext;
-
-import java.util.Locale;
-
-/**
- * Instances of this class will be given to service factory.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.1
- */
-public class EchoBaseServiceContextImpl implements EchoBaseServiceContext {
-
- protected TopiaContext transaction;
-
- protected EchoBaseServiceFactory serviceFactory;
-
- protected EchoBaseConfiguration configuration;
-
- protected Locale locale;
-
- protected DbMeta dbMeta;
-
- public static EchoBaseServiceContext newContext(
- EchoBaseServiceContext serviceContext,
- TopiaContext transaction) {
- return newContext(serviceContext.getLocale(),
- transaction,
- serviceContext.getConfiguration(),
- serviceContext.getDbMeta(),
- serviceContext.getServiceFactory()
- );
- }
-
- public static EchoBaseServiceContext newContext(
- Locale locale,
- TopiaContext transaction,
- EchoBaseConfiguration configuration,
- DbMeta dbMeta,
- EchoBaseServiceFactory serviceFactory) {
- return new EchoBaseServiceContextImpl(locale,
- transaction,
- configuration,
- dbMeta,
- serviceFactory);
- }
-
- protected EchoBaseServiceContextImpl(Locale locale,
- TopiaContext transaction,
- EchoBaseConfiguration configuration,
- DbMeta dbMeta,
- EchoBaseServiceFactory serviceFactory) {
- this.locale = locale;
- this.transaction = transaction;
- this.configuration = configuration;
- this.dbMeta = dbMeta;
- this.serviceFactory = serviceFactory;
- }
-
- @Override
- public TopiaContext getTransaction() {
- Preconditions.checkNotNull(transaction);
- return transaction;
- }
-
- @Override
- public void setTransaction(TopiaContext transaction) {
- this.transaction = transaction;
- }
-
- @Override
- public Locale getLocale() {
- return locale;
- }
-
- @Override
- public <E extends EchoBaseService> E newService(Class<E> clazz) {
- return serviceFactory.newService(clazz, this);
- }
-
- @Override
- public EchoBaseConfiguration getConfiguration() {
- return configuration;
- }
-
- @Override
- public DbMeta getDbMeta() {
- return dbMeta;
- }
-
- @Override
- public EchoBaseServiceFactory getServiceFactory() {
- return serviceFactory;
- }
-}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -58,12 +58,12 @@
this.serviceContext = serviceContext;
}
- public <E extends TopiaEntity> List<E> getEntities(EchoBaseEntityEnum entityType) {
+ public final <E extends TopiaEntity> List<E> getEntities(EchoBaseEntityEnum entityType) {
Class<E> contract = (Class<E>) entityType.getContract();
return getEntities(contract);
}
- public <E extends TopiaEntity> List<E> getEntities(Class<E> entityType) {
+ public final <E extends TopiaEntity> List<E> getEntities(Class<E> entityType) {
Preconditions.checkNotNull(entityType);
try {
List<E> result = getDAO(entityType).findAll();
@@ -74,7 +74,7 @@
}
}
- public <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) {
+ public final <E extends TopiaEntity> E getEntityById(Class<E> entityType, String id) {
Preconditions.checkNotNull(entityType);
Preconditions.checkArgument(StringUtils.isNotEmpty(id));
try {
@@ -87,23 +87,42 @@
}
}
- protected TopiaContext getTransaction() {
+ public final <E extends TopiaEntity> E getEntityByProperty(Class<E> entityType,
+ String propertyId,
+ Object propertyValue) {
+ Preconditions.checkNotNull(entityType);
+ Preconditions.checkArgument(StringUtils.isNotEmpty(propertyId));
+ try {
+ E result = getDAO(entityType).findByProperty(propertyId, propertyValue);
+ return result;
+ } catch (TopiaException eee) {
+ throw new EchoBaseTechnicalException(
+ "Could not obtain data of property [" + propertyId + "] for type " +
+ entityType, eee);
+ }
+ }
+
+ protected final TopiaContext getTransaction() {
return serviceContext.getTransaction();
}
- protected Locale getLocale() {
+ protected final Locale getLocale() {
return serviceContext.getLocale();
}
- protected DbMeta getDbMeta() {
+ protected final DbMeta getDbMeta() {
return serviceContext.getDbMeta();
}
- protected EchoBaseConfiguration getConfiguration() {
+ protected final EchoBaseConfiguration getConfiguration() {
return serviceContext.getConfiguration();
}
- protected <E extends EchoBaseService> E getService(Class<E> serviceClass) {
+ protected char getCsvSeparator() {
+ return getConfiguration().getCsvSeparator();
+ }
+
+ protected final <E extends EchoBaseService> E getService(Class<E> serviceClass) {
if (services == null) {
services = Maps.newHashMap();
}
@@ -115,20 +134,31 @@
return service;
}
- protected <E extends TopiaEntity> TopiaDAO<E> getDAO(EchoBaseEntityEnum entityEnum) throws TopiaException {
+ protected final <E extends TopiaEntity> TopiaDAO<E> getDAO(EchoBaseEntityEnum entityEnum) {
TopiaDAO<E> dao = getDAO((Class<E>) entityEnum.getContract());
return dao;
}
- protected <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityType) throws TopiaException {
- TopiaDAO<E> dao = EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO(
- getTransaction(),
- entityType);
+ protected final <E extends TopiaEntity> TopiaDAO<E> getDAO(Class<E> entityType) {
+ try {
+ TopiaDAO<E> dao = EchoBaseDAOHelper.<E, TopiaDAO<E>>getDAO(
+ getTransaction(),
+ entityType);
- return dao;
+ return dao;
+ } catch (TopiaException e) {
+ throw new EchoBaseTechnicalException("Could not obtain dao for type " + entityType, e);
+ }
}
- public void commitTransaction(String errorMessage) {
+ protected final <E extends TopiaEntity, D extends TopiaDAO<E>> D getDAO(Class<E> entityType, Class<D> daoType) {
+ TopiaDAO<E> dao = getDAO(
+ entityType);
+ Preconditions.checkState(daoType.isAssignableFrom(dao.getClass()));
+ return (D) dao;
+ }
+
+ public final void commitTransaction(String errorMessage) {
try {
getTransaction().commitTransaction();
} catch (TopiaException eee) {
@@ -136,7 +166,7 @@
}
}
- protected void flushTransaction() throws TopiaException {
+ protected final void flushTransaction() throws TopiaException {
TopiaContextImplementor tx = (TopiaContextImplementor) getTransaction();
tx.getHibernate().flush();
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -185,8 +185,8 @@
// create new service context (with new transaction)
EchoBaseServiceContext newServiceContext =
- EchoBaseServiceContextImpl.newContext(serviceContext,
- topiaContext);
+ DefaultEchoBaseServiceContext.newContext(serviceContext,
+ topiaContext);
// get user service from h2 db
UserService userService =
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -164,7 +164,7 @@
static class MyImportToMap extends ImportToMap {
public static MyImportToMap newImportToMap(ImportModel<Map<String, Object>> model,
- Reader reader) {
+ Reader reader) {
return new MyImportToMap(model, reader);
}
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,53 @@
+/*
+ * #%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.InputFile;
+import org.nuiton.util.csv.ImportRuntimeException;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Exception when a import new data failed.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class ImportException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public ImportException(String message) {
+ super(message);
+ }
+
+ public ImportException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ImportException(InputFile inputfile, ImportRuntimeException importError) {
+ this(_("echobase.importError.fromFile", inputfile.getFile(),
+ importError.getMessage()), importError);
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportException.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/OperationImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/OperationImportService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -24,14 +24,30 @@
package fr.ifremer.echobase.services;
import com.google.common.collect.Maps;
+import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.InputFile;
import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.data.GearMetadataValue;
+import fr.ifremer.echobase.entities.data.GearMetadataValueDAO;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationDAO;
+import fr.ifremer.echobase.entities.data.OperationMetadataValue;
+import fr.ifremer.echobase.entities.data.OperationMetadataValueDAO;
import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.GearMetadata;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
import fr.ifremer.echobase.entities.references.Vessel;
import fr.ifremer.echobase.services.configurations.OperationImportConfiguration;
-import org.nuiton.topia.TopiaException;
+import fr.ifremer.echobase.services.csv.GearMetadataValueImportModel;
+import fr.ifremer.echobase.services.csv.GearMetadataValueImportModelRow;
+import fr.ifremer.echobase.services.csv.OperationImportModel;
+import fr.ifremer.echobase.services.csv.OperationImportModelRow;
+import fr.ifremer.echobase.services.csv.OperationMetadataValueImportModel;
+import fr.ifremer.echobase.services.csv.OperationMetadataValueImportModelRow;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportRuntimeException;
-import java.io.IOException;
+import java.io.Reader;
import java.util.Map;
/**
@@ -42,10 +58,9 @@
*/
public class OperationImportService extends AbstractImportDataService<OperationImportConfiguration> {
-
@Override
public Map<InputFile, CsvImportResult> startImport(OperationImportConfiguration configuration,
- EchoBaseUser user) throws IOException, TopiaException {
+ EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
@@ -55,13 +70,13 @@
Voyage voyage = getEntityById(Voyage.class,
configuration.getVoyageId());
-
importOperationFile(configuration.getOperationFile(), voyage, vessel);
importOperationMetadataFile(configuration.getOperationMetadataFile(),
voyage, vessel);
- importgearMetadataFile(configuration.getGearMetadataFile(), voyage,
+ importGearMetadataFile(configuration.getGearMetadataFile(),
+ voyage,
vessel);
commitTransaction("Could not commit transaction of operation import");
@@ -70,22 +85,94 @@
protected void importOperationFile(InputFile inputFile,
Voyage voyage,
- Vessel vessel) {
- char csvSeparator = getConfiguration().getCsvSeparator();
+ Vessel vessel) throws ImportException {
+ OperationImportModel csvModel =
+ new OperationImportModel(getCsvSeparator());
+
+ OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<OperationImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (OperationImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
protected void importOperationMetadataFile(InputFile inputFile,
Voyage voyage,
- Vessel vessel) {
- char csvSeparator = getConfiguration().getCsvSeparator();
+ Vessel vessel) throws ImportException {
+ Map<String, OperationMetadata> operationMetadatasByName =
+ getEntitiesMap(OperationMetadata.class,
+ EchoBaseFunctions.OPERATION_METADATA_NAME);
+
+ OperationMetadataValueImportModel csvModel =
+ new OperationMetadataValueImportModel(getCsvSeparator());
+
+ OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
+ OperationMetadataValueDAO metadataValuedao =
+ getDAO(OperationMetadataValue.class,
+ OperationMetadataValueDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<OperationMetadataValueImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (OperationMetadataValueImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
- protected void importgearMetadataFile(InputFile inputFile,
+ protected void importGearMetadataFile(InputFile inputFile,
Voyage voyage,
- Vessel vessel) {
- char csvSeparator = getConfiguration().getCsvSeparator();
+ Vessel vessel) throws ImportException {
+ Map<String, GearMetadata> gearMetadatasByType =
+ getEntitiesMap(GearMetadata.class, EchoBaseFunctions.GEAR_METADATA_TYPE);
+
+ GearMetadataValueImportModel csvModel =
+ new GearMetadataValueImportModel(getCsvSeparator());
+
+ OperationDAO dao = getDAO(Operation.class, OperationDAO.class);
+ GearMetadataValueDAO metadataValuedao =
+ getDAO(GearMetadataValue.class, GearMetadataValueDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<GearMetadataValueImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (GearMetadataValueImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ResultsImportService.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -29,11 +29,14 @@
import fr.ifremer.echobase.EchoBasePredicates;
import fr.ifremer.echobase.InputFile;
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.Voyage;
import fr.ifremer.echobase.entities.references.DepthStratum;
import fr.ifremer.echobase.entities.references.Echotype;
import fr.ifremer.echobase.entities.references.LengthAgeKey;
import fr.ifremer.echobase.entities.references.LengthWeightKey;
+import fr.ifremer.echobase.entities.references.LengthWeightKeyDAO;
import fr.ifremer.echobase.entities.references.SizeCategory;
import fr.ifremer.echobase.entities.references.Species;
import fr.ifremer.echobase.entities.references.SpeciesCategory;
@@ -47,15 +50,14 @@
import fr.ifremer.echobase.services.csv.LengthAgeKeyImportModelRow;
import fr.ifremer.echobase.services.csv.LengthWeightKeyImportModel;
import fr.ifremer.echobase.services.csv.LengthWeightKeyImportModelRow;
-import org.nuiton.topia.TopiaException;
+import fr.ifremer.echobase.services.csv.RegionCellAssociationImportModel;
+import fr.ifremer.echobase.services.csv.RegionCellAssociationImportModelRow;
+import fr.ifremer.echobase.services.csv.RegionCellImportModel;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportRuntimeException;
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
import java.io.Reader;
-import java.util.List;
import java.util.Map;
/**
@@ -67,59 +69,41 @@
public class ResultsImportService extends AbstractImportDataService<ResultsImportConfiguration> {
@Override
- public Map<InputFile, CsvImportResult> startImport(ResultsImportConfiguration configuration, EchoBaseUser user) throws IOException, TopiaException {
+ public Map<InputFile, CsvImportResult> startImport(ResultsImportConfiguration configuration, EchoBaseUser user) throws ImportException {
Map<InputFile, CsvImportResult> result = Maps.newHashMap();
+ ResultsImportMode importMode = configuration.getImportMode();
- ResultsImportMode importMode = configuration.getImportMode();
switch (importMode) {
case VOYAGE:
- List<Voyage> allVoyages = getEntities(Voyage.class);
- Map<String, Voyage> voyageMap = Maps.uniqueIndex(
- allVoyages, EchoBaseFunctions.VOYAGE_NAME);
+ Map<String, Voyage> voyageMap = getEntitiesMap(
+ Voyage.class, EchoBaseFunctions.VOYAGE_NAME);
- List<Species> allSpecies =
- getEntities(Species.class);
- Map<String, Species> speciesMap = Maps.uniqueIndex(
- allSpecies, EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
+ Map<String, Species> speciesMap = getEntitiesMap(
+ Species.class,
+ EchoBaseFunctions.SPECIES_BARACOUDA_CODE);
if (configuration.canImportLengthAgeKeyFile()) {
- List<Strata> allStratas =
- getEntities(Strata.class);
- Map<String, Strata> strataMap = Maps.uniqueIndex(
- allStratas, EchoBaseFunctions.STRATA_BY_NAME);
importLenthAgeKey(configuration.getLengthAgeKeyFile(),
voyageMap,
- strataMap,
speciesMap
);
}
if (configuration.canImportLengthWeightKeyFile()) {
- List<SizeCategory> allSizeCategorys =
- getEntities(SizeCategory.class);
- Map<String, SizeCategory> sizeCategoryMap = Maps.uniqueIndex(
- allSizeCategorys, EchoBaseFunctions.SIZE_CATEGORY_NAME);
importLenghtWeightKey(configuration.getLengthWeightKeyFile(),
voyageMap,
- sizeCategoryMap,
speciesMap
);
}
if (configuration.canImportEchotypeFile()) {
- List<DepthStratum> allDepthStratums =
- getEntities(DepthStratum.class);
- Map<String, DepthStratum> depthStratumMap = Maps.uniqueIndex(
- allDepthStratums, EchoBaseFunctions.DEPTH_STRATUM_ID);
-
importEchotypeFile(configuration.getEchotypeFile(),
voyageMap,
- depthStratumMap,
speciesMap
);
}
@@ -136,30 +120,76 @@
return result;
}
- protected void importRegionsFile(InputFile inputFile) {
+ protected void importRegionsFile(InputFile inputFile) throws ImportException {
+ RegionCellImportModel csvModel = new RegionCellImportModel(
+ serviceContext.getConfiguration().getCsvSeparator());
+
+ CellDAO dao = getDAO(Cell.class, CellDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<Cell> importer =
+ Import.newImport(csvModel, reader);
+
+ for (Cell row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
- protected void importAssociationFile(InputFile inputFile) {
+ protected void importAssociationFile(InputFile inputFile) throws ImportException {
+ RegionCellAssociationImportModel csvModel = new RegionCellAssociationImportModel(
+ serviceContext.getConfiguration().getCsvSeparator());
+
+ CellDAO dao = getDAO(Cell.class, CellDAO.class);
+
+ Reader reader = getInputFileReader(inputFile);
+ try {
+ Import<RegionCellAssociationImportModelRow> importer =
+ Import.newImport(csvModel, reader);
+
+ for (RegionCellAssociationImportModelRow row : importer) {
+
+ //TODO
+
+ }
+
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
+ } finally {
+ closeReader(reader, inputFile);
+ }
}
protected void importLenghtWeightKey(InputFile inputFile,
Map<String, Voyage> voyageMap,
- Map<String, SizeCategory> sizeCategoryMap,
- Map<String, Species> speciesMap) throws TopiaException, IOException {
+ Map<String, Species> speciesMap) throws ImportException {
+ Map<String, SizeCategory> sizeCategoryMap = getEntitiesMap(
+ SizeCategory.class,
+ EchoBaseFunctions.SIZE_CATEGORY_NAME);
+
LengthWeightKeyImportModel csvModel = new LengthWeightKeyImportModel(
serviceContext.getConfiguration().getCsvSeparator(),
voyageMap,
sizeCategoryMap,
speciesMap);
- TopiaDAO<LengthWeightKey> dao = getDAO(LengthWeightKey.class);
+ LengthWeightKeyDAO dao = getDAO(LengthWeightKey.class,
+ LengthWeightKeyDAO.class);
SpeciesCategoryDAO speciesCategoryDAO =
- (SpeciesCategoryDAO) getDAO(SpeciesCategory.class);
+ getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = getInputFileReader(inputFile);
try {
Import<LengthWeightKeyImportModelRow> importer =
Import.newImport(csvModel, reader);
@@ -168,7 +198,7 @@
Voyage voyage = row.getVoyage();
- LengthWeightKey lengthWeightKey = dao.create();
+ LengthWeightKey lengthWeightKey = create(dao);
lengthWeightKey.setAParameter(row.getaParameter());
lengthWeightKey.setBParameter(row.getbParameter());
@@ -179,7 +209,8 @@
SizeCategory sizeCategory = row.getSizeCategory();
// find speciesCategory
- SpeciesCategory speciesCategory = speciesCategoryDAO.findByProperties(
+ SpeciesCategory speciesCategory = findByProperties(
+ speciesCategoryDAO,
SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
SpeciesCategory.PROPERTY_SPECIES, species
);
@@ -187,9 +218,9 @@
if (speciesCategory == null) {
// not found, creates it
- speciesCategory = speciesCategoryDAO.create(
- SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
- SpeciesCategory.PROPERTY_SPECIES, species
+ speciesCategory = create(speciesCategoryDAO,
+ SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory,
+ SpeciesCategory.PROPERTY_SPECIES, species
);
}
@@ -197,29 +228,31 @@
// attach it to voyage
voyage.addLengthWeightKey(lengthWeightKey);
-
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
-
}
protected void importLenthAgeKey(InputFile inputFile,
Map<String, Voyage> voyageMap,
- Map<String, Strata> startaMap,
- Map<String, Species> speciesMap) throws IOException, TopiaException {
+ Map<String, Species> speciesMap) throws ImportException {
+ Map<String, Strata> strataMap = getEntitiesMap(
+ Strata.class, EchoBaseFunctions.STRATA_BY_NAME);
+
LengthAgeKeyImportModel csvModel = new LengthAgeKeyImportModel(
serviceContext.getConfiguration().getCsvSeparator(),
voyageMap,
- startaMap,
+ strataMap,
speciesMap);
TopiaDAO<LengthAgeKey> dao = getDAO(LengthAgeKey.class);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = getInputFileReader(inputFile);
try {
Import<LengthAgeKeyImportModelRow> importer =
Import.newImport(csvModel, reader);
@@ -228,7 +261,7 @@
Voyage voyage = row.getVoyage();
- LengthAgeKey lengthAgeKey = dao.create();
+ LengthAgeKey lengthAgeKey = create(dao);
lengthAgeKey.setAge(row.getAge());
lengthAgeKey.setLength(row.getLength());
@@ -242,16 +275,21 @@
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
private void importEchotypeFile(InputFile inputFile,
Map<String, Voyage> voyageMap,
- Map<String, DepthStratum> depthStratumMap,
- Map<String, Species> speciesMap) throws TopiaException, IOException {
+ Map<String, Species> speciesMap) throws ImportException {
+ Map<String, DepthStratum> depthStratumMap = getEntitiesMap(
+ DepthStratum.class,
+ EchoBaseFunctions.DEPTH_STRATUM_ID);
+
EchotypeImportModel csvModel = new EchotypeImportModel(
serviceContext.getConfiguration().getCsvSeparator(),
voyageMap,
@@ -260,7 +298,7 @@
TopiaDAO<Echotype> dao = getDAO(Echotype.class);
- Reader reader = new BufferedReader(new FileReader(inputFile.getFile()));
+ Reader reader = getInputFileReader(inputFile);
try {
Import<EchotypeImportModelRow> importer =
Import.newImport(csvModel, reader);
@@ -284,9 +322,9 @@
if (echotype == null) {
// creates it
- echotype = dao.create(
- Echotype.PROPERTY_NAME, echotypeName,
- Echotype.PROPERTY_MEANING, row.getMeaning()
+ echotype = create(dao,
+ Echotype.PROPERTY_NAME, echotypeName,
+ Echotype.PROPERTY_MEANING, row.getMeaning()
);
DepthStratum depthStratum = row.getDepthStratum();
@@ -308,8 +346,10 @@
}
}
+ } catch (ImportRuntimeException e) {
+ throw new ImportException(inputFile, e);
} finally {
- reader.close();
+ closeReader(reader, inputFile);
}
}
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AbstractEchobaseActionConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AbstractEchobaseActionConfiguration.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/configurations/AbstractEchobaseActionConfiguration.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -48,6 +48,8 @@
private long endTime;
+ private Exception error;
+
public final int getNbSteps() {
return nbSteps;
}
@@ -86,6 +88,14 @@
this.endTime = endTime;
}
+ public Exception getError() {
+ return error;
+ }
+
+ public void setError(Exception error) {
+ this.error = error;
+ }
+
public String getActionTime() {
long sTime = getStartTime();
long eTime = getEndTime();
Added: 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 (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -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.GearMetadataValue;
+
+/**
+ * Model to import {@link GearMetadataValue}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class GearMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<GearMetadataValueImportModelRow> {
+
+ public GearMetadataValueImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public GearMetadataValueImportModelRow newEmptyInstance() {
+ return new GearMetadataValueImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModel.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/GearMetadataValueImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,38 @@
+/*
+ * #%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 OperationMetadataValueImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class GearMetadataValueImportModelRow {
+
+
+ public GearMetadataValueImportModelRow() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/GearMetadataValueImportModelRow.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/OperationImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -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.Operation;
+
+/**
+ * Model to import {@link Operation}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class OperationImportModel extends CsvModelUtil.AbstractImportModel<OperationImportModelRow> {
+
+ public OperationImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public OperationImportModelRow newEmptyInstance() {
+ return new OperationImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModel.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/OperationImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,38 @@
+/*
+ * #%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 OperationImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class OperationImportModelRow {
+
+
+ public OperationImportModelRow() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationImportModelRow.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/OperationMetadataValueImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -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.OperationMetadataValue;
+
+/**
+ * Model to import {@link OperationMetadataValue}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class OperationMetadataValueImportModel extends CsvModelUtil.AbstractImportModel<OperationMetadataValueImportModelRow> {
+
+ public OperationMetadataValueImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public OperationMetadataValueImportModelRow newEmptyInstance() {
+ return new OperationMetadataValueImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModel.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/OperationMetadataValueImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,38 @@
+/*
+ * #%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 OperationMetadataValueImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class OperationMetadataValueImportModelRow {
+
+
+ public OperationMetadataValueImportModelRow() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/OperationMetadataValueImportModelRow.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/RegionCellAssociationImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,42 @@
+/*
+ * #%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;
+
+/**
+ * Model to import cells associations from region cells and esdu cells.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class RegionCellAssociationImportModel extends CsvModelUtil.AbstractImportModel<RegionCellAssociationImportModelRow> {
+
+ public RegionCellAssociationImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public RegionCellAssociationImportModelRow newEmptyInstance() {
+ return new RegionCellAssociationImportModelRow();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModel.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/RegionCellAssociationImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,41 @@
+/*
+ * #%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.Cell;
+import fr.ifremer.echobase.entities.data.CellImpl;
+
+/**
+ * Bean used as a row for import of {@link RegionCellAssociationImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class RegionCellAssociationImportModelRow {
+
+
+ public RegionCellAssociationImportModelRow() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellAssociationImportModelRow.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/RegionCellImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,45 @@
+/*
+ * #%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.Cell;
+import fr.ifremer.echobase.entities.data.CellImpl;
+
+/**
+ * Model to import cells (with type "region").
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
+public class RegionCellImportModel extends CsvModelUtil.AbstractImportModel<Cell> {
+
+ public RegionCellImportModel(char separator) {
+ super(separator);
+ }
+
+ @Override
+ public Cell newEmptyInstance() {
+ return new CellImpl();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/RegionCellImportModel.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/SampleDataImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -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.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();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModel.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/SampleDataImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,38 @@
+/*
+ * #%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() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleDataImportModelRow.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/SampleImportModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -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}.
+ *
+ * @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();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModel.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/SampleImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -0,0 +1,38 @@
+/*
+ * #%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() {
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/SampleImportModelRow.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/TransitImportModelRow.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/TransitImportModelRow.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -29,11 +29,11 @@
import java.util.Date;
/**
-* Bean used as a row for import of {@link TransitImportModel}.
-*
-* @author tchemit <chemit(a)codelutin.com>
-* @since 0.3
-*/
+ * Bean used as a row for import of {@link TransitImportModel}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.3
+ */
public class TransitImportModelRow {
public static final String PROPERTY_VOYAGE = "voyage";
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2012-02-04 09:20:28 UTC (rev 306)
@@ -25,3 +25,5 @@
echobase.common.transectFile=Fichier des transects
echobase.common.transitFile=Fichier des transits
echobase.common.voyageFile=Fichier des voyages
+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
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/AbstractEchoBaseServiceTest.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -94,7 +94,7 @@
}
protected <E extends EchoBaseService> E getService(Class<E> clazz) throws Exception {
- EchoBaseServiceContext serviceContext = EchoBaseServiceContextImpl.newContext(
+ EchoBaseServiceContext serviceContext = DefaultEchoBaseServiceContext.newContext(
Locale.getDefault(),
getTransaction(),
getConfig(),
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -72,7 +72,7 @@
dao.create(AreaOfOperation.PROPERTY_NAME, codeZone);
if (log.isInfoEnabled()) {
log.info("Created areaOfOperation : " +
- areaOfOperation.getName());
+ areaOfOperation.getName());
}
}
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -177,18 +177,27 @@
Map<Integer, DataQuality> dataQualitiesById;
DataMetadata surfaceMetadata;
+
DataMetadata esduLatitudeMetadata;
+
DataMetadata esduLongitudeMetadata;
+
DataMetadata esduDepthMetadata;
+
DataMetadata esduTimeMetadata;
+
DataMetadata elementaryStartSurfaceDepthMetadata;
+
DataMetadata elementaryEndSurfaceDepthMetadata;
+
DataMetadata elementaryStartBottomDepthMetadata;
+
DataMetadata elementaryEndBottonDepthMetadata;
private DataQuality nullDataQuality;
TopiaDAO<Cell> dao;
+
TopiaDAO<Data> dataDao;
String dataProcessingId;
@@ -371,15 +380,15 @@
String prefix = "[" + dataProcessingId + "] ";
log.info(prefix + "Found " + nbRegionData + " region datas for " +
- nbRegionCells + " regions cells.");
+ nbRegionCells + " regions cells.");
log.info(prefix + "Found " + nbEsduData + " esdu datas for " +
- nbEsduCells + " esdu cells.");
+ nbEsduCells + " esdu cells.");
log.info(prefix + "Found " + nbElementaryData +
- " elementary datas for " + nbElementaryCells +
- " elementary cells.");
+ " elementary datas for " + nbElementaryCells +
+ " elementary cells.");
log.info(prefix + "Total data " + (nbRegionData + nbEsduData +
- nbElementaryData) + " for " + (nbRegionCells + nbEsduCells +
- nbElementaryCells) + " cells");
+ nbElementaryData) + " for " + (nbRegionCells + nbEsduCells +
+ nbElementaryCells) + " cells");
}
}
@@ -502,7 +511,7 @@
int qualityId = flagAsDouble.intValue();
DataQuality dataQuality = dataQualitiesById.get(qualityId);
Preconditions.checkNotNull(dataQuality, "Could not find " +
- "dataQuality with id " + qualityId);
+ "dataQuality with id " + qualityId);
Cell esduCell = dao.create(
Cell.PROPERTY_CELL_TYPE, esduCellType,
Cell.PROPERTY_NAME, cellStringId,
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataProcessingLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataProcessingLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataProcessingLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -72,7 +72,7 @@
for (Map<String, Object> row : db.getTable("EI_CONFIGURATION")) {
String voyageName = (String) row.get("CAMPAGNE");
- Voyage voyage = getFK(voyagesByName,voyageName);
+ Voyage voyage = getFK(voyagesByName, voyageName);
Transit transit = voyage.getTransit().iterator().next();
Transect transect = transit.getTransect().iterator().next();
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -74,7 +74,7 @@
dao.create(EchotypeCategory.PROPERTY_NAME, code);
if (log.isInfoEnabled()) {
log.info("Created EchotypeCategory : " +
- areaOfOperation.getName());
+ areaOfOperation.getName());
}
}
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -326,7 +326,7 @@
public void copyStreamToFile(File file,
FileType fileType) throws IOException {
String path = "/csv/" + fileType.name().toLowerCase() + "/" +
- file.getName();
+ file.getName();
InputStream stream = getClass().getResourceAsStream(path);
try {
Preconditions.checkNotNull(stream,
@@ -495,7 +495,7 @@
} catch (Exception eee) {
throw new EchoBaseTechnicalException(
"Could not import entities of type " +
- tableMeta.getSource(), eee);
+ tableMeta.getSource(), eee);
} finally {
importer.close();
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -123,25 +123,33 @@
//SONDE
OperationMetadata meanWaterDepthOperationMeta;
+
//JOUR_NUIT
OperationMetadata dielPeriodOperationMeta;
+
//SONDEDEB
OperationMetadata startWaterDepthOperationMeta;
+
//SONDEFIN
OperationMetadata endWaterDepthOperationMeta;
//LFUNES
GearMetadata cableLengthGearMeta;
+
//VMIN
GearMetadata minSpeedGearMeta;
+
//VMAX
GearMetadata maxSpeedGearMeta;
TopiaDAO<Operation> dao;
+
TopiaDAO<OperationMetadataValue> operationMetadataValueDAO;
+
TopiaDAO<GearMetadataValue> gearMetadataValueDAO;
Map<String, DepthStratum> depthStratumByName;
+
Map<String, Gear> gearByCasinoGearName;
@Override
@@ -261,7 +269,7 @@
DepthStratum depthStratum = null;
String depthStratumId = (String) row.get("STA_IMAGES");
if (StringUtils.isBlank(depthStratumId) ||
- "nul".equals(depthStratumId)) {
+ "nul".equals(depthStratumId)) {
messages.add("No depthStraum defined");
} else {
depthStratum = getFK(depthStratumByName, depthStratumId.trim());
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -50,12 +50,12 @@
/*
raptriBiometryDataType;sampleDataTypeMeaningEng;sampleDataType;sampleDataTypeMeaningFr;Units;Precision
*/
- model.addDefaultColumn(SampleDataType.PROPERTY_RAPTRI_BIOMETRY_DATA_TYPE,int.class);
- model.newMandatoryColumn("sampleDataTypeMeaningEng",SampleDataType.PROPERTY_MEANING_EN);
+ model.addDefaultColumn(SampleDataType.PROPERTY_RAPTRI_BIOMETRY_DATA_TYPE, int.class);
+ model.newMandatoryColumn("sampleDataTypeMeaningEng", SampleDataType.PROPERTY_MEANING_EN);
model.newMandatoryColumn("sampleDataType", SampleDataType.PROPERTY_NAME);
- model.newMandatoryColumn("sampleDataTypeMeaningFr",SampleDataType.PROPERTY_MEANING_FR);
- model.newMandatoryColumn("Units",SampleDataType.PROPERTY_UNITS);
- model.newMandatoryColumn("Precision",SampleDataType.PROPERTY_PRECISION);
+ model.newMandatoryColumn("sampleDataTypeMeaningFr", SampleDataType.PROPERTY_MEANING_FR);
+ model.newMandatoryColumn("Units", SampleDataType.PROPERTY_UNITS);
+ model.newMandatoryColumn("Precision", SampleDataType.PROPERTY_PRECISION);
return model;
}
}
\ No newline at end of file
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -111,12 +111,16 @@
}
protected SampleDataDAO sampleDataDAO;
+
protected SpeciesCategoryDAO speciesCategoryDAO;
+
protected TopiaDAO<Sample> dao;
protected Map<String, SizeCategory> sizeCategoryByName;
+
protected Map<String, SexCategory> sexCategoryByName;
+
protected Map<String, SpeciesCategory> speciesCategoryByName;
@Override
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesCategoryLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesCategoryLoader.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SpeciesCategoryLoader.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -136,8 +136,8 @@
if (log.isInfoEnabled()) {
log.info("Create speciesCategory speciesBaracoudaCode/size : " +
- species.getBaracoudaCode() + "/" +
- (sizeCategory == null ? null : sizeCategory.getName()));
+ species.getBaracoudaCode() + "/" +
+ (sizeCategory == null ? null : sizeCategory.getName()));
}
}
return speciesCategory;
@@ -162,8 +162,8 @@
if (log.isInfoEnabled()) {
log.info("Create speciesCategory speciesBaracoudaCode/sex : " +
- species.getBaracoudaCode() + "/" +
- (sexCategory == null ? null : sexCategory.getName()));
+ species.getBaracoudaCode() + "/" +
+ (sexCategory == null ? null : sexCategory.getName()));
}
}
return speciesCategory;
@@ -188,7 +188,7 @@
if (log.isInfoEnabled()) {
log.info("Create speciesCategory speciesBaracoudaCode : " +
- species.getBaracoudaCode());
+ species.getBaracoudaCode());
}
}
return speciesCategory;
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -29,7 +29,7 @@
import fr.ifremer.echobase.entities.meta.DbMeta;
import fr.ifremer.echobase.services.EchoBaseService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.EchoBaseServiceContextImpl;
+import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -92,7 +92,7 @@
topiaContext = factory.newEmbeddedDatabase(testdir);
- serviceContext = EchoBaseServiceContextImpl.newContext(
+ serviceContext = DefaultEchoBaseServiceContext.newContext(
Locale.getDefault(),
topiaContext,
configuration,
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseApplicationListener.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -30,7 +30,7 @@
import fr.ifremer.echobase.entities.EchoBaseUserImpl;
import fr.ifremer.echobase.entities.meta.DbMeta;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.EchoBaseServiceContextImpl;
+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;
@@ -176,7 +176,7 @@
TopiaContext transaction = rootContext.beginTransaction();
try {
- EchoBaseServiceContext serviceContext = EchoBaseServiceContextImpl.newContext(
+ EchoBaseServiceContext serviceContext = DefaultEchoBaseServiceContext.newContext(
Locale.getDefault(),
transaction,
configuration,
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/EchoBaseSession.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -158,7 +158,7 @@
if (o != null && !type.isInstance(o)) {
throw new ClassCastException(
"parameter " + key + " should be of type " +
- type.getName() + " but was " + o.getClass().getName());
+ type.getName() + " but was " + o.getClass().getName());
}
return (T) o;
}
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/EchoBaseActionSupport.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -31,7 +31,7 @@
import fr.ifremer.echobase.services.DecoratorService;
import fr.ifremer.echobase.services.EchoBaseService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.services.EchoBaseServiceContextImpl;
+import fr.ifremer.echobase.services.DefaultEchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import fr.ifremer.echobase.ui.EchoBaseApplicationContext;
import fr.ifremer.echobase.ui.EchoBaseSession;
@@ -144,7 +144,7 @@
*/
protected EchoBaseServiceContext getServiceContext() {
if (serviceContext == null) {
- serviceContext = EchoBaseServiceContextImpl.newContext(
+ serviceContext = DefaultEchoBaseServiceContext.newContext(
getLocale(),
getTransaction(),
getConfiguration(),
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/embeddedApplication/Build.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -23,8 +23,8 @@
*/
package fr.ifremer.echobase.ui.actions.embeddedApplication;
+import fr.ifremer.echobase.services.EmbeddedApplicationService;
import fr.ifremer.echobase.services.configurations.EmbeddedApplicationConfiguration;
-import fr.ifremer.echobase.services.EmbeddedApplicationService;
import fr.ifremer.echobase.ui.actions.AbstractWaitAndExecAction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -60,7 +60,7 @@
protected void startAction(EmbeddedApplicationConfiguration model) throws Exception {
if (log.isInfoEnabled()) {
log.info("Start build of embedded application to file " +
- model.getFileName());
+ model.getFileName());
}
service.createEmbeddedApplication(model);
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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/ConfigureAccousticData.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -28,7 +28,6 @@
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.configurations.AccousticDataImportConfiguration;
import fr.ifremer.echobase.services.configurations.CellPositionReference;
-import fr.ifremer.echobase.services.configurations.CommonDataImportMode;
import java.io.File;
import java.util.Map;
Modified: 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-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importData/GetVessels.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -27,7 +27,6 @@
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.data.Voyage;
import fr.ifremer.echobase.entities.references.Vessel;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-02-02 23:46:23 UTC (rev 305)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/Import.java 2012-02-04 09:20:28 UTC (rev 306)
@@ -62,7 +62,7 @@
protected void startAction(ImportDbConfiguration model) throws Exception {
if (log.isInfoEnabled()) {
log.info("Start imports with file " +
- model.getInput().getFileName());
+ model.getInput().getFileName());
}
service.importDb(model, getEchoBaseSession().getEchoBaseUser());
1
0