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
December 2011
- 2 participants
- 86 discussions
r167 - in trunk/echobase-services/src/main: java/fr/ifremer/echobase/services java/fr/ifremer/echobase/services/models resources/i18n
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 22:39:42 +0100 (Sun, 11 Dec 2011)
New Revision: 167
Url: http://forge.codelutin.com/repositories/revision/echobase/167
Log:
-remove legacy import code
-improve db import
-add some little improvments
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbConfiguration.java
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalConfiguration.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java
trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -33,6 +33,7 @@
import fr.ifremer.echobase.entities.meta.AssociationMeta;
import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.services.models.CsvModelUtil;
import fr.ifremer.echobase.services.models.EntityAssociationCsvModel;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
@@ -48,7 +49,6 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipEntry;
@@ -71,12 +71,14 @@
/**
* Import a complete db from the given zip file.
*
- * @param file zip file where all csv files are located
- * @param user user which perform the import
+ * @param model model of the db import operation
+ * @param user user which perform the import
* @throws IOException if any io exception while import
*/
- public void importDb(File file, EchoBaseUser user) throws IOException {
+ public void importDb(ImportDbConfiguration model, EchoBaseUser user) throws IOException {
+ File file = model.getInput().getFile();
+
ZipFile zipFile = new ZipFile(file);
try {
MetaFilenameAware[] entries = getEntries();
@@ -89,7 +91,7 @@
// check that all mandatories
for (MetaFilenameAware entry : entries) {
String filename = entry.getFilename();
- ZipEntry zipEntry = zipFile.getEntry(filename);
+ ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename);
if (zipEntry == null) {
missingEntries.add(filename);
@@ -110,10 +112,15 @@
// missingEntries + " in import " + file);
}
+ int size = entriestoConsume.size();
+ model.setNbSteps(size + 1);
+
// consume all found entries
for (Map.Entry<MetaFilenameAware, ZipEntry> entry :
entriestoConsume.entrySet()) {
+ model.incrementsProgression();
+
MetaFilenameAware entryDef = entry.getKey();
ZipEntry value = entry.getValue();
CsvImportResult csvResult = CsvImportResult.newResult(
@@ -134,7 +141,7 @@
if (log.isInfoEnabled()) {
log.info("Import done with user " + user.getEmail());
}
- commitTransaction("Could not commit db import " + file);
+ commitTransaction("Could not commit db import from file " + file);
} finally {
zipFile.close();
}
@@ -154,11 +161,12 @@
File zipFile = new File(tempDirectory, fileName + ".zip");
DbEditorService service = getDbEditorService();
+ File dir = new File(tempDirectory, "echobase");
MetaFilenameAware[] entries = getEntries();
for (MetaFilenameAware entry : entries) {
- File entryFile = new File(tempDirectory, entry.getFilename());
+ File entryFile = new File(dir, entry.getFilename());
if (entry instanceof AssociationMeta) {
AssociationMeta associationMeta = (AssociationMeta) entry;
@@ -169,7 +177,7 @@
}
}
- EchoBaseIOUtil.compressZipFile(zipFile, tempDirectory);
+ EchoBaseIOUtil.compressZipFile(zipFile, dir);
return zipFile;
}
@@ -186,10 +194,26 @@
AssociationMeta associationMeta = (AssociationMeta) entry;
+ EchoBaseEntityEnum source = associationMeta.getSource();
+ List<TopiaEntity> sourceEntities = getEntities(source);
+ Map<String, TopiaEntity> sourcesById;
+ Map<String, TopiaEntity> targetsById;
+ sourcesById = Maps.uniqueIndex(sourceEntities, CsvModelUtil.TO_TOPIAID);
+ EchoBaseEntityEnum target = associationMeta.getTarget();
+ if (source.equals(target)) {
+ targetsById = sourcesById;
+ } else {
+
+ List<TopiaEntity> targetEntities = getEntities(target);
+ targetsById = Maps.uniqueIndex(targetEntities, CsvModelUtil.TO_TOPIAID);
+ }
+
ImportExportModel<TopiaEntity> model =
EntityAssociationCsvModel.newModel(
getConfiguration().getCsvSeparator(),
- associationMeta
+ associationMeta,
+ sourcesById,
+ targetsById
);
importEntityAssociation(associationMeta, model, csvResult, reader);
@@ -200,7 +224,8 @@
TableMeta tableMeta = (TableMeta) entry;
- ImportExportModel<TopiaEntity> model = service.buildForImport(tableMeta);
+ ImportExportModel<TopiaEntity> model =
+ service.buildForImport(tableMeta);
importEntities(tableMeta, model, csvResult, reader);
}
@@ -208,27 +233,31 @@
public MetaFilenameAware[] getEntries() {
- List<MetaFilenameAware> result = Lists.newArrayList();
+ List<MetaFilenameAware> entities = Lists.newArrayList();
+ List<MetaFilenameAware> associations = Lists.newArrayList();
- addEntries(result, EntitiesUtil.getReferenceTypesForCopy());
- addEntries(result, EntitiesUtil.getDataTypesforCopy());
- return result.toArray(new MetaFilenameAware[result.size()]);
+ addEntries(entities, associations, EntitiesUtil.getReferenceTypesForCopy());
+ addEntries(entities, associations, EntitiesUtil.getDataTypesforCopy());
+ entities.addAll(associations);
+ return entities.toArray(new MetaFilenameAware[entities.size()]);
}
protected TableMeta getTableMeta(EchoBaseEntityEnum tableName) {
return getDbEditorService().getTableMeta(tableName);
}
- protected void addEntries(List<MetaFilenameAware> result,
+ protected void addEntries(List<MetaFilenameAware> entities,
+ List<MetaFilenameAware> associations,
EchoBaseEntityEnum[] types) {
for (EchoBaseEntityEnum type : types) {
TableMeta tableMeta = getTableMeta(type);
- result.add(tableMeta);
+ entities.add(tableMeta);
- for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
- result.add(associationMeta);
- }
+// for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
+// associations.add(associationMeta);
+// }
+ associations.addAll(tableMeta.getAssociations());
}
}
@@ -244,9 +273,11 @@
CsvImportResult result,
Reader reader) {
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
Import<TopiaEntity> importer = Import.newImport(csvModel, reader);
-
try {
TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource());
@@ -272,7 +303,9 @@
ImportExportModel<E> csvModel,
CsvImportResult result,
Reader reader) {
-
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
try {
EchoBaseEntityEnum sourceType = meta.getSource();
@@ -285,25 +318,26 @@
try {
for (E row : importer) {
- E entityToSave = sourceDAO.findByTopiaId(row.getTopiaId());
-
- // check entity exits ?
- if (entityToSave == null) {
- throw new EchoBaseTechnicalException(
- "Could not find entity with id " + row.getTopiaId());
- }
- Collection<TopiaEntity> assoc = meta.getChilds(row);
- Collection<TopiaEntity> associationToSave = Lists.newArrayList();
- for (TopiaEntity topiaEntity : assoc) {
- TopiaEntity byTopiaId = targetDAO.findByTopiaId(topiaEntity.getTopiaId());
- if (byTopiaId == null) {
- throw new EchoBaseTechnicalException(
- "Could not find entity with id " + topiaEntity.getTopiaId());
- }
- associationToSave.add(byTopiaId);
- result.incrementsNumberUpdated();
- }
- meta.setChilds(entityToSave, associationToSave);
+ sourceDAO.update(row);
+// E entityToSave = sourceDAO.findByTopiaId(row.getTopiaId());
+//
+// // check entity exits ?
+// if (entityToSave == null) {
+// throw new EchoBaseTechnicalException(
+// "Could not find entity with id " + row.getTopiaId());
+// }
+// Collection<TopiaEntity> assoc = meta.getChilds(row);
+// Collection<TopiaEntity> associationToSave = Lists.newArrayList();
+// for (TopiaEntity topiaEntity : assoc) {
+// TopiaEntity byTopiaId = targetDAO.findByTopiaId(topiaEntity.getTopiaId());
+// if (byTopiaId == null) {
+// throw new EchoBaseTechnicalException(
+// "Could not find entity with id " + topiaEntity.getTopiaId());
+// }
+// associationToSave.add(byTopiaId);
+// result.incrementsNumberUpdated();
+// }
+// meta.setChilds(entityToSave, associationToSave);
}
} finally {
@@ -315,5 +349,4 @@
throw new EchoBaseTechnicalException(eee);
}
}
-
}
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 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -53,6 +53,10 @@
this.serviceContext = serviceContext;
}
+ public <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) {
Preconditions.checkNotNull(entityType);
try {
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbConfiguration.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbConfiguration.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -0,0 +1,101 @@
+/*
+ * #%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 fr.ifremer.echobase.InputFile;
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.Locale;
+
+import static org.nuiton.i18n.I18n.l_;
+
+/**
+ * Configuration of a import db operation.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class ImportDbConfiguration implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ protected File workingDirectory;
+
+ protected InputFile input;
+
+ protected int nbSteps;
+
+ private float stepIncrement;
+
+ protected float progression;
+
+ public ImportDbConfiguration(Locale locale) {
+ input = InputFile.newFile(
+ l_(locale, "echobase.common.importDbFile"));
+ }
+
+ public File getWorkingDirectory() {
+ return workingDirectory;
+ }
+
+ public InputFile getInput() {
+ return input;
+ }
+
+ public int getNbSteps() {
+ return nbSteps;
+ }
+
+ public float getProgression() {
+ return progression;
+ }
+
+ public void setWorkingDirectory(File workingDirectory) {
+ this.workingDirectory = workingDirectory;
+ }
+
+ public void setProgression(float progression) {
+ this.progression = progression;
+ }
+
+ public void incrementsProgression() {
+ setProgression(progression + stepIncrement);
+ }
+
+ public void setNbSteps(int nbSteps) {
+
+ this.nbSteps = nbSteps;
+ stepIncrement = 100f / nbSteps;
+ }
+
+ public void destroy() throws IOException {
+ if (workingDirectory != null) {
+ FileUtils.deleteDirectory(workingDirectory);
+ }
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbConfiguration.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/ImportHistoricalConfiguration.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalConfiguration.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalConfiguration.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -1,102 +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 fr.ifremer.echobase.InputFile;
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.Locale;
-
-import static org.nuiton.i18n.I18n.l_;
-
-/**
- * Configuration of an historical import.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class ImportHistoricalConfiguration implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- protected File workingDirectory;
-
-
- protected InputFile input;
-
- protected int nbSteps;
-
- private float stepIncrement;
-
- protected float progression;
-
- public ImportHistoricalConfiguration(Locale locale) {
- input = InputFile.newFile(
- l_(locale, "echobase.common.importHistoricalFile"));
- }
-
- public File getWorkingDirectory() {
- return workingDirectory;
- }
-
- public InputFile getInput() {
- return input;
- }
-
- public int getNbSteps() {
- return nbSteps;
- }
-
- public float getProgression() {
- return progression;
- }
-
- public void setWorkingDirectory(File workingDirectory) {
- this.workingDirectory = workingDirectory;
- }
-
- public void setProgression(float progression) {
- this.progression = progression;
- }
-
- public void incrementsProgression() {
- setProgression(progression + stepIncrement);
- }
-
- public void computeSteps() {
- nbSteps = 0;
-
- stepIncrement = 100f / nbSteps;
- }
-
- public void destroy() throws IOException {
- if (workingDirectory != null) {
- FileUtils.deleteDirectory(workingDirectory);
- }
- }
-
-}
\ No newline at end of file
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalService.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportHistoricalService.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -1,94 +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 fr.ifremer.echobase.EchoBaseTechnicalException;
-import fr.ifremer.echobase.InputFile;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.File;
-
-/**
- * To import historical datas (from access database).
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class ImportHistoricalService extends EchoBaseServiceSupport {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ImportHistoricalService.class);
-
- public CsvImportResult startImport(ImportHistoricalConfiguration configuration) {
-
- CsvImportResult result;
-
- InputFile input = configuration.getInput();
-
- if (log.isInfoEnabled()) {
- log.info("Starts historical import with file " +
- input.getFileName());
- }
-
- try {
-
- result = doImport(input);
-
- } finally {
- deleteFile(input);
- }
- return result;
- }
-
- protected CsvImportResult doImport(InputFile input) {
-
- CsvImportResult result = CsvImportResult.newResult(null, input.getFileName(), false);
- prepareImport();
- return result;
- }
-
- protected void deleteFile(InputFile input) {
- File file = input.getFile();
-
- if (log.isInfoEnabled()) {
- log.info("Will delete import file " + file);
- }
- boolean wasDel = file.delete();
- if (!wasDel) {
- throw new EchoBaseTechnicalException("Could not delete file " + file);
- }
- }
-
-
- protected void prepareImport() {
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- // ignore
- }
- }
-
-}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -50,21 +50,30 @@
*/
public class CsvModelUtil extends Common {
+ public static final Function<TopiaEntity, String> TO_TOPIAID = new Function<TopiaEntity, String>() {
+
+ @Override
+ public String apply(TopiaEntity input) {
+ return input.getTopiaId().toLowerCase();
+ }
+ };
+
public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type) {
return new ForeignKeyValue<E>(type);
}
public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, Collection<E> entitites) {
- return new ForeignKeyValue<E>(type, entitites, new Function<E, String>() {
- @Override
- public String apply(E input) {
- return input.getTopiaId().toLowerCase();
- }
- });
+ Map<String, E> universe = Maps.uniqueIndex(entitites, TO_TOPIAID);
+ return newForeignKeyValue(type, universe);
}
+ public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, Map<String, E> universe) {
+ return new ForeignKeyValue<E>(type, universe);
+ }
+
public static <E extends TopiaEntity> ForeignKeyValue<E> newForeignKeyValue(Class<E> type, Collection<E> entitites, Function<E, String> transform) {
- return new ForeignKeyValue<E>(type, entitites, transform);
+ Map<String, E> universe = Maps.uniqueIndex(entitites, transform);
+ return new ForeignKeyValue<E>(type, universe);
}
public static <E extends TopiaEntity> ForeignKeyDecoratedValue<E> newForeignKeyDecoratedValue(Class<E> entityType,
@@ -72,16 +81,22 @@
return new ForeignKeyDecoratedValue<E>(entityType, decoratorService, locale);
}
- public static <E extends TopiaEntity> AssociationValueParserFormatter<E> newAssociationValueParserFormatter(Class<E> type) {
- return new AssociationValueParserFormatter<E>(type);
+ public static <E extends TopiaEntity> AssociationValueParserFormatter<E> newAssociationValueParserFormatter(Class<E> entityType,
+ Map<String, E> universe) {
+ return new AssociationValueParserFormatter<E>(entityType, universe);
}
public static class AssociationValueParserFormatter<E extends TopiaEntity> implements ValueParserFormatter<Collection<E>> {
protected final Class<E> entityType;
- public AssociationValueParserFormatter(Class<E> entityType) {
+ protected final Map<String, E> universe;
+
+ public AssociationValueParserFormatter(
+ Class<E> entityType,
+ Map<String, E> universe) {
this.entityType = entityType;
+ this.universe = universe;
}
@Override
@@ -92,6 +107,7 @@
String[] ids = value.split("\\|");
for (String id : ids) {
E association = ObjectUtil.newInstance(entityType);
+// E association = universe.get(id);
association.setTopiaId(id);
result.add(association);
}
@@ -120,10 +136,9 @@
protected final Map<String, E> universe;
public ForeignKeyValue(Class<E> entityType,
- Collection<E> entitites,
- Function<E, String> transform) {
+ Map<String, E> universe) {
this.entityType = entityType;
- universe = Maps.uniqueIndex(entitites, transform);
+ this.universe = universe;
}
public ForeignKeyValue(Class<E> entityType) {
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -32,6 +32,7 @@
import java.util.Collection;
import java.util.List;
+import java.util.Map;
/**
* A model to import / export associations of entities into csv files.
@@ -48,8 +49,17 @@
protected ModelBuilder<E> modelBuilder;
public static <E extends TopiaEntity> EntityAssociationCsvModel<E> newModel(char separator,
- AssociationMeta meta) {
- return new EntityAssociationCsvModel<E>(separator, meta);
+ AssociationMeta meta,
+ Map<String, E> sourcesById,
+ Map<String, TopiaEntity> targetsById
+ ) {
+ EntityAssociationCsvModel<E> model = new EntityAssociationCsvModel<E>(
+ separator,
+ meta,
+ sourcesById,
+ targetsById);
+
+ return model;
}
@Override
@@ -79,22 +89,32 @@
}
protected EntityAssociationCsvModel(char separator,
- AssociationMeta meta) {
+ AssociationMeta meta,
+ Map<String, E> sourcesById,
+ Map<String, TopiaEntity> targetsById) {
this.separator = separator;
this.meta = meta;
modelBuilder = new ModelBuilder<E>();
+ Class<E> source=
+ (Class<E>) meta.getSource().getContract();
+
// topiaId <-> topiaId
modelBuilder.newColumnForImportExport(
TopiaEntity.TOPIA_ID,
- TopiaEntity.TOPIA_ID
+ TopiaEntity.TOPIA_ID,
+ CsvModelUtil.newForeignKeyValue(source, sourcesById)
);
// add association -> target
+ Class<TopiaEntity> target =
+ (Class<TopiaEntity>) meta.getTarget().getImplementation();
+
modelBuilder.newColumnForImportExport(
meta.getName(),
meta.getName(),
- CsvModelUtil.newAssociationValueParserFormatter(meta.getTarget().getImplementation())
+ CsvModelUtil.newAssociationValueParserFormatter(target,targetsById)
+// CsvModelUtil.newAssociationValueParserFormatter(meta.getTarget().getImplementation())
);
}
Deleted: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java 2011-12-11 21:39:42 UTC (rev 167)
@@ -1,71 +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.models;
-
-import org.nuiton.util.csv.ExportableColumn;
-import org.nuiton.util.csv.ImportExportModel;
-import org.nuiton.util.csv.ImportableColumn;
-import org.nuiton.util.csv.ModelBuilder;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * TODO
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since TODO
- */
-public abstract class ImportExportModelSupport<E> implements ImportExportModel<E> {
-
- protected char separator;
-
- protected ModelBuilder<E> modelBuilder;
-
- protected ImportExportModelSupport(char separator) {
- this.separator = separator;
- modelBuilder = new ModelBuilder<E>();
- }
-
- @Override
- public char getSeparator() {
- return separator;
- }
-
- @Override
- public void pushCsvHeaderNames(List<String> headerNames) {
- }
-
- @Override
- public Collection<ExportableColumn<E, Object>> getColumnsForExport() {
- return (Collection)
- modelBuilder.getColumnsForExport();
- }
-
- @Override
- public Collection<ImportableColumn<E, Object>> getColumnsForImport() {
- return (Collection)
- modelBuilder.getColumnsForImport();
- }
-}
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 2011-12-11 21:37:31 UTC (rev 166)
+++ trunk/echobase-services/src/main/resources/i18n/echobase-services_fr_FR.properties 2011-12-11 21:39:42 UTC (rev 167)
@@ -3,6 +3,6 @@
echobase.common.eventsImport=Import Evènements
echobase.common.importDataMode.acoustic=Import Acoustic
echobase.common.importDataMode.all=Import globale
-echobase.common.importHistoricalFile=Fichier MS-ACCESS de données historiques
+echobase.common.importDbFile=File d'import (zip)
echobase.common.lectureAgeGenImport=Import Lecture Agen Gen
echobase.common.typeEchoSpeciesImport=Import Type EchoSpecies
1
0
r166 - trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 22:37:31 +0100 (Sun, 11 Dec 2011)
New Revision: 166
Url: http://forge.codelutin.com/repositories/revision/echobase/166
Log:
add references entities used
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-11 19:30:13 UTC (rev 165)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-11 21:37:31 UTC (rev 166)
@@ -146,6 +146,7 @@
public static EchoBaseEntityEnum[] getReferenceTypesForCopy() {
List<EchoBaseEntityEnum> result = Lists.newLinkedList();
+ result.add(EchoBaseEntityEnum.Localisation);
result.add(EchoBaseEntityEnum.SexeCategory);
result.add(EchoBaseEntityEnum.AgeCategory);
result.add(EchoBaseEntityEnum.SizeCategory);
@@ -164,7 +165,9 @@
result.add(EchoBaseEntityEnum.ReferenceDatumType);
result.add(EchoBaseEntityEnum.ReferenceDatum);
result.add(EchoBaseEntityEnum.DataType);
+ result.add(EchoBaseEntityEnum.DataQuality);
result.add(EchoBaseEntityEnum.CellMethod);
+ result.add(EchoBaseEntityEnum.CellType);
result.add(EchoBaseEntityEnum.DataMetadata);
return result.toArray(new EchoBaseEntityEnum[result.size()]);
}
1
0
r165 - in trunk/echobase-tools: . src/main/resources/csv/baracouda src/test/java/fr/ifremer/echobase/tools src/test/java/fr/ifremer/echobase/tools/loaders
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 20:30:13 +0100 (Sun, 11 Dec 2011)
New Revision: 165
Url: http://forge.codelutin.com/repositories/revision/echobase/165
Log:
change some tests to IT launchable via maven profiles, svn properties
Added:
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseMSAccessToCsvIT.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataBadProcessingLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataProcessingLoaderTest.java
Removed:
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataBadProcessingTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataProcessingLoaderTest.java
Modified:
trunk/echobase-tools/pom.xml
trunk/echobase-tools/src/main/resources/csv/baracouda/Data.csv
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2011-12-11 18:56:22 UTC (rev 164)
+++ trunk/echobase-tools/pom.xml 2011-12-11 19:30:13 UTC (rev 165)
@@ -154,6 +154,7 @@
</build>
<profiles>
+
<profile>
<id>run-loaders</id>
<activation>
@@ -176,6 +177,42 @@
</plugins>
</build>
</profile>
+
+ <profile>
+ <id>msaccess-to-csv</id>
+
+ <build>
+ <defaultGoal>test</defaultGoal>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*EchoBaseMSAccessToCsvIT.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>db-to-zip</id>
+
+ <build>
+ <defaultGoal>test</defaultGoal>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*EchoBaseDbZipCreatorIT.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
Property changes on: trunk/echobase-tools/src/main/resources/csv/baracouda/Data.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java 2011-12-11 18:56:22 UTC (rev 164)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -1,118 +0,0 @@
-/*
- * #%L
- * EchoBase :: Tools
- *
- * $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.tools;
-
-import fr.ifremer.echobase.tools.loaders.AbstractLoaderTest;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.nuiton.util.FileUtil;
-
-import java.io.File;
-
-/**
- * To test {@link EchoBaseDbCreator}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class EchoBaseDbCreatorTest extends AbstractToolTest {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(EchoBaseDbCreatorTest.class);
-
- protected static File msAccessFile;
-
- protected File exportdir;
-
- @BeforeClass
- public static void beforeClass() {
- AbstractLoaderTest.beforeClass();
-
- msAccessFile = FileUtil.getFileFromPaths(TestHelper.getBasedir(),
- "src",
- "test",
- "private",
- "baracouda.mdb"
- );
- if (!msAccessFile.exists()) {
- if (log.isWarnEnabled()) {
- log.warn("Could not find " + msAccessFile +
- ", the test will be skip.");
- }
- }
- Assume.assumeTrue(msAccessFile.exists());
- }
-
- @Before
- public void setUp() throws Exception {
-
- super.setUp();
-
- exportdir = new File(testdir, "export");
-
- // exportdir should not exist
- Assert.assertFalse(exportdir.exists());
-
- // creates it
- FileUtil.createDirectoryIfNecessary(exportdir);
- }
-
- @Test
- public void createEchoBaseDb() throws Exception {
-
- File dir = new File(exportdir, "echobase");
-
- if (log.isInfoEnabled()) {
- log.info("Generate echobase csv files in " + dir);
- }
-
- File distributionFile = new File(exportdir, "echobase.zip");
- Assert.assertFalse(distributionFile.exists());
-
- File basedir = TestHelper.getBasedir();
- File sourceDir = FileUtil.getFileFromFQN(basedir, "src.main.resources.csv");
- new EchoBaseDbCreator().createEchoBaseDb(sourceDir, dir, distributionFile);
-
- Assert.assertTrue(distributionFile.exists());
- }
-
- @Test
- public void exportMSAccessToCsv() throws Exception {
-
- File dir = new File(exportdir, "msaccessToCsv");
-
- if (log.isInfoEnabled()) {
- log.info("Generate msaccess files to csv in " + dir);
- }
-
- new EchoBaseDbCreator().exportMSAccessToCsv(msAccessFile, dir);
- }
-
-}
Copied: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java (from rev 163, trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java)
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -0,0 +1,65 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.util.FileUtil;
+
+import java.io.File;
+
+/**
+ * To test {@link EchoBaseDbCreator}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EchoBaseDbZipCreatorIT extends AbstractToolTest {
+
+ protected File exportdir;
+
+ @Test
+ public void createEchoBaseDb() throws Exception {
+
+ exportdir = new File(testdir, "export");
+
+ // exportdir should not exist
+ Assert.assertFalse(exportdir.exists());
+
+ // creates it
+ FileUtil.createDirectoryIfNecessary(exportdir);
+
+ File dir = new File(exportdir, "echobase");
+
+ File distributionFile = new File(exportdir, "echobase.zip");
+ Assert.assertFalse(distributionFile.exists());
+
+ File basedir = TestHelper.getBasedir();
+ File sourceDir = FileUtil.getFileFromFQN(basedir, "src.main.resources.csv");
+ new EchoBaseDbCreator().createEchoBaseDb(sourceDir, dir, distributionFile);
+
+ Assert.assertTrue(distributionFile.exists());
+ }
+
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbZipCreatorIT.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseMSAccessToCsvIT.java (from rev 163, trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java)
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseMSAccessToCsvIT.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseMSAccessToCsvIT.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -0,0 +1,85 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.Test;
+import org.nuiton.util.FileUtil;
+
+import java.io.File;
+
+/**
+ * To test {@link EchoBaseDbCreator}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EchoBaseMSAccessToCsvIT extends AbstractToolTest {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(EchoBaseMSAccessToCsvIT.class);
+
+ protected File msAccessFile;
+
+ protected File exportdir;
+
+ @Test
+ public void exportMSAccessToCsv() throws Exception {
+
+ msAccessFile = FileUtil.getFileFromPaths(TestHelper.getBasedir(),
+ "src",
+ "test",
+ "private",
+ "baracouda.mdb"
+ );
+ if (!msAccessFile.exists()) {
+ if (log.isWarnEnabled()) {
+ log.warn("Could not find " + msAccessFile +
+ ", the test will be skip.");
+ }
+ }
+ Assume.assumeTrue(msAccessFile.exists());
+
+ exportdir = new File(testdir, "export");
+
+ // exportdir should not exist
+ Assert.assertFalse(exportdir.exists());
+
+ // creates it
+ FileUtil.createDirectoryIfNecessary(exportdir);
+
+ File dir = new File(exportdir, "msaccessToCsv");
+
+ if (log.isInfoEnabled()) {
+ log.info("Generate msaccess files to csv in " + dir);
+ }
+
+ new EchoBaseDbCreator().exportMSAccessToCsv(msAccessFile, dir);
+ }
+
+}
Copied: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataBadProcessingLoaderTest.java (from rev 163, trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataBadProcessingTest.java)
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataBadProcessingLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataBadProcessingLoaderTest.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -0,0 +1,98 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.data.Cell;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * To test {@link CellLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+(a)RunWith(Parameterized.class)
+public class CellByDataBadProcessingLoaderTest extends AbstractLoaderTest<Cell, CellLoader> {
+
+ /** Id of data processing to treat. */
+ private String dataProcessingId;
+
+ @Parameterized.Parameters
+ public static List<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"EIT_0510_38"},
+ {"EIT_83A_38"},
+ {"EIT_83B_38"},
+ {"EIT_84_38"},
+ {"EIT_85_38"},
+ {"EIT_86_38"},
+ {"EIT_87_38"},
+ {"EIT_89A_38"},
+ {"EIT_89B_38"},
+ {"EIT_90_38"},
+ {"EIT_91_38"},
+ {"EIT_92_38"},
+ {"EIT_93_38"},
+ {"EIT_94_38"},
+ {"EIT_97_38"},
+ });
+ }
+
+ static boolean cacheLoaded;
+
+ @Override
+ public void setUp() throws Exception {
+
+ loadDependencies = false;
+
+ super.setUp();
+
+ if (!cacheLoaded) {
+
+ // load caches once for all
+
+ loader.loadAllProcessingIdsFromScenario(getDb());
+
+ cacheLoaded = true;
+ }
+ }
+
+ public CellByDataBadProcessingLoaderTest(String dataProcessingId) {
+ super(CellLoader.class, 0, 0);
+ this.dataProcessingId = dataProcessingId;
+ }
+
+ @Test
+ public void testDataProcessingBad() throws Exception {
+ boolean contains = loader.getAllProcessingIds().contains(dataProcessingId);
+ Assert.assertFalse(contains);
+ }
+
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataBadProcessingLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Copied: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataProcessingLoaderTest.java (from rev 163, trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataProcessingLoaderTest.java)
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataProcessingLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataProcessingLoaderTest.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -0,0 +1,236 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Lists;
+import com.healthmarketscience.jackcess.Database;
+import fr.ifremer.echobase.EchoBaseIOUtil;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.DataProcessing;
+import fr.ifremer.echobase.entities.meta.AssociationMeta;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.services.DbEditorService;
+import fr.ifremer.echobase.tools.FileType;
+import fr.ifremer.echobase.tools.TestHelper;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.nuiton.topia.TopiaException;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * To test {@link CellLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+(a)RunWith(Parameterized.class)
+public class CellByDataProcessingLoaderTest extends AbstractLoaderTest<Cell, CellLoader> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(CellByDataProcessingLoaderTest.class);
+
+ /** Id of data processing to treat. */
+ private String dataProcessingId;
+
+ @Parameterized.Parameters
+ public static List<Object[]> data() {
+ return Arrays.asList(new Object[][]{
+ {"EIT_00_38", 0},
+ {"EIT_01_38", 0},
+ {"EIT_02_38", 0},
+ {"EIT_03_38", 0},
+ {"EIT_0310_38", 0},
+ {"EIT_04_38", 0},
+ {"EIT_05_38", 0},
+// {"EIT_0510_38", 0},
+ {"EIT_06_38", 0},
+ {"EIT_07_38", 0},
+ {"EIT_08_38", 0},
+ {"EIT_09_38", 0},
+ {"EIT_10_38", 0},
+// {"EIT_83A_38", 0},
+// {"EIT_83B_38", 0},
+// {"EIT_84_38", 0},
+// {"EIT_85_38", 0},
+// {"EIT_86_38", 0},
+// {"EIT_87_38", 0},
+// {"EIT_89A_38", 0},
+// {"EIT_89B_38", 0},
+// {"EIT_90_38", 0},
+// {"EIT_91_38", 0},
+// {"EIT_92_38", 0},
+// {"EIT_93_38", 0},
+// {"EIT_94_38", 0},
+// {"EIT_97_38", 0},
+ {"EIT_98b_38", 0},
+ });
+ }
+
+ static boolean cacheLoaded;
+
+ static List<File> directoriesToMerge = Lists.newLinkedList();
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ if (!cacheLoaded) {
+
+ // load caches once for all
+
+ loader.loadCache(getDb());
+
+ cacheLoaded = true;
+ }
+
+ Assert.assertTrue(loader.getAllProcessingIds().contains(dataProcessingId));
+ }
+
+ static CellLoader lastLoader;
+
+ @Override
+ public void tearDown() throws Exception {
+ lastLoader = loader;
+ super.tearDown();
+
+ if (log.isInfoEnabled()) {
+ log.info("TimeLogs : " + DbEditorService.timeLog.getCallCount());
+ }
+ }
+
+ @AfterClass
+ public static void afterClass() throws Exception {
+
+ // merge all results
+ if (CollectionUtils.isNotEmpty(directoriesToMerge)) {
+
+ // let's merge all result
+ File dir = TestHelper.getTestBasedir(CellByDataProcessingLoaderTest.class);
+
+ TableMeta cellMeta = lastLoader.getMeta();
+ TableMeta dataMeta = lastLoader.getTable(EchoBaseEntityEnum.Data);
+ TableMeta dataProcessingMeta = lastLoader.getTable(EchoBaseEntityEnum.DataProcessing);
+ AssociationMeta dataProcessingToCellMetaAssociation = dataProcessingMeta.getAssociations(DataProcessing.PROPERTY_CELL);
+ AssociationMeta cellToCellMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_CHILDS);
+ AssociationMeta cellToDataMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_DATA);
+
+ ToFileFromMeta toCellFile = new ToFileFromMeta(lastLoader, cellMeta);
+ ToFileFromMeta toDataFile = new ToFileFromMeta(lastLoader, dataMeta);
+ ToFileFromMeta toDataProcessingToCellFile = new ToFileFromMeta(lastLoader, dataProcessingToCellMetaAssociation);
+ ToFileFromMeta toCellToCellFile = new ToFileFromMeta(lastLoader, cellToCellMetaAssociation);
+ ToFileFromMeta toCellToDataFile = new ToFileFromMeta(lastLoader, cellToDataMetaAssociation);
+
+ if (log.isInfoEnabled()) {
+ log.info("Will merge " + directoriesToMerge.size() + " data processing data into " + dir);
+ }
+
+ mergeFile(dir, toCellFile);
+ mergeFile(dir, toDataFile);
+ mergeFile(dir, toDataProcessingToCellFile);
+ mergeFile(dir, toCellToCellFile);
+ mergeFile(dir, toCellToDataFile);
+ }
+ }
+
+ protected static void mergeFile(File dir, ToFileFromMeta function) throws Exception {
+
+ File mergedFile = function.apply(dir);
+ if (log.isInfoEnabled()) {
+ log.info("Will merge to " + mergedFile.getName());
+ }
+
+ Collection<File> files = Collections2.transform(directoriesToMerge, function);
+
+ EchoBaseIOUtil.mergeFiles(mergedFile, files);
+ }
+
+ public CellByDataProcessingLoaderTest(String dataProcessingId, int exceptedDataCount) {
+ super(CellLoader.class, 0, exceptedDataCount);
+ this.dataProcessingId = dataProcessingId;
+ }
+
+ @Test
+ public void testGenerateEntitiesFromBaracouda() throws Exception {
+ generateBaracoudaEntities();
+ }
+
+ @Override
+ protected void launchEntitiesFromBaracouda(CellLoader loader,
+ Database db,
+ File exportdir) throws IOException, TopiaException, ParseException {
+
+ if (log.isInfoEnabled()) {
+ log.info("Export to " + exportdir);
+ }
+ directoriesToMerge.add(exportdir);
+ loader.generateEntitiesFromBaracouda(db, exportdir, dataProcessingId, true);
+ }
+
+ @Override
+ protected void importEntities(File inFile,
+ long nbExpected) throws IOException, TopiaException {
+ // do not use it
+ }
+
+ private static class ToFileFromMeta implements Function<File, File> {
+
+ private MetaFilenameAware meta;
+ private FileType fileType;
+ private CellLoader loader;
+
+ public ToFileFromMeta(CellLoader loader, MetaFilenameAware meta) {
+ this.meta = meta;
+ this.loader = loader;
+ fileType = meta instanceof AssociationMeta ? FileType.ASSOCIATION : FileType.BARACOUDA;
+ }
+
+ @Override
+ public File apply(File input) {
+
+ try {
+ return loader.getTableFile(input, meta, fileType);
+ } catch (IOException e) {
+ throw new IllegalStateException("Could not obtain table file", e);
+ }
+ }
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellByDataProcessingLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataBadProcessingTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataBadProcessingTest.java 2011-12-11 18:56:22 UTC (rev 164)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataBadProcessingTest.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -1,98 +0,0 @@
-/*
- * #%L
- * EchoBase :: Tools
- *
- * $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.tools.loaders;
-
-import fr.ifremer.echobase.entities.data.Cell;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * To test {@link CellLoader}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-(a)RunWith(Parameterized.class)
-public class CellLoaderByDataBadProcessingTest extends AbstractLoaderTest<Cell, CellLoader> {
-
- /** Id of data processing to treat. */
- private String dataProcessingId;
-
- @Parameterized.Parameters
- public static List<Object[]> data() {
- return Arrays.asList(new Object[][]{
- {"EIT_0510_38"},
- {"EIT_83A_38"},
- {"EIT_83B_38"},
- {"EIT_84_38"},
- {"EIT_85_38"},
- {"EIT_86_38"},
- {"EIT_87_38"},
- {"EIT_89A_38"},
- {"EIT_89B_38"},
- {"EIT_90_38"},
- {"EIT_91_38"},
- {"EIT_92_38"},
- {"EIT_93_38"},
- {"EIT_94_38"},
- {"EIT_97_38"},
- });
- }
-
- static boolean cacheLoaded;
-
- @Override
- public void setUp() throws Exception {
-
- loadDependencies = false;
-
- super.setUp();
-
- if (!cacheLoaded) {
-
- // load caches once for all
-
- loader.loadAllProcessingIdsFromScenario(getDb());
-
- cacheLoaded = true;
- }
- }
-
- public CellLoaderByDataBadProcessingTest(String dataProcessingId) {
- super(CellLoader.class, 0, 0);
- this.dataProcessingId = dataProcessingId;
- }
-
- @Test
- public void testDataProcessingBad() throws Exception {
- boolean contains = loader.getAllProcessingIds().contains(dataProcessingId);
- Assert.assertFalse(contains);
- }
-
-}
Deleted: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataProcessingLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataProcessingLoaderTest.java 2011-12-11 18:56:22 UTC (rev 164)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderByDataProcessingLoaderTest.java 2011-12-11 19:30:13 UTC (rev 165)
@@ -1,236 +0,0 @@
-/*
- * #%L
- * EchoBase :: Tools
- *
- * $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.tools.loaders;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.Lists;
-import com.healthmarketscience.jackcess.Database;
-import fr.ifremer.echobase.EchoBaseIOUtil;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.data.Cell;
-import fr.ifremer.echobase.entities.data.DataProcessing;
-import fr.ifremer.echobase.entities.meta.AssociationMeta;
-import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
-import fr.ifremer.echobase.entities.meta.TableMeta;
-import fr.ifremer.echobase.services.DbEditorService;
-import fr.ifremer.echobase.tools.FileType;
-import fr.ifremer.echobase.tools.TestHelper;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.nuiton.topia.TopiaException;
-
-import java.io.File;
-import java.io.IOException;
-import java.text.ParseException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * To test {@link CellLoader}.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-(a)RunWith(Parameterized.class)
-public class CellLoaderByDataProcessingLoaderTest extends AbstractLoaderTest<Cell, CellLoader> {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(CellLoaderByDataProcessingLoaderTest.class);
-
- /** Id of data processing to treat. */
- private String dataProcessingId;
-
- @Parameterized.Parameters
- public static List<Object[]> data() {
- return Arrays.asList(new Object[][]{
- {"EIT_00_38", 0},
- {"EIT_01_38", 0},
- {"EIT_02_38", 0},
- {"EIT_03_38", 0},
- {"EIT_0310_38", 0},
- {"EIT_04_38", 0},
- {"EIT_05_38", 0},
-// {"EIT_0510_38", 0},
- {"EIT_06_38", 0},
- {"EIT_07_38", 0},
- {"EIT_08_38", 0},
- {"EIT_09_38", 0},
- {"EIT_10_38", 0},
-// {"EIT_83A_38", 0},
-// {"EIT_83B_38", 0},
-// {"EIT_84_38", 0},
-// {"EIT_85_38", 0},
-// {"EIT_86_38", 0},
-// {"EIT_87_38", 0},
-// {"EIT_89A_38", 0},
-// {"EIT_89B_38", 0},
-// {"EIT_90_38", 0},
-// {"EIT_91_38", 0},
-// {"EIT_92_38", 0},
-// {"EIT_93_38", 0},
-// {"EIT_94_38", 0},
-// {"EIT_97_38", 0},
- {"EIT_98b_38", 0},
- });
- }
-
- static boolean cacheLoaded;
-
- static List<File> directoriesToMerge = Lists.newLinkedList();
-
- @Override
- public void setUp() throws Exception {
-
- super.setUp();
-
- if (!cacheLoaded) {
-
- // load caches once for all
-
- loader.loadCache(getDb());
-
- cacheLoaded = true;
- }
-
- Assert.assertTrue(loader.getAllProcessingIds().contains(dataProcessingId));
- }
-
- static CellLoader lastLoader;
-
- @Override
- public void tearDown() throws Exception {
- lastLoader = loader;
- super.tearDown();
-
- if (log.isInfoEnabled()) {
- log.info("TimeLogs : " + DbEditorService.timeLog.getCallCount());
- }
- }
-
- @AfterClass
- public static void afterClass() throws Exception {
-
- // merge all results
- if (CollectionUtils.isNotEmpty(directoriesToMerge)) {
-
- // let's merge all result
- File dir = TestHelper.getTestBasedir(CellLoaderByDataProcessingLoaderTest.class);
-
- TableMeta cellMeta = lastLoader.getMeta();
- TableMeta dataMeta = lastLoader.getTable(EchoBaseEntityEnum.Data);
- TableMeta dataProcessingMeta = lastLoader.getTable(EchoBaseEntityEnum.DataProcessing);
- AssociationMeta dataProcessingToCellMetaAssociation = dataProcessingMeta.getAssociations(DataProcessing.PROPERTY_CELL);
- AssociationMeta cellToCellMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_CHILDS);
- AssociationMeta cellToDataMetaAssociation = cellMeta.getAssociations(Cell.PROPERTY_DATA);
-
- ToFileFromMeta toCellFile = new ToFileFromMeta(lastLoader, cellMeta);
- ToFileFromMeta toDataFile = new ToFileFromMeta(lastLoader, dataMeta);
- ToFileFromMeta toDataProcessingToCellFile = new ToFileFromMeta(lastLoader, dataProcessingToCellMetaAssociation);
- ToFileFromMeta toCellToCellFile = new ToFileFromMeta(lastLoader, cellToCellMetaAssociation);
- ToFileFromMeta toCellToDataFile = new ToFileFromMeta(lastLoader, cellToDataMetaAssociation);
-
- if (log.isInfoEnabled()) {
- log.info("Will merge " + directoriesToMerge.size() + " data processing data into " + dir);
- }
-
- mergeFile(dir, toCellFile);
- mergeFile(dir, toDataFile);
- mergeFile(dir, toDataProcessingToCellFile);
- mergeFile(dir, toCellToCellFile);
- mergeFile(dir, toCellToDataFile);
- }
- }
-
- protected static void mergeFile(File dir, ToFileFromMeta function) throws Exception {
-
- File mergedFile = function.apply(dir);
- if (log.isInfoEnabled()) {
- log.info("Will merge to " + mergedFile.getName());
- }
-
- Collection<File> files = Collections2.transform(directoriesToMerge, function);
-
- EchoBaseIOUtil.mergeFiles(mergedFile, files);
- }
-
- public CellLoaderByDataProcessingLoaderTest(String dataProcessingId, int exceptedDataCount) {
- super(CellLoader.class, 0, exceptedDataCount);
- this.dataProcessingId = dataProcessingId;
- }
-
- @Test
- public void testGenerateEntitiesFromBaracouda() throws Exception {
- generateBaracoudaEntities();
- }
-
- @Override
- protected void launchEntitiesFromBaracouda(CellLoader loader,
- Database db,
- File exportdir) throws IOException, TopiaException, ParseException {
-
- if (log.isInfoEnabled()) {
- log.info("Export to " + exportdir);
- }
- directoriesToMerge.add(exportdir);
- loader.generateEntitiesFromBaracouda(db, exportdir, dataProcessingId, true);
- }
-
- @Override
- protected void importEntities(File inFile,
- long nbExpected) throws IOException, TopiaException {
- // do not use it
- }
-
- private static class ToFileFromMeta implements Function<File, File> {
-
- private MetaFilenameAware meta;
- private FileType fileType;
- private CellLoader loader;
-
- public ToFileFromMeta(CellLoader loader, MetaFilenameAware meta) {
- this.meta = meta;
- this.loader = loader;
- fileType = meta instanceof AssociationMeta ? FileType.ASSOCIATION : FileType.BARACOUDA;
- }
-
- @Override
- public File apply(File input) {
-
- try {
- return loader.getTableFile(input, meta, fileType);
- } catch (IOException e) {
- throw new IllegalStateException("Could not obtain table file", e);
- }
- }
- }
-}
1
0
r162 - in trunk/echobase-services/src/main/java/fr/ifremer/echobase: . services services/models
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 19:15:44 +0100 (Sun, 11 Dec 2011)
New Revision: 162
Url: http://forge.codelutin.com/repositories/revision/echobase/162
Log:
introduce EchoBaseIOUtil
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/EchoBaseIOUtil.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/EchoBaseIOUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/EchoBaseIOUtil.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/EchoBaseIOUtil.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -0,0 +1,117 @@
+/*
+ * #%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;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.io.FileUtils;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.ZipUtil;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Collection;
+
+/**
+ * Usefull methods on io.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EchoBaseIOUtil {
+
+
+ public static void compressZipFile(File zipFile, File directory) {
+ compressZipFile(zipFile, directory, true);
+ }
+
+ public static void compressZipFile(File zipFile, File directory, boolean delete) {
+ try {
+ ZipUtil.compress(zipFile, directory);
+ } catch (IOException eee) {
+ throw new EchoBaseTechnicalException(
+ "Can not create zip file " + zipFile, eee);
+ } finally {
+ if (delete) {
+ FileUtil.deleteRecursively(directory);
+ }
+ }
+ }
+
+ public static void copyFile(File destinationFile,
+ Collection<File> filesToMerge) throws IOException {
+ if (CollectionUtils.isEmpty(filesToMerge)) {
+
+ // nothing to copy
+ return;
+ }
+ if (filesToMerge.size() == 1) {
+
+ // simple copy
+ FileUtils.copyFile(filesToMerge.iterator().next(), destinationFile);
+ } else {
+
+ // must merge all files
+ mergeFiles(destinationFile, filesToMerge);
+ }
+ }
+
+ public static void mergeFiles(File destination,
+ Iterable<File> fileToMerges) throws IOException {
+
+ BufferedWriter writer = new BufferedWriter(new FileWriter(destination));
+ try {
+ boolean firstLine = false;
+ for (File toMergeFile : fileToMerges) {
+ BufferedReader reader = new BufferedReader(new FileReader(toMergeFile));
+ try {
+ // pass the first line (header)
+ String line = reader.readLine();
+ if (!firstLine) {
+
+ // add the csv header
+ writer.write(line);
+
+ firstLine = true;
+ }
+ while ((line = reader.readLine()) != null) {
+ writer.newLine();
+ writer.write(line);
+ }
+ } finally {
+ reader.close();
+ }
+
+ }
+ } finally {
+ writer.close();
+ }
+ }
+
+ protected EchoBaseIOUtil() {
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/EchoBaseIOUtil.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/DbEditorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-12-11 18:15:03 UTC (rev 161)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -23,7 +23,6 @@
*/
package fr.ifremer.echobase.services;
-import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseTechnicalException;
@@ -38,7 +37,6 @@
import fr.ifremer.echobase.services.models.CsvModelUtil;
import fr.ifremer.echobase.services.models.EntityAssociationCsvModel;
import fr.ifremer.echobase.services.models.EntityCsvModel;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -46,6 +44,7 @@
import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.TimeLog;
import org.nuiton.util.beans.BeanMonitor;
import org.nuiton.util.beans.PropertyDiff;
import org.nuiton.util.csv.Export;
@@ -299,12 +298,8 @@
public String exportDatas(TableMeta tableMeta) {
- List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, null);
+ Export<TopiaEntity> export = prepareExport(tableMeta);
- ImportExportModel<TopiaEntity> model = buildForExport(tableMeta);
-
- Export<TopiaEntity> export = Export.newExport(model, datas);
-
try {
return export.startExportAsString();
} catch (Exception eee) {
@@ -312,34 +307,21 @@
}
}
- public String exportDatas(AssociationMeta associationMeta) {
-
- TableMeta tableMeta = getTableMeta(associationMeta.getSource());
-
- List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0");
-
- ImportExportModel<TopiaEntity> model = buildForExport(associationMeta);
-
- Export<TopiaEntity> export = Export.newExport(model, datas);
-
- try {
- return export.startExportAsString();
- } catch (Exception eee) {
- throw new EchoBaseTechnicalException("Can not export datas", eee);
- }
- }
-
public void exportDatas(TableMeta tableMeta, File file) {
if (log.isInfoEnabled()) {
log.info("Export table " + tableMeta + " to " + file);
}
+ long s1 = TimeLog.getTime();
+ Export<TopiaEntity> export = prepareExport(tableMeta);
+ timeLog.log(s1, "prepareExport");
+ long s2 = TimeLog.getTime();
try {
- String content = exportDatas(tableMeta);
- FileUtils.write(file, content, Charsets.UTF_8.name());
+ export.exportToFile(file);
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
+ timeLog.log(s2, "exportToFile");
}
public void exportDatas(AssociationMeta associationMeta, File file) {
@@ -347,12 +329,17 @@
if (log.isInfoEnabled()) {
log.info("Export association " + associationMeta + " to " + file);
}
+ long s1 = TimeLog.getTime();
+ Export<TopiaEntity> export = prepareExport(associationMeta);
+ timeLog.log(s1, "prepareExport");
+
+ long s2 = TimeLog.getTime();
try {
- String content = exportDatas(associationMeta);
- FileUtils.write(file, content, Charsets.UTF_8.name());
+ export.exportToFile(file);
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
+ timeLog.log(s2, "exportToFile");
}
public boolean saveEntity(TableMeta tableMeta,
@@ -498,7 +485,7 @@
Map<String, Object> row = Maps.newLinkedHashMap();
- Collection<ExportableColumn<E, Object>> columns =
+ Iterable<ExportableColumn<E, Object>> columns =
loadModel.getColumnsForExport();
for (ExportableColumn<E, Object> column : columns) {
@@ -560,6 +547,16 @@
return model;
}
+ public <E extends TopiaEntity> ImportExportModel<E> buildForExport(MetaFilenameAware meta) {
+ if (meta instanceof AssociationMeta) {
+ return buildForExport((AssociationMeta) meta);
+ }
+ if (meta instanceof TableMeta) {
+ return buildForExport((TableMeta) meta);
+ }
+ throw new IllegalStateException("Can't do a thing with " + meta);
+ }
+
public <E extends TopiaEntity> ImportExportModel<E> buildForExport(TableMeta meta) {
EntityCsvModel<E> model = EntityCsvModel.newModel(
@@ -568,7 +565,6 @@
TopiaEntity.TOPIA_ID
);
-
for (ColumnMeta columnMeta : meta) {
String propertyName = columnMeta.getName();
Class<?> type = columnMeta.getType();
@@ -647,4 +643,21 @@
}
return model;
}
+
+ protected Export<TopiaEntity> prepareExport(TableMeta tableMeta) {
+ List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, null);
+ ImportExportModel<TopiaEntity> model = buildForExport(tableMeta);
+ return Export.newExport(model, datas);
+ }
+
+ public static final TimeLog timeLog = new TimeLog(DbEditorService.class);
+
+ protected Export<TopiaEntity> prepareExport(AssociationMeta associationMeta) {
+
+ TableMeta tableMeta = getTableMeta(associationMeta.getSource());
+ List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0");
+
+ ImportExportModel<TopiaEntity> model = buildForExport(associationMeta);
+ return Export.newExport(model, datas);
+ }
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-11 18:15:03 UTC (rev 161)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -25,6 +25,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import fr.ifremer.echobase.EchoBaseIOUtil;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
@@ -39,6 +40,7 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.StringUtil;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportExportModel;
@@ -81,7 +83,8 @@
List<String> missingEntries = Lists.newArrayList();
- Map<MetaFilenameAware, ZipEntry> entriestoConsume = Maps.newLinkedHashMap();
+ Map<MetaFilenameAware, ZipEntry> entriestoConsume =
+ Maps.newLinkedHashMap();
// check that all mandatories
for (MetaFilenameAware entry : entries) {
@@ -97,10 +100,14 @@
if (!missingEntries.isEmpty()) {
- // there is some missing file entries
- throw new EchoBaseTechnicalException(
- "There is some missing mandatory files " +
- missingEntries + " in import " + file);
+ if (log.isWarnEnabled()) {
+ log.warn("There is " + missingEntries.size() + "missing mandatory files " +
+ " in import " + file + "\n" + StringUtil.join(missingEntries, "\n", false));
+ }
+
+// throw new EchoBaseTechnicalException(
+// "There is some missing mandatory files " +
+// missingEntries + " in import " + file);
}
// consume all found entries
@@ -162,7 +169,7 @@
}
}
- compressZipFile(zipFile, tempDirectory);
+ EchoBaseIOUtil.compressZipFile(zipFile, tempDirectory);
return zipFile;
}
@@ -199,7 +206,6 @@
}
}
-
public MetaFilenameAware[] getEntries() {
List<MetaFilenameAware> result = Lists.newArrayList();
@@ -213,7 +219,8 @@
return getDbEditorService().getTableMeta(tableName);
}
- protected void addEntries(List<MetaFilenameAware> result, EchoBaseEntityEnum[] types) {
+ protected void addEntries(List<MetaFilenameAware> result,
+ EchoBaseEntityEnum[] types) {
for (EchoBaseEntityEnum type : types) {
TableMeta tableMeta = getTableMeta(type);
@@ -233,9 +240,9 @@
}
protected void importEntities(TableMeta meta,
- ImportExportModel<TopiaEntity> csvModel,
- CsvImportResult result,
- Reader reader) {
+ ImportExportModel<TopiaEntity> csvModel,
+ CsvImportResult result,
+ Reader reader) {
Import<TopiaEntity> importer = Import.newImport(csvModel, reader);
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 2011-12-11 18:15:03 UTC (rev 161)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceSupport.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -35,11 +35,7 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.ZipUtil;
-import java.io.File;
-import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Locale;
@@ -129,15 +125,4 @@
return result;
}
- protected void compressZipFile(File zipFile, File directory) {
- try {
- ZipUtil.compress(zipFile, directory);
- } catch (IOException eee) {
- throw new EchoBaseTechnicalException(
- "Can not create zip file " + zipFile, eee);
- } finally {
- FileUtil.deleteRecursively(directory);
- }
- }
-
}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java 2011-12-11 18:15:03 UTC (rev 161)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -58,13 +58,13 @@
}
@Override
- public Collection<ExportableColumn<E, Object>> getColumnsForExport() {
+ public Iterable<ExportableColumn<E, Object>> getColumnsForExport() {
return (Collection)
modelBuilder.getColumnsForExport();
}
@Override
- public Collection<ImportableColumn<E, Object>> getColumnsForImport() {
+ public Iterable<ImportableColumn<E, Object>> getColumnsForImport() {
return (Collection)
modelBuilder.getColumnsForImport();
}
Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java 2011-12-11 18:15:44 UTC (rev 162)
@@ -0,0 +1,71 @@
+/*
+ * #%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.models;
+
+import org.nuiton.util.csv.ExportableColumn;
+import org.nuiton.util.csv.ImportExportModel;
+import org.nuiton.util.csv.ImportableColumn;
+import org.nuiton.util.csv.ModelBuilder;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * TODO
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since TODO
+ */
+public abstract class ImportExportModelSupport<E> implements ImportExportModel<E> {
+
+ protected char separator;
+
+ protected ModelBuilder<E> modelBuilder;
+
+ protected ImportExportModelSupport(char separator) {
+ this.separator = separator;
+ modelBuilder = new ModelBuilder<E>();
+ }
+
+ @Override
+ public char getSeparator() {
+ return separator;
+ }
+
+ @Override
+ public void pushCsvHeaderNames(List<String> headerNames) {
+ }
+
+ @Override
+ public Collection<ExportableColumn<E, Object>> getColumnsForExport() {
+ return (Collection)
+ modelBuilder.getColumnsForExport();
+ }
+
+ @Override
+ public Collection<ImportableColumn<E, Object>> getColumnsForImport() {
+ return (Collection)
+ modelBuilder.getColumnsForImport();
+ }
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/ImportExportModelSupport.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r161 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 19:15:03 +0100 (Sun, 11 Dec 2011)
New Revision: 161
Url: http://forge.codelutin.com/repositories/revision/echobase/161
Log:
fix some io codes
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java
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 2011-12-11 18:14:16 UTC (rev 160)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EmbeddedApplicationService.java 2011-12-11 18:15:03 UTC (rev 161)
@@ -24,6 +24,7 @@
package fr.ifremer.echobase.services;
import com.google.common.base.Supplier;
+import fr.ifremer.echobase.EchoBaseIOUtil;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.EchoBaseTopiaRootContextSupplierFactory;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
@@ -40,7 +41,11 @@
import org.nuiton.topia.replication.model.ReplicationModel;
import org.nuiton.util.FileUtil;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.URISyntaxException;
import java.util.List;
@@ -83,7 +88,7 @@
File warLocation = getConfiguration().getWarLocation();
File tempDirectory = new File(FileUtils.getTempDirectory(),
- "echobase-embedded_" + System.nanoTime());
+ "echobase-embedded_" + System.nanoTime());
tempDirectory.deleteOnExit();
File zipDirectory = new File(tempDirectory, fileName);
@@ -92,7 +97,7 @@
if (log.isInfoEnabled()) {
log.info("Creates zip file [" + zipFile + "] from directory " +
- zipDirectory);
+ zipDirectory);
}
try {
// create /
@@ -116,7 +121,7 @@
zipDirectory, eee);
}
- compressZipFile(zipFile, zipDirectory);
+ EchoBaseIOUtil.compressZipFile(zipFile, zipDirectory);
return zipFile;
}
@@ -127,14 +132,16 @@
InputStream inputStream =
getClass().getResourceAsStream(startFile.getFilePath());
-
- File startFileDest = new File(zipDirectory, startFile.getFileName());
- OutputStream outputStream = new FileOutputStream(startFileDest);
try {
- IOUtils.copy(inputStream, outputStream);
+ File startFileDest = new File(zipDirectory, startFile.getFileName());
+ OutputStream outputStream = new FileOutputStream(startFileDest);
+ try {
+ IOUtils.copy(inputStream, outputStream);
+ } finally {
+ outputStream.close();
+ }
} finally {
- IOUtils.closeQuietly(inputStream);
- IOUtils.closeQuietly(outputStream);
+ inputStream.close();
}
}
}
@@ -147,13 +154,15 @@
}
InputStream configInputStream =
getClass().getResourceAsStream(EMBEDDED_PATH + "echobase-embedded.properties");
-
- OutputStream configOutputStream = new FileOutputStream(configurationfile);
try {
- IOUtils.copy(configInputStream, configOutputStream);
+ OutputStream configOutputStream = new FileOutputStream(configurationfile);
+ try {
+ IOUtils.copy(configInputStream, configOutputStream);
+ } finally {
+ configOutputStream.close();
+ }
} finally {
- IOUtils.closeQuietly(configInputStream);
- configOutputStream.close();
+ configInputStream.close();
}
}
@@ -180,7 +189,7 @@
// create new service context (with new transaction)
EchoBaseServiceContext newServiceContext =
EchoBaseServiceContextImpl.newContext(serviceContext,
- topiaContext);
+ topiaContext);
// get user service from h2 db
UserService userService =
1
0
r160 - in trunk/echobase-entities/src/main: resources/i18n xmi
by tchemit@users.forge.codelutin.com 11 Dec '11
by tchemit@users.forge.codelutin.com 11 Dec '11
11 Dec '11
Author: tchemit
Date: 2011-12-11 19:14:16 +0100 (Sun, 11 Dec 2011)
New Revision: 160
Url: http://forge.codelutin.com/repositories/revision/echobase/160
Log:
fix a property name (otherwise beanutils does not liek it
Modified:
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
trunk/echobase-entities/src/main/xmi/echobase.zargo
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 2011-12-08 05:55:37 UTC (rev 159)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-12-11 18:14:16 UTC (rev 160)
@@ -63,6 +63,7 @@
echobase.common.echosounderSoundSpeed=
echobase.common.echotype=
echobase.common.echotypeCategory=
+echobase.common.eiThreshold=
echobase.common.email=Courriel
echobase.common.endDate=
echobase.common.endLocality=
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
1
0
r159 - trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor
by tchemit@users.forge.codelutin.com 08 Dec '11
by tchemit@users.forge.codelutin.com 08 Dec '11
08 Dec '11
Author: tchemit
Date: 2011-12-08 06:55:37 +0100 (Thu, 08 Dec 2011)
New Revision: 159
Url: http://forge.codelutin.com/repositories/revision/echobase/159
Log:
use new api
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2011-12-08 05:55:17 UTC (rev 158)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ExportTable.java 2011-12-08 05:55:37 UTC (rev 159)
@@ -89,7 +89,7 @@
DbEditorService service = newService(DbEditorService.class);
- String content = service.exportDatas(entityType);
+ String content = service.exportDatas(service.getTableMeta(entityType));
if (log.isDebugEnabled()) {
log.debug("file to export " + content);
1
0
r158 - in trunk/echobase-tools: . src/main/java/fr/ifremer/echobase/tools src/main/java/fr/ifremer/echobase/tools/loaders src/main/resources/csv src/main/resources/csv/association src/main/resources/csv/baracouda src/main/resources/csv/new src/test/java/fr/ifremer/echobase/tools src/test/java/fr/ifremer/echobase/tools/loaders src/test/resources/csv/new
by tchemit@users.forge.codelutin.com 08 Dec '11
by tchemit@users.forge.codelutin.com 08 Dec '11
08 Dec '11
Author: tchemit
Date: 2011-12-08 06:55:17 +0100 (Thu, 08 Dec 2011)
New Revision: 158
Url: http://forge.codelutin.com/repositories/revision/echobase/158
Log:
continue msaccess import (common datas)
Added:
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransectLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransitLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java
trunk/echobase-tools/src/main/resources/csv/association/
trunk/echobase-tools/src/main/resources/csv/association/Transit_transect.csv
trunk/echobase-tools/src/main/resources/csv/association/Voyage_transit.csv
trunk/echobase-tools/src/main/resources/csv/baracouda/Transect.csv
trunk/echobase-tools/src/main/resources/csv/baracouda/Transit.csv
trunk/echobase-tools/src/main/resources/csv/baracouda/Voyage.csv
trunk/echobase-tools/src/main/resources/csv/new/Localisation.csv
trunk/echobase-tools/src/main/resources/csv/new/VesselType.csv
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransectLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransitLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderTest.java
trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv
trunk/echobase-tools/src/test/resources/csv/new/input-VesselType.csv
Modified:
trunk/echobase-tools/pom.xml
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/FileType.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.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/DataMetadataLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.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/EchotypeLoader.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/MissionLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java
trunk/echobase-tools/src/main/resources/csv/baracouda/Echotype.csv
trunk/echobase-tools/src/main/resources/csv/baracouda/Vessel.csv
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TSParametersLoaderTest.java
Modified: trunk/echobase-tools/pom.xml
===================================================================
--- trunk/echobase-tools/pom.xml 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/pom.xml 2011-12-08 05:55:17 UTC (rev 158)
@@ -129,4 +129,42 @@
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <excludes>**/*LoaderTest.java</excludes>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>run-loaders</id>
+ <activation>
+ <property>
+ <name>runLoaders</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <includes>
+ <include>**/*LoaderTest.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/EchoBaseDbCreator.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -23,12 +23,35 @@
*/
package fr.ifremer.echobase.tools;
+import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.healthmarketscience.jackcess.Database;
import fr.ifremer.echobase.services.EchoBaseService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
-import fr.ifremer.echobase.tools.loaders.*;
+import fr.ifremer.echobase.tools.loaders.AcousticInstrumentLoader;
+import fr.ifremer.echobase.tools.loaders.AreaOfOperationLoader;
+import fr.ifremer.echobase.tools.loaders.CellMethodLoader;
+import fr.ifremer.echobase.tools.loaders.CellTypeLoader;
+import fr.ifremer.echobase.tools.loaders.DataMetadataLoader;
+import fr.ifremer.echobase.tools.loaders.DataQualityLoader;
+import fr.ifremer.echobase.tools.loaders.DataTypeLoader;
+import fr.ifremer.echobase.tools.loaders.DepthStratumLoader;
+import fr.ifremer.echobase.tools.loaders.EchotypeCategoryLoader;
+import fr.ifremer.echobase.tools.loaders.EchotypeLoader;
+import fr.ifremer.echobase.tools.loaders.EntityLoader;
+import fr.ifremer.echobase.tools.loaders.LocalisationLoader;
+import fr.ifremer.echobase.tools.loaders.MissionLoader;
+import fr.ifremer.echobase.tools.loaders.ReferenceDatumLoader;
+import fr.ifremer.echobase.tools.loaders.ReferenceDatumTypeLoader;
+import fr.ifremer.echobase.tools.loaders.SpeciesLoader;
+import fr.ifremer.echobase.tools.loaders.TSParametersLoader;
+import fr.ifremer.echobase.tools.loaders.TransectLoader;
+import fr.ifremer.echobase.tools.loaders.TransitLoader;
+import fr.ifremer.echobase.tools.loaders.VesselLoader;
+import fr.ifremer.echobase.tools.loaders.VesselTypeLoader;
+import fr.ifremer.echobase.tools.loaders.VoyageLoader;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaEntity;
import java.io.File;
import java.io.IOException;
@@ -84,31 +107,19 @@
protected EchoBaseServiceContext serviceContext;
- protected List<EntityLoader<?>> referenceLoaders;
+ protected List<EntityLoader<?>> entityLoaders;
public void createEntities(File msAccessFile,
File outputDir) throws IOException, TopiaException {
- List<EntityLoader<?>> loaders = getReferenceLoaders();
-
Database db = Database.open(msAccessFile);
- for (EntityLoader<?> loader : loaders) {
+ for (EntityLoader<?> loader : getEntityLoaders()) {
-// EchoBaseEntityEnum[] dependencies = loader.getDependencies();
-//
-// for (EchoBaseEntityEnum dependency : dependencies) {
-//
-// // import from createEchoBaseEntities for this dependency
-// EntityLoader<?> depLoader = getLoader(loaders, dependency);
-//
-// depLoader.loadEchobaseFile(outputDir);
-// }
if (loader.canGenerateNew()) {
File inFile = new File(outputDir, "input-" + loader.getEntityType().name() + ".csv");
-// String path = loader.getPath(inFile, FileType.NEW);
loader.copyStreamToFile(inFile, FileType.NEW);
loader.generateNewEntities(inFile, outputDir, false);
@@ -123,54 +134,58 @@
public void createEchoBaseEntities(File outputDir) throws IOException, TopiaException {
- List<EntityLoader<?>> loaders = getReferenceLoaders();
+ for (EntityLoader<?> loader : getEntityLoaders()) {
- for (EntityLoader<?> loader : loaders) {
-
loader.generateEchobaseFile(outputDir, false);
}
}
-// protected EntityLoader<?> getLoader(List<EntityLoader<?>> loaders,
-// EchoBaseEntityEnum entityType) {
-// for (EntityLoader<?> loader : loaders) {
-// if (entityType.equals(loader.getEntityType())) {
-// return loader;
-// }
-// }
-// Preconditions.checkState(true,
-// "Could not find loader for type : " + entityType);
-// return null;
-// }
-
@Override
public void setServiceContext(EchoBaseServiceContext serviceContext) {
this.serviceContext = serviceContext;
}
- protected List<EntityLoader<?>> getReferenceLoaders() {
- if (referenceLoaders == null) {
- referenceLoaders = Lists.newArrayList();
- referenceLoaders.add(newService(SpeciesLoader.class));
- referenceLoaders.add(newService(MissionLoader.class));
- referenceLoaders.add(newService(AreaOfOperationLoader.class));
- referenceLoaders.add(newService(AcousticInstrumentLoader.class));
- referenceLoaders.add(newService(DepthStratumLoader.class));
- referenceLoaders.add(newService(DataQualityLoader.class));
- referenceLoaders.add(newService(ReferenceDatumTypeLoader.class));
- referenceLoaders.add(newService(ReferenceDatumLoader.class));
- referenceLoaders.add(newService(DataTypeLoader.class));
- referenceLoaders.add(newService(CellTypeLoader.class));
- referenceLoaders.add(newService(CellMethodLoader.class));
- referenceLoaders.add(newService(DataMetadataLoader.class));
- referenceLoaders.add(newService(TSParametersLoader.class));
- referenceLoaders.add(newService(EchotypeCategoryLoader.class));
- referenceLoaders.add(newService(EchotypeLoader.class));
- referenceLoaders.add(newService(VesselLoader.class));
+ public List<EntityLoader<?>> getEntityLoaders() {
+ if (entityLoaders == null) {
+ entityLoaders = Lists.newArrayList();
+ entityLoaders.add(newService(SpeciesLoader.class));
+ entityLoaders.add(newService(MissionLoader.class));
+ entityLoaders.add(newService(AreaOfOperationLoader.class));
+ entityLoaders.add(newService(AcousticInstrumentLoader.class));
+ entityLoaders.add(newService(DepthStratumLoader.class));
+ entityLoaders.add(newService(DataQualityLoader.class));
+ entityLoaders.add(newService(ReferenceDatumTypeLoader.class));
+ entityLoaders.add(newService(ReferenceDatumLoader.class));
+ entityLoaders.add(newService(DataTypeLoader.class));
+ entityLoaders.add(newService(CellTypeLoader.class));
+ entityLoaders.add(newService(CellMethodLoader.class));
+ entityLoaders.add(newService(DataMetadataLoader.class));
+ entityLoaders.add(newService(TSParametersLoader.class));
+ entityLoaders.add(newService(EchotypeCategoryLoader.class));
+ entityLoaders.add(newService(EchotypeLoader.class));
+ entityLoaders.add(newService(VesselTypeLoader.class));
+ entityLoaders.add(newService(VesselLoader.class));
+ entityLoaders.add(newService(VoyageLoader.class));
+ entityLoaders.add(newService(TransitLoader.class));
+ entityLoaders.add(newService(TransectLoader.class));
+ entityLoaders.add(newService(LocalisationLoader.class));
}
- return referenceLoaders;
+ return entityLoaders;
}
+ public <E extends TopiaEntity> EntityLoader<E> getEntityLoader(Class<E> entityClass) {
+ EntityLoader<E> result = null;
+ for (EntityLoader<?> entityLoader : getEntityLoaders()) {
+ if (entityClass.equals(entityLoader.getEntityType().getContract())) {
+ result = (EntityLoader<E>) entityLoader;
+ break;
+ }
+ }
+ Preconditions.checkNotNull(result, "Could not find EntityLoader for " +
+ entityClass.getName());
+ return result;
+ }
+
protected <E extends EchoBaseService> E newService(Class<E> clazz) {
return serviceContext.newService(clazz);
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/FileType.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/FileType.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/FileType.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -38,5 +38,8 @@
NEW,
/** entities loaded from baracouda db (should be in directory baracouda). */
- BARACOUDA
+ BARACOUDA,
+
+ /** entities association */
+ ASSOCIATION
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AcousticInstrumentLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Lists;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.AcousticInstrument;
-import fr.ifremer.echobase.entities.references.AcousticInstrumentDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.List;
@@ -58,9 +56,7 @@
@Override
protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
- TopiaContext tx = serviceContext.getTransaction();
- AcousticInstrumentDAO dao =
- EchoBaseDAOHelper.getAcousticInstrumentDAO(tx);
+ TopiaDAO<AcousticInstrument> dao = getDAO();
List<AcousticInstrument> entities = Lists.newArrayList();
Table table = db.getTable("EI_SONDEUR");
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 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/AreaOfOperationLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.AreaOfOperation;
-import fr.ifremer.echobase.entities.references.AreaOfOperationDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.Map;
@@ -68,16 +66,14 @@
log.info("Found " + codeZones.size() + " areaOfOperation(s).");
}
- TopiaContext tx = serviceContext.getTransaction();
- AreaOfOperationDAO dao = EchoBaseDAOHelper.getAreaOfOperationDAO(tx);
+ TopiaDAO<AreaOfOperation> dao = getDAO();
for (String codeZone : codeZones) {
AreaOfOperation areaOfOperation =
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/DataMetadataLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -28,15 +28,18 @@
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.meta.TableMeta;
-import fr.ifremer.echobase.entities.references.*;
+import fr.ifremer.echobase.entities.references.CellMethod;
+import fr.ifremer.echobase.entities.references.DataMetadata;
+import fr.ifremer.echobase.entities.references.DataType;
+import fr.ifremer.echobase.entities.references.ReferenceDatum;
import fr.ifremer.echobase.services.models.EntityCsvModel;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.List;
@@ -55,11 +58,7 @@
LogFactory.getLog(DataMetadataLoader.class);
public DataMetadataLoader() {
- super(DataMetadata.class,
- new EchoBaseEntityEnum[]{EchoBaseEntityEnum.DataType,
- EchoBaseEntityEnum.CellMethod,
- EchoBaseEntityEnum.ReferenceDatum},
- FileType.BARACOUDA, FileType.NEW);
+ super(DataMetadata.class, FileType.BARACOUDA, FileType.NEW);
}
@Override
@@ -74,8 +73,7 @@
DataType dataType =
EchoBaseDAOHelper.getDataTypeDAO(tx).findByName("Acoustic density");
- DataMetadataDAO dao =
- EchoBaseDAOHelper.getDataMetadataDAO(tx);
+ TopiaDAO<DataMetadata> dao = getDAO();
List<DataMetadata> entities = Lists.newArrayList();
Table table = db.getTable("EI_CONFIGURATION");
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/DepthStratumLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Lists;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.DepthStratum;
-import fr.ifremer.echobase.entities.references.DepthStratumDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.List;
@@ -58,9 +56,7 @@
@Override
protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
- TopiaContext tx = serviceContext.getTransaction();
- DepthStratumDAO dao =
- EchoBaseDAOHelper.getDepthStratumDAO(tx);
+ TopiaDAO<DepthStratum> dao = getDAO();
List<DepthStratum> entities = Lists.newArrayList();
Table table = db.getTable("TYPE_IMAGE");
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 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeCategoryLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.EchotypeCategory;
-import fr.ifremer.echobase.entities.references.EchotypeCategoryDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.Map;
@@ -70,14 +68,13 @@
log.info("Found " + codes.size() + " EchotypeCategory(s).");
}
- TopiaContext tx = serviceContext.getTransaction();
- EchotypeCategoryDAO dao = EchoBaseDAOHelper.getEchotypeCategoryDAO(tx);
+ TopiaDAO<EchotypeCategory> dao = getDAO();
for (String code : codes) {
EchotypeCategory areaOfOperation =
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/EchotypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EchotypeLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -24,20 +24,28 @@
package fr.ifremer.echobase.tools.loaders;
import com.google.common.base.Function;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.references.*;
+import fr.ifremer.echobase.entities.references.DepthStratum;
+import fr.ifremer.echobase.entities.references.Echotype;
+import fr.ifremer.echobase.entities.references.EchotypeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.entities.references.SpeciesDAO;
import fr.ifremer.echobase.tools.FileType;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.Collections;
@@ -58,11 +66,7 @@
LogFactory.getLog(EchotypeLoader.class);
public EchotypeLoader() {
- super(Echotype.class,
- new EchoBaseEntityEnum[]{EchoBaseEntityEnum.EchotypeCategory,
- EchoBaseEntityEnum.DepthStratum,
- EchoBaseEntityEnum.Species},
- FileType.BARACOUDA);
+ super(Echotype.class, FileType.BARACOUDA);
}
@Override
@@ -90,83 +94,106 @@
SpeciesDAO speciesDAO = EchoBaseDAOHelper.getSpeciesDAO(tx);
- EchotypeDAO dao = EchoBaseDAOHelper.getEchotypeDAO(tx);
+ TopiaDAO<Echotype> dao = getDAO();
- Map<Integer, Echotype> entitiesById = Maps.newTreeMap();
- Set<String> names = Sets.newHashSet();
+ List<Echotype> echotypes = Lists.newArrayList();
if (log.isInfoEnabled()) {
log.info("Scan table EIT_VALEUR_ECHOS");
}
- // first obtains all echotype with their name and natural key
+ // obtain all (id,name) from table EIT_VALEUR_ECHOS
+ Set<Pair<Integer, String>> pairs = Sets.newHashSet();
+
Table table = db.getTable("EIT_VALEUR_ECHOS");
for (Map<String, Object> row : table) {
Integer id = (Integer) row.get("ID_DESCRIPTION_DEVIATION");
String name = (String) row.get("LIBELLE_DEVIATION");
- names.add(name);
- if (!entitiesById.containsKey(id)) {
-
- // a new echotype found
- Echotype entity = dao.create(
- Echotype.PROPERTY_NAME, name
- );
- entitiesById.put(id, entity);
- }
+ Pair<Integer, String> pair = Pair.of(id, name);
+ pairs.add(pair);
}
if (log.isInfoEnabled()) {
- List<String> nameList = Lists.newArrayList(names);
- Collections.sort(nameList);
-
- log.info("Found " + entitiesById.size() + " Echotype(s) with distinct ids " + entitiesById.keySet());
- log.info("Found " + names.size() + " Echotype(s) names : " + names);
+ log.info("Found " + pairs.size() + " pairs of ids");
}
- // obtain meaning, EchotypeCategory and DepthStratum from Table EIT_DESCRIPT_ECHOS
- Set<Integer> missingIds = Sets.newHashSet();
+ // obtain Species fro table ESPECE_ECHOS
+ ImmutableListMultimap<Integer, Map<String, Object>> especeEchoById = Multimaps.index(
+ db.getTable("ESPECE_ECHOS"), new Function<Map<String, Object>, Integer>() {
+
+ @Override
+ public Integer apply(Map<String, Object> input) {
+ Integer id = (Integer) input.get("CODE_DESCRIPTION_DEVIATION");
+ return id;
+ }
+ });
+
+ Map<Integer, Map<String, Object>> descriptEchoById = Maps.uniqueIndex(
+ db.getTable("EIT_DESCRIPT_ECHOS"), new Function<Map<String, Object>, Integer>() {
+
+ @Override
+ public Integer apply(Map<String, Object> input) {
+ Integer id = (Integer) input.get("ID_DESCRIPTION_DEVIATION");
+ return id;
+ }
+ });
+
Set<String> missingDepthStratum = Sets.newHashSet();
Set<String> missingCategories = Sets.newHashSet();
Set<String> missingSpecies = Sets.newHashSet();
- if (log.isInfoEnabled()) {
- log.info("Scan table EIT_DESCRIPT_ECHOS");
- }
- table = db.getTable("EIT_DESCRIPT_ECHOS");
- for (Map<String, Object> row : table) {
- Integer id = (Integer) row.get("ID_DESCRIPTION_DEVIATION");
- Echotype echotype = entitiesById.get(id);
- if (echotype == null) {
- missingIds.add(id);
- continue;
- }
+ // for each id, find out available species and meaning from table ESPECE_ECHOS
- String meaning = (String) row.get("LIBELLE_DESCRIPTION_DEVIATION");
- echotype.setMeaning(meaning);
- String categoryId = (String) row.get("TYPE_DEVIATION");
+ for (Pair<Integer, String> pair : pairs) {
+ Integer id = pair.getKey();
+ String name = pair.getValue();
+
+ // get row for table EIT_DESCRIPT_ECHOS
+ Map<String, Object> descriptionRow = descriptEchoById.get(id);
+
+ // get echotype meaning
+ String meaning = (String) descriptionRow.get("LIBELLE_DESCRIPTION_DEVIATION");
+
+ // get echotype category
+ String categoryId = (String) descriptionRow.get("TYPE_DEVIATION");
EchotypeCategory echotypeCategory = categoriesByName.get(categoryId.toLowerCase());
if (echotypeCategory == null) {
missingCategories.add(categoryId);
}
- echotype.setEchotypeCategory(echotypeCategory);
- String depthStratumId = (String) row.get("IMAGES");
+
+ // get echotype depthstratum
+ String depthStratumId = (String) descriptionRow.get("IMAGES");
DepthStratum depthStratum = depthStratumsById.get(depthStratumId.toLowerCase());
if (depthStratum == null) {
missingDepthStratum.add(depthStratumId);
}
- echotype.setDepthStratum(depthStratum);
- }
- if (!missingIds.isEmpty()) {
+ // get all rows from ESPECE_ECHOS for this id
+ ImmutableList<Map<String, Object>> rows = especeEchoById.get(id);
- // there is some missing id in this table
- List<Integer> missingIdsList = Lists.newArrayList(missingIds);
- Collections.sort(missingIdsList);
+ for (Map<String, Object> row : rows) {
- if (log.isWarnEnabled()) {
- log.warn("There is " + missingIdsList.size() + " missing echotype ids in table EIT_DESCRIPT_ECHOS : " + missingIdsList);
+ String speciesId = (String) row.get("GENRE_ESP");
+ Species species = speciesDAO.findByBaracoudaCode(speciesId);
+
+ if (species == null) {
+ missingSpecies.add(speciesId);
+ }
+
+ Echotype echotype = dao.create(
+ Echotype.PROPERTY_ID, id,
+ Echotype.PROPERTY_NAME, name,
+ Echotype.PROPERTY_SPECIES, species
+ );
+ echotypes.add(echotype);
+
+ echotype.setMeaning(meaning);
+ echotype.setSpecies(species);
+ echotype.setEchotypeCategory(echotypeCategory);
+ echotype.setDepthStratum(depthStratum);
}
}
+
if (!missingDepthStratum.isEmpty()) {
// there is some missing id in this table
@@ -187,42 +214,7 @@
log.warn("There is " + missingCategories.size() + " missing echotypecategories ids in table EIT_DESCRIPT_ECHOS : " + missingCategoriesList);
}
}
- if (log.isInfoEnabled()) {
- log.info("Scan table ESPECE_ECHOS");
- }
- missingIds.clear();
-
- // obtain Species fro table ESPECE_ECHOS
- table = db.getTable("ESPECE_ECHOS");
- for (Map<String, Object> row : table) {
- Integer id = (Integer) row.get("CODE_DESCRIPTION_DEVIATION");
- Echotype echotype = entitiesById.get(id);
- if (echotype == null) {
- missingIds.add(id);
- continue;
- }
-
- String meaning = (String) row.get("LIBELLE_DESCRIPTION_DEVIATION");
- echotype.setMeaning(meaning);
- String speciesId = (String) row.get("GENRE_ESP");
- Species species = speciesDAO.findByBaracoudaCode(speciesId);
- if (species == null) {
- missingSpecies.add(speciesId);
- }
- echotype.setSpecies(species);
- }
-
- if (!missingIds.isEmpty()) {
-
- // there is some missing id in this table
- List<Integer> missingIdsList = Lists.newArrayList(missingIds);
- Collections.sort(missingIdsList);
-
- if (log.isWarnEnabled()) {
- log.warn("There is " + missingIdsList.size() + " missing echotype ids in table ESPECE_ECHOS : " + missingIdsList);
- }
- }
if (!missingSpecies.isEmpty()) {
// there is some missing id in this table
@@ -235,8 +227,7 @@
}
if (log.isInfoEnabled()) {
- log.info("Found " + entitiesById.size() + " Echotype(s).");
+ log.info("Found " + echotypes.size() + " Echotype(s).");
}
}
-
}
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 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -23,25 +23,38 @@
*/
package fr.ifremer.echobase.tools.loaders;
+import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.meta.AssociationMeta;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
import fr.ifremer.echobase.entities.meta.TableMeta;
-import fr.ifremer.echobase.services.*;
+import fr.ifremer.echobase.services.CsvImportResult;
+import fr.ifremer.echobase.services.DbEditorService;
+import fr.ifremer.echobase.services.DbImportExportService;
+import fr.ifremer.echobase.services.EchoBaseServiceContext;
+import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.models.EntityCsvModel;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.FileUtil;
import org.nuiton.util.csv.Import;
-import org.nuiton.util.csv.ImportExportModel;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Writer;
import java.util.Set;
/**
@@ -50,16 +63,14 @@
* @author tchemit <chemit(a)codelutin.com>
* @since 0.3
*/
-public abstract class EntityLoader<E extends TopiaEntity> implements EchoBaseService {
+public abstract class EntityLoader<E extends TopiaEntity> extends EchoBaseServiceSupport {
/** Logger. */
private static final Log log = LogFactory.getLog(EntityLoader.class);
- private static final EchoBaseEntityEnum[] DEPENDENCIES =
+ private static final EchoBaseEntityEnum[] EMPTY_DEPENDENCIES_ARRAY =
new EchoBaseEntityEnum[0];
- protected EchoBaseServiceContext serviceContext;
-
private DbEditorService dbEditorService;
private final Class<E> entityClass;
@@ -68,22 +79,68 @@
private final Set<FileType> fileTypes;
- private final EchoBaseEntityEnum[] dependencies;
+ private TableMeta meta;
+ private AssociationMeta parentAssociationMeta;
+
+ private final EchoBaseEntityEnum parent;
+
+ private final String parentAssociationName;
+
+ private final EchoBaseEntityEnum[] extraDependencies;
+
protected EntityLoader(Class<E> entityClass,
FileType... fileTypes) {
- this(entityClass, DEPENDENCIES, fileTypes);
+ this(entityClass, null, null, EMPTY_DEPENDENCIES_ARRAY, fileTypes);
}
protected EntityLoader(Class<E> entityClass,
- EchoBaseEntityEnum[] dependencies,
+ EchoBaseEntityEnum[] extraDependencies,
FileType... fileTypes) {
+ this(entityClass, null, null, extraDependencies, fileTypes);
+ }
+
+ protected EntityLoader(Class<E> entityClass,
+ EchoBaseEntityEnum parent,
+ String parentAssociationName,
+ FileType... fileTypes) {
+ this(entityClass, parent, parentAssociationName, EMPTY_DEPENDENCIES_ARRAY, fileTypes);
+ }
+
+ protected EntityLoader(Class<E> entityClass,
+ EchoBaseEntityEnum parent,
+ String parentAssociationName,
+ EchoBaseEntityEnum[] extraDependencies,
+ FileType... fileTypes) {
this.entityClass = entityClass;
entityType = EchoBaseEntityEnum.valueOf(entityClass);
+
this.fileTypes = Sets.newHashSet(fileTypes);
- this.dependencies = dependencies;
+ this.parent = parent;
+ this.parentAssociationName = parentAssociationName;
+ this.extraDependencies = extraDependencies;
}
+ @Override
+ public void setServiceContext(EchoBaseServiceContext serviceContext) {
+ super.setServiceContext(serviceContext);
+
+ // init internal states
+
+ meta = getDbMeta().getTable(entityType);
+
+ if (parent != null) {
+
+ TableMeta parentMeta = getDbMeta().getTable(parent);
+
+ // find the associationMeta
+ parentAssociationMeta =
+ parentMeta.getAssociations(parentAssociationName);
+ } else {
+ parentAssociationMeta = null;
+ }
+ }
+
protected EntityCsvModel<E> createCsvImportModel(TableMeta meta) {
// by default no model
return null;
@@ -93,11 +150,6 @@
// by default do nothing
}
- @Override
- public final void setServiceContext(EchoBaseServiceContext serviceContext) {
- this.serviceContext = serviceContext;
- }
-
public boolean canGenerateNew() {
return fileTypes.contains(FileType.NEW);
}
@@ -111,15 +163,27 @@
}
public EchoBaseEntityEnum[] getDependencies() {
- return dependencies;
+ return meta.getDependencies();
}
+ public EchoBaseEntityEnum[] getExtraDependencies() {
+ return extraDependencies;
+ }
+
+ public TableMeta getMeta() {
+ return meta;
+ }
+
+ public AssociationMeta getParentAssociationMeta() {
+ return parentAssociationMeta;
+ }
+
public final void generateNewEntities(File csvfile,
File outputDir,
boolean cleanTransaction) throws IOException, TopiaException {
Preconditions.checkState(canGenerateNew(),
- "Not allow to generate new entities");
+ "Not allow to generate new entities");
try {
if (log.isInfoEnabled()) {
@@ -140,10 +204,10 @@
try {
for (E entity : importer) {
service.saveEntity(meta,
- "",
- entity,
- null,
- false
+ "",
+ entity,
+ null,
+ false
);
}
} finally {
@@ -159,9 +223,9 @@
bf.close();
}
- File outputFile = getTableFile(outputDir, entityType, FileType.NEW);
+ File out = getTableFile(outputDir, meta, FileType.NEW);
- exportEntities(outputFile);
+ getDbEditorService().exportDatas(meta, out);
} finally {
if (cleanTransaction) {
serviceContext.getTransaction().rollbackTransaction();
@@ -175,15 +239,16 @@
boolean cleanTransaction) throws IOException, TopiaException {
Preconditions.checkState(canGenerateBaracouda(),
- "Not allow to generate baracouda entities");
+ "Not allow to generate baracouda entities");
try {
importBaracoudaEntities(db);
- File outputFile =
- getTableFile(outputDir, entityType, FileType.BARACOUDA);
+ File out = getTableFile(outputDir, meta, FileType.BARACOUDA);
- exportEntities(outputFile);
+ getDbEditorService().exportDatas(meta, out);
+
+ exportAssociations(outputDir, FileType.ASSOCIATION);
} finally {
if (cleanTransaction) {
serviceContext.getTransaction().rollbackTransaction();
@@ -191,12 +256,22 @@
}
}
- public final void generateEchobaseFile(File outputFile,
+ protected void exportAssociations(File outputDir, FileType targetType) throws IOException {
+ AssociationMeta associationMeta = getParentAssociationMeta();
+
+ if (associationMeta != null) {
+
+ File out = getTableFile(outputDir, associationMeta, targetType);
+ getDbEditorService().exportDatas(associationMeta, out);
+ }
+ }
+
+ public final void generateEchobaseFile(File outputDir,
boolean cleanTransaction) throws IOException, TopiaException {
try {
- File out = getTableFile(outputFile, entityType, FileType.ECHOBASE);
+ File out = getTableFile(outputDir, meta, FileType.ECHOBASE);
if (log.isInfoEnabled()) {
log.info("Generate echobase csv file " + out.getName());
@@ -205,18 +280,21 @@
if (canGenerateNew()) {
// copy and load new stuff
- copyAndLoadEntities(outputFile, entityType, false, FileType.NEW);
+ copyAndLoadEntities(outputDir, meta, false, FileType.NEW);
}
if (canGenerateBaracouda()) {
// copy and load of baracouda stuff
- copyAndLoadEntities(outputFile, entityType, false, FileType.BARACOUDA);
+ copyAndLoadEntities(outputDir, meta, false, FileType.BARACOUDA);
}
// export to the ouput file
- exportEntities(out);
+ getDbEditorService().exportDatas(meta, out);
+ // export associations
+ exportAssociations(outputDir, FileType.ECHOBASE);
+
} finally {
if (cleanTransaction) {
serviceContext.getTransaction().rollbackTransaction();
@@ -225,16 +303,12 @@
}
public File getTableFile(File directory,
- EchoBaseEntityEnum entityType,
+ MetaFilenameAware meta,
FileType fileType) throws IOException {
- TableMeta meta = getDbEditorService().getTableMeta(entityType);
-
- DbImportExportService.FileEntry entry =
- DbImportExportService.FileEntry.newEntry(meta);
File parentDir = new File(directory, fileType.name().toLowerCase());
FileUtil.createDirectoryIfNecessary(parentDir);
- return new File(parentDir, entry.getFilename());
+ return new File(parentDir, meta.getFilename());
}
public void copyStreamToFile(File file, FileType fileType) throws IOException {
@@ -243,10 +317,10 @@
InputStream stream = getClass().getResourceAsStream(path);
try {
Preconditions.checkNotNull(stream,
- "could not find class-path resource " + path);
+ "could not find class-path resource " + path);
Writer outStream = new FileWriter(file);
try {
- IOUtils.copy(stream, outStream, "utf-8");
+ IOUtils.copy(stream, outStream, Charsets.UTF_8.name());
} finally {
outStream.close();
}
@@ -257,6 +331,10 @@
}
}
+ protected TopiaDAO<E> getDAO() throws TopiaException {
+ return getDAO(entityClass);
+ }
+
protected final DbEditorService getDbEditorService() {
if (dbEditorService == null) {
dbEditorService = serviceContext.newService(DbEditorService.class);
@@ -273,51 +351,25 @@
}
public void copyAndLoadEntities(File directory,
- EchoBaseEntityEnum entityType,
+ MetaFilenameAware meta,
boolean commit,
FileType... fileTypes) throws IOException, TopiaException {
- DbEditorService service = getDbEditorService();
+ DbImportExportService service = newService(DbImportExportService.class);
for (FileType fileType : fileTypes) {
- File out = getTableFile(directory, entityType, fileType);
+ File out = getTableFile(directory, meta, fileType);
copyStreamToFile(out, fileType);
- TableMeta meta = service.getTableMeta(entityType);
-
- ImportExportModel<TopiaEntity> csvModel = service.buildForImport(meta);
-
- CsvImportResult result = CsvImportResult.newResult(entityType,
- out.getAbsolutePath(),
- true);
+ CsvImportResult result = CsvImportResult.newResult(meta.getSource(),
+ out.getAbsolutePath(),
+ true);
BufferedReader bf = new BufferedReader(new FileReader(out));
try {
- Import<TopiaEntity> importer = Import.newImport(csvModel, bf);
+ service.importFile(meta, bf, result);
- try {
- for (TopiaEntity entity : importer) {
- boolean create = service.saveEntity(meta,
- "",
- entity,
- null,
- true
- );
-
- if (create) {
-
- result.incrementsNumberCreated();
- } else {
-
- result.incrementsNumberUpdated();
- }
- }
- } finally {
-
- importer.close();
- }
-
} catch (EchoBaseTechnicalException eee) {
throw eee;
} catch (Exception eee) {
@@ -327,19 +379,8 @@
}
}
if (commit) {
- serviceContext.getTransaction().commitTransaction();
+ commitTransaction("Could not copyAndLoadEntities");
}
}
- private void exportEntities(File outputFile) throws IOException {
-
- if (log.isInfoEnabled()) {
- log.info("Export " + entityType + " to " + outputFile);
- }
-
- String content = getDbEditorService().exportDatas(entityType);
-
- FileUtil.writeString(outputFile, content, "utf-8");
- }
-
}
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,62 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.Localisation;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * Loader of {@link Localisation}.
+ * <p/>
+ * TODO Import it.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class LocalisationLoader extends EntityLoader<Localisation> {
+
+ public LocalisationLoader() {
+ super(Localisation.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<Localisation> createCsvImportModel(TableMeta meta) {
+
+ EntityCsvModel<Localisation> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+ model.newMandatoryColumn(Localisation.PROPERTY_MAX_LATITUDE);
+ model.newMandatoryColumn(Localisation.PROPERTY_MIN_LATITUDE);
+ model.newMandatoryColumn(Localisation.PROPERTY_MAX_LONGITUDE);
+ model.newMandatoryColumn(Localisation.PROPERTY_MIN_LONGITUDE);
+ model.newMandatoryColumn(Localisation.PROPERTY_BATHYMETRE);
+ model.newMandatoryColumn(Localisation.PROPERTY_SEAFLOOR_SUBSTRATE);
+ return model;
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/MissionLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.Mission;
-import fr.ifremer.echobase.entities.references.MissionDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.Map;
@@ -68,8 +66,7 @@
log.info("Found " + typeCampagnes.size() + " mission(s).");
}
- TopiaContext tx = serviceContext.getTransaction();
- MissionDAO dao = EchoBaseDAOHelper.getMissionDAO(tx);
+ TopiaDAO<Mission> dao = getDAO();
for (String typeCampagne : typeCampagnes) {
Mission mission =
dao.create(Mission.PROPERTY_NAME, typeCampagne);
@@ -79,5 +76,4 @@
}
}
-
}
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -27,18 +27,15 @@
import com.google.common.collect.Lists;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.entities.references.ReferenceDatum;
-import fr.ifremer.echobase.entities.references.ReferenceDatumDAO;
import fr.ifremer.echobase.entities.references.ReferenceDatumType;
import fr.ifremer.echobase.services.models.EntityCsvModel;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.List;
@@ -57,7 +54,7 @@
LogFactory.getLog(ReferenceDatumLoader.class);
public ReferenceDatumLoader() {
- super(ReferenceDatum.class, new EchoBaseEntityEnum[]{EchoBaseEntityEnum.ReferenceDatumType}, FileType.BARACOUDA, FileType.NEW);
+ super(ReferenceDatum.class, FileType.BARACOUDA, FileType.NEW);
}
@Override
@@ -65,9 +62,7 @@
// require referenceDatumType
- TopiaContext tx = serviceContext.getTransaction();
- ReferenceDatumDAO dao =
- EchoBaseDAOHelper.getReferenceDatumDAO(tx);
+ TopiaDAO<ReferenceDatum> dao = getDAO();
List<ReferenceDatum> entities = Lists.newArrayList();
Table table = db.getTable("TYPE_AFFECTATION");
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TSParametersLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -27,13 +27,17 @@
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.references.*;
+import fr.ifremer.echobase.entities.references.AcousticInstrument;
+import fr.ifremer.echobase.entities.references.AcousticInstrumentDAO;
+import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.entities.references.SpeciesDAO;
+import fr.ifremer.echobase.entities.references.TSParameters;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.List;
@@ -52,10 +56,7 @@
LogFactory.getLog(TSParametersLoader.class);
public TSParametersLoader() {
- super(TSParameters.class,
- new EchoBaseEntityEnum[]{EchoBaseEntityEnum.AcousticInstrument,
- EchoBaseEntityEnum.Species},
- FileType.BARACOUDA);
+ super(TSParameters.class, FileType.BARACOUDA);
}
/*
@@ -72,8 +73,7 @@
AcousticInstrumentDAO acousticInstrumentDAO =
EchoBaseDAOHelper.getAcousticInstrumentDAO(tx);
- TSParametersDAO dao =
- EchoBaseDAOHelper.getTSParametersDAO(tx);
+ TopiaDAO<TSParameters> dao = getDAO();
List<TSParameters> entities = Lists.newArrayList();
Table table = db.getTable("COEFFICIENT_ACOUSTIQUE");
@@ -108,5 +108,4 @@
}
}
-
}
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransectLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransectLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransectLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,109 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.healthmarketscience.jackcess.Database;
+import com.healthmarketscience.jackcess.Table;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+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.tools.FileType;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Loader of {@link Transect}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class TransectLoader extends EntityLoader<Transect> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AcousticInstrumentLoader.class);
+
+ public TransectLoader() {
+ super(Transect.class, EchoBaseEntityEnum.Transit,
+ Transit.PROPERTY_TRANSECT, FileType.BARACOUDA);
+ }
+
+ @Override
+ protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
+
+ List<Voyage> voyages = getEntities(Voyage.class);
+ Map<String, Voyage> voyagesByName = Maps.uniqueIndex(voyages, new Function<Voyage, String>() {
+ @Override
+ public String apply(Voyage input) {
+ return input.getName().toLowerCase();
+ }
+ });
+
+ List<Vessel> vessels = getEntities(Vessel.class);
+ Map<String, Vessel> vesselsByName = Maps.uniqueIndex(vessels, new Function<Vessel, String>() {
+ @Override
+ public String apply(Vessel input) {
+ return input.getName().toLowerCase();
+ }
+ });
+
+ TopiaDAO<Transect> dao = getDAO();
+
+ List<Transect> transects = Lists.newArrayList();
+ Table table = db.getTable("CAMPAGNES");
+ for (Map<String, Object> row : table) {
+
+ String vesselName = (String) row.get("NAVIRE");
+ Vessel vessel = vesselsByName.get(vesselName.toLowerCase());
+ String voyageName = (String) row.get("CAMPAGNE");
+ Voyage voyage = voyagesByName.get(voyageName.toLowerCase());
+ Transit transit = voyage.getTransit().iterator().next();
+ Transect transect = dao.create(
+ Transect.PROPERTY_VESSEL, vessel,
+ Transect.PROPERTY_TITLE, "Cruise",
+ Transect.PROPERTY_COMMENT, "from Baracouda",
+ Transect.PROPERTY_BIN_UNITS_PING_AXIS, "n.mi.",
+ Transect.PROPERTY_BIN_SIZE_PING_AXIS, 1,
+ Transect.PROPERTY_BIN_SIZE_RANGE_AXIS, "variable"
+ );
+ transects.add(transect);
+ transit.addTransect(transect);
+ }
+ if (log.isInfoEnabled()) {
+ log.info("Found " + transects.size() + " transect(s).");
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransectLoader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransitLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransitLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransitLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,96 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.healthmarketscience.jackcess.Database;
+import com.healthmarketscience.jackcess.Table;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.tools.FileType;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Loader of {@link Transit}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class TransitLoader extends EntityLoader<Transit> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AcousticInstrumentLoader.class);
+
+ public TransitLoader() {
+ super(Transit.class, EchoBaseEntityEnum.Voyage,
+ Voyage.PROPERTY_TRANSIT, FileType.BARACOUDA);
+ }
+
+ @Override
+ protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
+
+ List<Voyage> voyages = getEntities(Voyage.class);
+ Map<String, Voyage> voyagesByName = Maps.uniqueIndex(voyages, new Function<Voyage, String>() {
+ @Override
+ public String apply(Voyage input) {
+ return input.getName().toLowerCase();
+ }
+ });
+
+ TopiaDAO<Transit> dao = getDAO();
+
+ List<Transit> transits = Lists.newArrayList();
+ Table table = db.getTable("CAMPAGNES");
+ for (Map<String, Object> row : table) {
+
+ String voyageName = (String) row.get("CAMPAGNE");
+ Voyage voyage = voyagesByName.get(voyageName.toLowerCase());
+ Date startTime = voyage.getStartDate();
+ Date endTime = voyage.getEndDate();
+ Transit transit = dao.create(
+ Transit.PROPERTY_DESCRIPTION, "Cruise",
+ Transit.PROPERTY_START_TIME, startTime,
+ Transit.PROPERTY_END_TIME, endTime
+ );
+ transits.add(transit);
+ voyage.addTransit(transit);
+ }
+ if (log.isInfoEnabled()) {
+ log.info("Found " + transits.size() + " transit(s).");
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/TransitLoader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -26,14 +26,12 @@
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Table;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.references.Vessel;
-import fr.ifremer.echobase.entities.references.VesselDAO;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
import java.io.IOException;
import java.util.Map;
@@ -68,11 +66,9 @@
log.info("Found " + names.size() + " vessel(s).");
}
- TopiaContext tx = serviceContext.getTransaction();
- VesselDAO dao = EchoBaseDAOHelper.getVesselDAO(tx);
- for (String typeCampagne : names) {
- Vessel vessel =
- dao.create(Vessel.PROPERTY_NAME, typeCampagne);
+ TopiaDAO<Vessel> dao = getDAO();
+ for (String name : names) {
+ Vessel vessel = dao.create(Vessel.PROPERTY_NAME, name);
if (log.isInfoEnabled()) {
log.info("Created vessel : " + vessel.getName());
}
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,57 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.VesselType;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * Loader of {@link VesselType}.
+ * <p/>
+ * TODO Import it.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class VesselTypeLoader extends EntityLoader<VesselType> {
+
+ public VesselTypeLoader() {
+ super(VesselType.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<VesselType> createCsvImportModel(TableMeta meta) {
+
+ EntityCsvModel<VesselType> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+ model.newMandatoryColumn(VesselType.PROPERTY_NAME);
+ return model;
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,117 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import com.google.common.base.Function;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.healthmarketscience.jackcess.Database;
+import com.healthmarketscience.jackcess.Table;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.AreaOfOperation;
+import fr.ifremer.echobase.entities.references.Mission;
+import fr.ifremer.echobase.tools.FileType;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.persistence.TopiaDAO;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Loader of {@link Voyage}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class VoyageLoader extends EntityLoader<Voyage> {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(AcousticInstrumentLoader.class);
+
+ public VoyageLoader() {
+ super(Voyage.class,
+// new EchoBaseEntityEnum[]{ EchoBaseEntityEnum.Echotype},
+ FileType.BARACOUDA);
+ }
+
+ @Override
+ protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
+
+ List<Mission> missions = getEntities(Mission.class);
+ Map<String, Mission> missionsByName = Maps.uniqueIndex(missions, new Function<Mission, String>() {
+ @Override
+ public String apply(Mission input) {
+ return input.getName().toLowerCase();
+ }
+ });
+
+ List<AreaOfOperation> areaOfOperations = getEntities(AreaOfOperation.class);
+ Map<String, AreaOfOperation> areaOfOperationsByName = Maps.uniqueIndex(areaOfOperations, new Function<AreaOfOperation, String>() {
+ @Override
+ public String apply(AreaOfOperation input) {
+ return input.getName().toLowerCase();
+ }
+ });
+ TopiaDAO<Voyage> dao = getDAO();
+
+ List<Voyage> entities = Lists.newArrayList();
+ Table table = db.getTable("CAMPAGNES");
+ for (Map<String, Object> row : table) {
+ String voyageName = (String) row.get("CAMPAGNE");
+ String missionName = (String) row.get("TYPE_CAMPAGNE");
+ Mission mission = missionsByName.get(missionName.toLowerCase());
+ String areaOfOperationName = (String) row.get("ZONE");
+ AreaOfOperation areaOfOperation = areaOfOperationsByName.get(areaOfOperationName.toLowerCase());
+ Date startDate = (Date) row.get("DATE_DEPART");
+ Date endDate = (Date) row.get("DATE_ARRIVEE");
+ String startPort = (String) row.get("PORT_DEPART");
+ String endPort = (String) row.get("PORT_ARRIVEE");
+ String comment = (String) row.get("COMMENTAIRE");
+
+ Voyage entity = dao.create(
+ Voyage.PROPERTY_NAME, voyageName,
+ Voyage.PROPERTY_MISSION, mission,
+ Voyage.PROPERTY_AREA_OF_OPERATION, areaOfOperation,
+ Voyage.PROPERTY_START_DATE, startDate,
+ Voyage.PROPERTY_END_DATE, endDate,
+ Voyage.PROPERTY_START_PORT, startPort,
+ Voyage.PROPERTY_END_PORT, endPort,
+ Voyage.PROPERTY_DESCRIPTION, comment
+ );
+ entities.add(entity);
+
+ // obtain all echotypes for this voyage
+
+ }
+ if (log.isInfoEnabled()) {
+ log.info("Found " + entities.size() + " voyage(s).");
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/resources/csv/association/Transit_transect.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/association/Transit_transect.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/association/Transit_transect.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,43 @@
+topiaId;transect
+fr.ifremer.echobase.entities.data.Transit#1323320544653#0.42197526215246806;fr.ifremer.echobase.entities.data.Transect#1323320718854#0.16496474136164707;
+fr.ifremer.echobase.entities.data.Transit#1323320544657#0.793955419938976;fr.ifremer.echobase.entities.data.Transect#1323320718871#0.43811591058938393;
+fr.ifremer.echobase.entities.data.Transit#1323320544658#0.49318285166930464;fr.ifremer.echobase.entities.data.Transect#1323320718873#0.22590776454798145;
+fr.ifremer.echobase.entities.data.Transit#1323320544659#0.7109241959164326;fr.ifremer.echobase.entities.data.Transect#1323320718879#0.22762589557527313;
+fr.ifremer.echobase.entities.data.Transit#1323320544660#0.16422798833446173;fr.ifremer.echobase.entities.data.Transect#1323320718880#0.8675763932708581;
+fr.ifremer.echobase.entities.data.Transit#1323320544663#0.8906451141766373;fr.ifremer.echobase.entities.data.Transect#1323320718882#0.8313008850992559;
+fr.ifremer.echobase.entities.data.Transit#1323320544665#0.11831664240407658;fr.ifremer.echobase.entities.data.Transect#1323320718883#0.02090206540995454;
+fr.ifremer.echobase.entities.data.Transit#1323320544666#0.8309964238365404;fr.ifremer.echobase.entities.data.Transect#1323320718889#0.48341511290981376;
+fr.ifremer.echobase.entities.data.Transit#1323320544666#0.4221066981307239;fr.ifremer.echobase.entities.data.Transect#1323320718890#0.9228759996243251;
+fr.ifremer.echobase.entities.data.Transit#1323320544667#0.5486234276187558;fr.ifremer.echobase.entities.data.Transect#1323320718891#0.14412591039674894;
+fr.ifremer.echobase.entities.data.Transit#1323320544668#0.6422242362291657;fr.ifremer.echobase.entities.data.Transect#1323320718892#0.2630535664991509;
+fr.ifremer.echobase.entities.data.Transit#1323320544669#0.4133776331975709;fr.ifremer.echobase.entities.data.Transect#1323320718896#0.5644879956116315;
+fr.ifremer.echobase.entities.data.Transit#1323320544670#0.053298123205487546;fr.ifremer.echobase.entities.data.Transect#1323320718897#0.6866101322356634;
+fr.ifremer.echobase.entities.data.Transit#1323320544671#0.47245185863582717;fr.ifremer.echobase.entities.data.Transect#1323320718898#0.15476162598793997;
+fr.ifremer.echobase.entities.data.Transit#1323320544672#0.22937541587424826;fr.ifremer.echobase.entities.data.Transect#1323320718904#0.41986337020591025;
+fr.ifremer.echobase.entities.data.Transit#1323320544673#0.578376489040041;fr.ifremer.echobase.entities.data.Transect#1323320718908#0.31990422173935795;
+fr.ifremer.echobase.entities.data.Transit#1323320544678#0.7693855379965776;fr.ifremer.echobase.entities.data.Transect#1323320718916#0.7828994640243007;
+fr.ifremer.echobase.entities.data.Transit#1323320544679#0.3505919461457373;fr.ifremer.echobase.entities.data.Transect#1323320718917#0.5204678684295829;
+fr.ifremer.echobase.entities.data.Transit#1323320544679#0.846655793463204;fr.ifremer.echobase.entities.data.Transect#1323320718922#0.2531141442003776;
+fr.ifremer.echobase.entities.data.Transit#1323320544680#0.3277389642475089;fr.ifremer.echobase.entities.data.Transect#1323320718923#0.615133835112941;
+fr.ifremer.echobase.entities.data.Transit#1323320544681#0.8651972319858928;fr.ifremer.echobase.entities.data.Transect#1323320718924#0.934706270228778;
+fr.ifremer.echobase.entities.data.Transit#1323320544682#0.2565267980712128;fr.ifremer.echobase.entities.data.Transect#1323320718929#0.6609608451095067;
+fr.ifremer.echobase.entities.data.Transit#1323320544683#0.44005376597751444;fr.ifremer.echobase.entities.data.Transect#1323320718930#0.17966889271931497;
+fr.ifremer.echobase.entities.data.Transit#1323320544684#0.10308863056611683;fr.ifremer.echobase.entities.data.Transect#1323320718931#0.5478985568987733;
+fr.ifremer.echobase.entities.data.Transit#1323320544685#0.6495413567325516;fr.ifremer.echobase.entities.data.Transect#1323320718941#0.3684605503902849;
+fr.ifremer.echobase.entities.data.Transit#1323320544686#0.24477664069068616;fr.ifremer.echobase.entities.data.Transect#1323320718945#0.7746317527045835;
+fr.ifremer.echobase.entities.data.Transit#1323320544687#0.5034231567862362;fr.ifremer.echobase.entities.data.Transect#1323320718946#0.6817852081485376;
+fr.ifremer.echobase.entities.data.Transit#1323320544689#0.2256772840219713;fr.ifremer.echobase.entities.data.Transect#1323320718947#0.6234180587856287;
+fr.ifremer.echobase.entities.data.Transit#1323320544690#0.5683246549515286;fr.ifremer.echobase.entities.data.Transect#1323320718948#0.03286565097316285;
+fr.ifremer.echobase.entities.data.Transit#1323320544690#0.1496511628529995;fr.ifremer.echobase.entities.data.Transect#1323320718953#0.6429210446164039;
+fr.ifremer.echobase.entities.data.Transit#1323320544691#0.9409630901898548;fr.ifremer.echobase.entities.data.Transect#1323320718956#0.151985601133512;
+fr.ifremer.echobase.entities.data.Transit#1323320544692#0.09296507577201119;fr.ifremer.echobase.entities.data.Transect#1323320718960#0.021415926234680804;
+fr.ifremer.echobase.entities.data.Transit#1323320544693#0.2776537176251803;fr.ifremer.echobase.entities.data.Transect#1323320718961#0.3572556134816314;
+fr.ifremer.echobase.entities.data.Transit#1323320544694#0.08774570394067749;fr.ifremer.echobase.entities.data.Transect#1323320718966#0.34006625430138016;
+fr.ifremer.echobase.entities.data.Transit#1323320544695#0.40728382328739476;fr.ifremer.echobase.entities.data.Transect#1323320718967#0.5585008703711315;
+fr.ifremer.echobase.entities.data.Transit#1323320544696#0.14133735498080002;fr.ifremer.echobase.entities.data.Transect#1323320718968#0.6897790607172997;
+fr.ifremer.echobase.entities.data.Transit#1323320544697#0.4723694725893558;fr.ifremer.echobase.entities.data.Transect#1323320718971#0.04147802141850254;
+fr.ifremer.echobase.entities.data.Transit#1323320544698#0.18960274209427297;fr.ifremer.echobase.entities.data.Transect#1323320718974#0.9586055041722416;
+fr.ifremer.echobase.entities.data.Transit#1323320544699#0.37240320237016433;fr.ifremer.echobase.entities.data.Transect#1323320718975#0.0995293616473204;
+fr.ifremer.echobase.entities.data.Transit#1323320544700#0.749306020024636;fr.ifremer.echobase.entities.data.Transect#1323320718978#0.6335534900534213;
+fr.ifremer.echobase.entities.data.Transit#1323320544701#0.10456654278071209;fr.ifremer.echobase.entities.data.Transect#1323320718983#0.4171279906214215;
+fr.ifremer.echobase.entities.data.Transit#1323320544702#0.6416234129528282;fr.ifremer.echobase.entities.data.Transect#1323320718990#0.9854326934832759;
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/association/Transit_transect.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/resources/csv/association/Voyage_transit.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/association/Voyage_transit.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/association/Voyage_transit.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,43 @@
+topiaId;transit
+fr.ifremer.echobase.entities.data.Voyage#1323303023495#0.36706645473250754;fr.ifremer.echobase.entities.data.Transit#1323320544653#0.42197526215246806;
+fr.ifremer.echobase.entities.data.Voyage#1323303023503#0.09567385479638657;fr.ifremer.echobase.entities.data.Transit#1323320544657#0.793955419938976;
+fr.ifremer.echobase.entities.data.Voyage#1323303023504#0.9677819531722206;fr.ifremer.echobase.entities.data.Transit#1323320544658#0.49318285166930464;
+fr.ifremer.echobase.entities.data.Voyage#1323303023505#0.4262528713105248;fr.ifremer.echobase.entities.data.Transit#1323320544659#0.7109241959164326;
+fr.ifremer.echobase.entities.data.Voyage#1323303023506#0.1062254778763495;fr.ifremer.echobase.entities.data.Transit#1323320544660#0.16422798833446173;
+fr.ifremer.echobase.entities.data.Voyage#1323303023507#0.07825220610379435;fr.ifremer.echobase.entities.data.Transit#1323320544663#0.8906451141766373;
+fr.ifremer.echobase.entities.data.Voyage#1323303023507#0.9404442865659914;fr.ifremer.echobase.entities.data.Transit#1323320544665#0.11831664240407658;
+fr.ifremer.echobase.entities.data.Voyage#1323303023508#0.8194263055341403;fr.ifremer.echobase.entities.data.Transit#1323320544666#0.8309964238365404;
+fr.ifremer.echobase.entities.data.Voyage#1323303023509#0.6276894783839798;fr.ifremer.echobase.entities.data.Transit#1323320544666#0.4221066981307239;
+fr.ifremer.echobase.entities.data.Voyage#1323303023510#0.8543928026040171;fr.ifremer.echobase.entities.data.Transit#1323320544667#0.5486234276187558;
+fr.ifremer.echobase.entities.data.Voyage#1323303023511#0.8925091841705969;fr.ifremer.echobase.entities.data.Transit#1323320544668#0.6422242362291657;
+fr.ifremer.echobase.entities.data.Voyage#1323303023512#0.7596092994912406;fr.ifremer.echobase.entities.data.Transit#1323320544669#0.4133776331975709;
+fr.ifremer.echobase.entities.data.Voyage#1323303023513#0.25382672822496855;fr.ifremer.echobase.entities.data.Transit#1323320544670#0.053298123205487546;
+fr.ifremer.echobase.entities.data.Voyage#1323303023513#0.5820561569184488;fr.ifremer.echobase.entities.data.Transit#1323320544671#0.47245185863582717;
+fr.ifremer.echobase.entities.data.Voyage#1323303023514#0.24667523668314195;fr.ifremer.echobase.entities.data.Transit#1323320544672#0.22937541587424826;
+fr.ifremer.echobase.entities.data.Voyage#1323303023516#0.16660749895879945;fr.ifremer.echobase.entities.data.Transit#1323320544673#0.578376489040041;
+fr.ifremer.echobase.entities.data.Voyage#1323303023520#0.3173583906959343;fr.ifremer.echobase.entities.data.Transit#1323320544678#0.7693855379965776;
+fr.ifremer.echobase.entities.data.Voyage#1323303023521#0.13240865039763816;fr.ifremer.echobase.entities.data.Transit#1323320544679#0.3505919461457373;
+fr.ifremer.echobase.entities.data.Voyage#1323303023522#0.03920949944365959;fr.ifremer.echobase.entities.data.Transit#1323320544679#0.846655793463204;
+fr.ifremer.echobase.entities.data.Voyage#1323303023523#0.712206579078481;fr.ifremer.echobase.entities.data.Transit#1323320544680#0.3277389642475089;
+fr.ifremer.echobase.entities.data.Voyage#1323303023524#0.3165864309920038;fr.ifremer.echobase.entities.data.Transit#1323320544681#0.8651972319858928;
+fr.ifremer.echobase.entities.data.Voyage#1323303023525#0.21007197696149016;fr.ifremer.echobase.entities.data.Transit#1323320544682#0.2565267980712128;
+fr.ifremer.echobase.entities.data.Voyage#1323303023526#0.32215301271063745;fr.ifremer.echobase.entities.data.Transit#1323320544683#0.44005376597751444;
+fr.ifremer.echobase.entities.data.Voyage#1323303023526#0.13500421160044418;fr.ifremer.echobase.entities.data.Transit#1323320544684#0.10308863056611683;
+fr.ifremer.echobase.entities.data.Voyage#1323303023527#0.8798610330859603;fr.ifremer.echobase.entities.data.Transit#1323320544685#0.6495413567325516;
+fr.ifremer.echobase.entities.data.Voyage#1323303023528#0.09634018765517882;fr.ifremer.echobase.entities.data.Transit#1323320544686#0.24477664069068616;
+fr.ifremer.echobase.entities.data.Voyage#1323303023529#0.7745000263711423;fr.ifremer.echobase.entities.data.Transit#1323320544687#0.5034231567862362;
+fr.ifremer.echobase.entities.data.Voyage#1323303023531#0.4706443465353609;fr.ifremer.echobase.entities.data.Transit#1323320544689#0.2256772840219713;
+fr.ifremer.echobase.entities.data.Voyage#1323303023533#0.27747720635320694;fr.ifremer.echobase.entities.data.Transit#1323320544690#0.5683246549515286;
+fr.ifremer.echobase.entities.data.Voyage#1323303023534#0.290907921617367;fr.ifremer.echobase.entities.data.Transit#1323320544690#0.1496511628529995;
+fr.ifremer.echobase.entities.data.Voyage#1323303023535#0.8450134097016887;fr.ifremer.echobase.entities.data.Transit#1323320544691#0.9409630901898548;
+fr.ifremer.echobase.entities.data.Voyage#1323303023536#0.09262596174917548;fr.ifremer.echobase.entities.data.Transit#1323320544692#0.09296507577201119;
+fr.ifremer.echobase.entities.data.Voyage#1323303023537#0.1146978858099349;fr.ifremer.echobase.entities.data.Transit#1323320544693#0.2776537176251803;
+fr.ifremer.echobase.entities.data.Voyage#1323303023538#0.8559728139816168;fr.ifremer.echobase.entities.data.Transit#1323320544694#0.08774570394067749;
+fr.ifremer.echobase.entities.data.Voyage#1323303023539#0.7229716827342229;fr.ifremer.echobase.entities.data.Transit#1323320544695#0.40728382328739476;
+fr.ifremer.echobase.entities.data.Voyage#1323303023540#0.19030397344315386;fr.ifremer.echobase.entities.data.Transit#1323320544696#0.14133735498080002;
+fr.ifremer.echobase.entities.data.Voyage#1323303023541#0.14135887168462702;fr.ifremer.echobase.entities.data.Transit#1323320544697#0.4723694725893558;
+fr.ifremer.echobase.entities.data.Voyage#1323303023549#0.4511463913210365;fr.ifremer.echobase.entities.data.Transit#1323320544698#0.18960274209427297;
+fr.ifremer.echobase.entities.data.Voyage#1323303023550#0.31302522399517285;fr.ifremer.echobase.entities.data.Transit#1323320544699#0.37240320237016433;
+fr.ifremer.echobase.entities.data.Voyage#1323303023553#0.19839460156228705;fr.ifremer.echobase.entities.data.Transit#1323320544700#0.749306020024636;
+fr.ifremer.echobase.entities.data.Voyage#1323303023554#0.8215190298890366;fr.ifremer.echobase.entities.data.Transit#1323320544701#0.10456654278071209;
+fr.ifremer.echobase.entities.data.Voyage#1323303023555#0.888427275309948;fr.ifremer.echobase.entities.data.Transit#1323320544702#0.6416234129528282;
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/association/Voyage_transit.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/main/resources/csv/baracouda/Echotype.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/baracouda/Echotype.csv 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/resources/csv/baracouda/Echotype.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -1,50 +1,216 @@
-topiaId;depthStratum;echotypeCategory;lengthCategory;meaning;name;species
-fr.ifremer.echobase.entities.references.Echotype#1323195806347#0.4593468100225647;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195806352#0.2383351096030406;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195806573#0.1876986222492676;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195806573#0.3553738399622369;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195807610#0.1593731003057871;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807695#0.06957905428538025;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376878#0.935937394765954;;Température de surface --> transfére dans TempSurf;D4;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807751#0.6799768010687669;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807840#0.7797322877680625;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807841#0.7022014790882867;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195807841#0.17753686637668753;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807959#0.8986348038683848;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195807960#0.6690998772521702;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D5;;
-fr.ifremer.echobase.entities.references.Echotype#1323195807960#0.9016178787693311;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376846#0.3245072187704323;;Couche planctonique (non renseigné sur l'ensemble de la campagne);D7;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808105#0.5698869402138907;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808105#0.19154941027295946;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D5;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808211#0.5035488108809038;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808212#0.14744963608105077;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808212#0.8169502513784964;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D5;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808332#0.6205249930362902;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808332#0.8858998933552448;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195808332#0.06951778341826953;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808332#0.1716487546482507;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808332#0.8380107904973866;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376846#0.3245072187704323;;;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808374#0.6809836558092459;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808374#0.856436209998245;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195808374#0.8571054628254866;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808499#0.7287881620638617;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808500#0.7994872862965123;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808580#0.39506016410498457;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808580#0.3842214307638231;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;(JUV05) bancs bleus en 120 non visible en 38;D5;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808580#0.9399490114458748;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808580#0.27827314580318707;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D7;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808581#0.5067373482838434;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376878#0.935937394765954;;(JUV05) grosse couche de nuit sous la surface;D8;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808581#0.8484786329987604;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D9;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808771#0.04846397022844906;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808771#0.5365938501328896;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808879#0.9481169610442292;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
-fr.ifremer.echobase.entities.references.Echotype#1323195808879#0.7733826483651796;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D7;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195808879#0.522864288202452;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D8;;
-fr.ifremer.echobase.entities.references.Echotype#1323195808996#0.9464181647742861;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D7;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
-fr.ifremer.echobase.entities.references.Echotype#1323195809132#0.5171231964249203;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376878#0.935937394765954;;? A virer;D8;;
-fr.ifremer.echobase.entities.references.Echotype#1323195809317#0.2173716937864063;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376878#0.935937394765954;;qq. Température de surface --> transfére dans TempSurf;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.8240395046512969;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D1;;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.14512080054713228;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.558801491299687;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D3;;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.541684484881961;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.9598778564423474;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D5;;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.8400784617938918;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D7;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
-fr.ifremer.echobase.entities.references.Echotype#1323195809347#0.401097434690203;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;;;D8;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
\ No newline at end of file
+topiaId;depthStratum;echotypeCategory;id;meaning;name;species
+fr.ifremer.echobase.entities.references.Echotype#1323284205292#0.8518075839289402;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D10;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284205369#0.6352134903014366;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D10;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284205421#0.32702655508394374;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D10;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284205441#0.2320722418324156;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;65;Banc d'Anchois purs;D7;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284205463#0.9256623337089225;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;64;"Points bleus près du fond (Merlans leus, merlus et chinchards)";D5;fr.ifremer.echobase.entities.references.Species#1323183898723#0.4657252169816988;
+fr.ifremer.echobase.entities.references.Echotype#1323284205489#0.6845143172250965;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;64;"Points bleus près du fond (Merlans leus, merlus et chinchards)";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205506#0.6727085497267945;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;64;"Points bleus près du fond (Merlans leus, merlus et chinchards)";D5;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284205528#0.7483474605887602;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;64;"Points bleus près du fond (Merlans leus, merlus et chinchards)";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205550#0.8973731873845845;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;64;"Points bleus près du fond (Merlans leus, merlus et chinchards)";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205569#0.7319324353449131;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;66;Banc de Sardines pur;D8;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284205589#0.8928897328242728;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;62;"Merlans bleus, myctophidés et capros présents au large";D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205607#0.8126244414780128;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;62;"Merlans bleus, myctophidés et capros présents au large";D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205623#0.8243843341062618;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;fr.ifremer.echobase.entities.references.Species#1323183898723#0.4657252169816988;
+fr.ifremer.echobase.entities.references.Echotype#1323284205645#0.6415471690966841;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205665#0.012339076093922374;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284205685#0.6304614518016449;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284205704#0.46704327741286533;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284205725#0.34093787038955226;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205744#0.03146965649210387;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;60;"Maquereaux, Chinchards et gadidés présents dans les couches à proximité du fond";D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205762#0.04388857835404636;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284205780#0.1510164423607413;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898942#0.9511729470180373;
+fr.ifremer.echobase.entities.references.Echotype#1323284205797#0.3673564460147408;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284205816#0.7812829040063348;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284205834#0.3674901349187044;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284205858#0.9855848963455235;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205881#0.11248498840853471;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284205905#0.9601015720367673;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;34;(JUV05) poisson clairsemé en surface;D7;;
+fr.ifremer.echobase.entities.references.Echotype#1323284205932#0.5027293637691141;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284205954#0.10997998743672943;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898942#0.9511729470180373;
+fr.ifremer.echobase.entities.references.Echotype#1323284205984#0.2598210682769916;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206006#0.8350572431556507;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284206027#0.6551320786809235;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206055#0.98117386707445;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206083#0.008611757401793874;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284206111#0.6954531704862683;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;36;(JUV05) poisson clairsemé sur toute la tranche d'eau;D9;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206132#0.22452449820540843;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;61;"Bancs bien distincts: Anchois, Sardines Sprats et Harengs situés entre le fond et 50m au dessus du fond";D2;fr.ifremer.echobase.entities.references.Species#1323183898606#0.9240203343809948;
+fr.ifremer.echobase.entities.references.Echotype#1323284206156#0.9309579890730224;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;61;"Bancs bien distincts: Anchois, Sardines Sprats et Harengs situés entre le fond et 50m au dessus du fond";D2;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206178#0.8873986146606001;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;61;"Bancs bien distincts: Anchois, Sardines Sprats et Harengs situés entre le fond et 50m au dessus du fond";D2;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206194#0.6327774175848143;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;61;"Bancs bien distincts: Anchois, Sardines Sprats et Harengs situés entre le fond et 50m au dessus du fond";D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284206210#0.8375085126235706;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206226#0.09934579274863131;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206245#0.7090439471782567;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284206261#0.6232889948184872;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206277#0.8771820497182593;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284206294#0.07708616031637039;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284206314#0.3071416116542145;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;33;(JUV05) catégorie non classifiable;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206330#0.3166592275062916;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;47;(PEL07) bancs de sardine;D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206348#0.1741890738520031;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206363#0.5940038775891957;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206383#0.9262827693758459;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206400#0.5005856337844954;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206415#0.0956213044952754;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284206431#0.7274864314701311;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206447#0.9197903630972531;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284206464#0.4690395796209814;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;44;(Pel06) Melange de D1 et D2 non différenciable;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206479#0.07583888153928442;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;40;(JUV03) bancs bien formés à proximité de la surface (<35 m de profondeur);D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206495#0.07723359998047497;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;40;(JUV03) bancs bien formés à proximité de la surface (<35 m de profondeur);D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206511#0.835859195305329;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;40;(JUV03) bancs bien formés à proximité de la surface (<35 m de profondeur);D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206526#0.5246557263694831;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376846#0.3245072187704323;41;(JUV03) 'dragon bleu' - couche bleue de forme septentéiforme avec des noyaux plus dense);D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206542#0.2005800412557307;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376846#0.3245072187704323;41;(JUV03) 'dragon bleu' - couche bleue de forme septentéiforme avec des noyaux plus dense);D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206558#0.24049678619817305;fr.ifremer.echobase.entities.references.DepthStratum#1323130442655#0.40925384899283856;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376846#0.3245072187704323;41;(JUV03) 'dragon bleu' - couche bleue de forme septentéiforme avec des noyaux plus dense);D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206573#0.959635532745635;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;43;"(Pel06) petits bancs denses sous surface (sardine, anchois, maquereau, sprat)";D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206589#0.006502323441057167;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;43;"(Pel06) petits bancs denses sous surface (sardine, anchois, maquereau, sprat)";D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206606#0.7273506528066628;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;43;"(Pel06) petits bancs denses sous surface (sardine, anchois, maquereau, sprat)";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284206622#0.5734984272295567;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;43;"(Pel06) petits bancs denses sous surface (sardine, anchois, maquereau, sprat)";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206638#0.029148467642098885;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;43;"(Pel06) petits bancs denses sous surface (sardine, anchois, maquereau, sprat)";D4;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284206657#0.6531891156661904;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;49;(Pel07) Détection au fond - mélange chinchard et maquereau;D8;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206675#0.7052920626571918;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;49;(Pel07) Détection au fond - mélange chinchard et maquereau;D8;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206695#0.5763851902922397;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;49;(Pel07) Détection au fond - mélange chinchard et maquereau;D8;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206713#0.0730106944079586;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;49;(Pel07) Détection au fond - mélange chinchard et maquereau;D8;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284206736#0.5128777431623311;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;49;(Pel07) Détection au fond - mélange chinchard et maquereau;D8;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206759#0.09062845739692205;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206784#0.9981338420087713;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206801#0.9217537525464157;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284206818#0.08931236855890634;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206835#0.8556493039631002;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284206854#0.7123433089655804;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;42;(Pel06) diffuses et en petites boules près du fond (chinchard + maquereau + divers);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284206870#0.13147589121200598;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;51;(PEL08) D2 identifié sardine;D7;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206887#0.30068310595098413;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206903#0.2971900699708139;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206920#0.25566741796928005;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;50;"(Pel07) Bancs de surface (Sardine, anchois et maquereau)";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206937#0.8446130493750578;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;48;(Pel07) bancs de maquereau;D7;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284206953#0.8720802321816312;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;63;"Sardines, Maquereaux, Anchois situés proche de la surface";D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284206971#0.8648319406484107;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;63;"Sardines, Maquereaux, Anchois situés proche de la surface";D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284206990#0.41771276944722047;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;63;"Sardines, Maquereaux, Anchois situés proche de la surface";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284207008#0.8050269579350692;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;63;"Sardines, Maquereaux, Anchois situés proche de la surface";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284207026#0.9824928359684569;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;39;(JUV03) agrégats à proximité de la surface (<35 m de profondeur);D3;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207044#0.3495495566216409;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;39;(JUV03) agrégats à proximité de la surface (<35 m de profondeur);D3;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207062#0.4245462448760411;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;39;(JUV03) agrégats à proximité de la surface (<35 m de profondeur);D3;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284207078#0.3432363593542387;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;38;(JUV03) bancs bien formés de pleine eau;D2;fr.ifremer.echobase.entities.references.Species#1323183898606#0.9240203343809948;
+fr.ifremer.echobase.entities.references.Echotype#1323284207096#0.3437502671954751;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;38;(JUV03) bancs bien formés de pleine eau;D2;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207112#0.20029299113921317;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;38;(JUV03) bancs bien formés de pleine eau;D2;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207128#0.06752755384126541;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;38;(JUV03) bancs bien formés de pleine eau;D2;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284207145#0.6525009356735544;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;38;(JUV03) bancs bien formés de pleine eau;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284207169#0.4015005139451483;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;37;(JUV03) agrégats ou bancs à proximité immédiate du fond (<10 m d'altitude);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207186#0.06899887398872628;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;37;(JUV03) agrégats ou bancs à proximité immédiate du fond (<10 m d'altitude);D1;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207211#0.5950019915771096;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;37;(JUV03) agrégats ou bancs à proximité immédiate du fond (<10 m d'altitude);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207235#0.08759968239275984;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;26;Diffuse près du fond (Chinchard + POUTASSOU + divers );D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207256#0.017264998233529227;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;26;Diffuse près du fond (Chinchard + POUTASSOU + divers );D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207273#0.4237822356412252;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;26;Diffuse près du fond (Chinchard + POUTASSOU + divers );D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207296#0.3064592152653872;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;26;Diffuse près du fond (Chinchard + POUTASSOU + divers );D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207312#0.5355289054558214;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;25;Détection accores et large (merlan bleu et petit anchois PEGASE 97);D3;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207331#0.8158039896140288;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;25;Détection accores et large (merlan bleu et petit anchois PEGASE 97);D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207347#0.21556962532286306;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;24;(PEL04) D2 classique sans le maquereau;D2;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207363#0.5670841201893223;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;24;(PEL04) D2 classique sans le maquereau;D2;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207379#0.1309770543750438;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;24;(PEL04) D2 classique sans le maquereau;D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284207397#0.3634729749950949;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D5;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207416#0.13519099960424885;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207433#0.3951960732631218;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D4;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207452#0.7193174550005467;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D4;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207468#0.48094501724986016;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207484#0.9559561215821321;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898942#0.9511729470180373;
+fr.ifremer.echobase.entities.references.Echotype#1323284207502#0.8658930501075716;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207518#0.5059916919873677;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284207535#0.2876196643592862;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284207554#0.8209990113682663;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207570#0.32128792073892287;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207589#0.27353999654818895;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;31;(JUV05) Détection en surface dont Juvenile d'anchois - diffuse et continue;D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207606#0.02523439615132861;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207636#0.10518136129775879;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207655#0.781043986385396;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D4;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284207674#0.3961677181872624;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;14;Grands fléchards;D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207697#0.31463967875859955;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207714#0.6581045621633008;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207731#0.006487182343765552;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.5935284035376864;
+fr.ifremer.echobase.entities.references.Echotype#1323284207750#0.6366191276161044;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207768#0.2623941380704894;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207784#0.8177866377041408;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207802#0.38739327814931623;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D6;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284207819#0.3712636322269468;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D7;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284207836#0.7527816560632373;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D7;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284207853#0.5738192152616246;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;15;"Petits bancs denses en Surface (Sardine , anchois zone sud )";D7;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284207871#0.19261787029572985;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207889#0.4566814239682434;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207905#0.33604762107508823;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284207921#0.6543266625442016;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284207936#0.7540579843417419;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284207954#0.4246687365704406;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207971#0.3550966182139459;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284207989#0.11280827010269545;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208008#0.8380038512580619;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;11;Détection rupture pente accores et grands fonds (merlan bleu);D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208025#0.07246590880404069;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;11;Détection rupture pente accores et grands fonds (merlan bleu);D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208043#0.34058930400222276;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D4;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208064#0.19895080328549042;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D4;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208081#0.7987603112892008;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D7;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208099#0.8011437516704495;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D7;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208117#0.24832168264769872;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;21;(Pel03) Diffuse près du fond (Chinchard + divers + POUTASSOU);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208134#0.9117583250469508;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;21;(Pel03) Diffuse près du fond (Chinchard + divers + POUTASSOU);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208149#0.10648710715747223;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;21;(Pel03) Diffuse près du fond (Chinchard + divers + POUTASSOU);D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208166#0.24746719257665872;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;21;(Pel03) Diffuse près du fond (Chinchard + divers + POUTASSOU);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208181#0.8129649684394892;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;8;"Bancs classiques (Sardine, sprat, Anchois, Maquereau ) + grands fléchards";D2;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284208195#0.6538521368936705;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;8;"Bancs classiques (Sardine, sprat, Anchois, Maquereau ) + grands fléchards";D2;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284208211#0.4945278750621992;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;8;"Bancs classiques (Sardine, sprat, Anchois, Maquereau ) + grands fléchards";D2;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284208226#0.853187076813828;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;8;"Bancs classiques (Sardine, sprat, Anchois, Maquereau ) + grands fléchards";D2;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284208241#0.14868979729179266;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;8;"Bancs classiques (Sardine, sprat, Anchois, Maquereau ) + grands fléchards";D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284208265#0.8325531371282632;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208284#0.28106789844593905;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208301#0.02059496702945174;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284208317#0.7398938612264011;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284208332#0.08636549059352194;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208349#0.38578125195778834;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208366#0.41430754802210157;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208383#0.13419709749920683;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208398#0.054739040504797165;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284208414#0.18419754994167914;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284208429#0.7866306019916496;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208449#0.9750641290953207;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;22;(PEL04) déviation de type D1 avec du maquereau en plus;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208467#0.2544954947612651;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;11;Détection rupture pente accores et grands fonds (merlan bleu);D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208484#0.6208399861379822;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;11;Détection rupture pente accores et grands fonds (merlan bleu);D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208504#0.4274854119861745;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;20;(Pel03) Gros Bancs très denses et très mobiles de CHINCHARD;D5;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208522#0.4928590399885292;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208539#0.678061040021686;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;10;"Détection rupture pente accores (merlan bleu, myctophidés)";D3;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208554#0.9367554026741045;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;23;(PEL04) Maquereau;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284208569#0.9697626402808397;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;23;(PEL04) Maquereau;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284208586#0.21083240435462736;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D2;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208601#0.18665622816026595;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D2;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208617#0.9578783165894269;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D2;fr.ifremer.echobase.entities.references.Species#1323183898784#0.5935284035376864;
+fr.ifremer.echobase.entities.references.Echotype#1323284208634#0.8171025085827384;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D2;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208652#0.41648650237936913;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;13;Diffuse près du fond (Chinchard + divers) + bancs de chinchards;D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208666#0.6358512513671997;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;13;Diffuse près du fond (Chinchard + divers) + bancs de chinchards;D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208685#0.13774103184803987;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;13;Diffuse près du fond (Chinchard + divers) + bancs de chinchards;D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208703#0.9034819020003422;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208718#0.8989592387071674;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284208733#0.9414034285098634;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284208748#0.4513617253822404;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284208763#0.8426227178498306;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284208778#0.5595132194533983;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284208796#0.9700502901457638;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208815#0.7967132370991139;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;18;(Pel03) MELANGE - D1+D2 lorsque la structure ne permet pas de les distinguer;D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208832#0.7801178222157008;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208847#0.7649113111619383;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208862#0.2229406921371878;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.5935284035376864;
+fr.ifremer.echobase.entities.references.Echotype#1323284208879#0.7759958748672279;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;12;Diffuse près du fond (Chinchard + divers);D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208894#0.4223044313788632;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D1;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208912#0.7324056329732276;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;2;"""Fau D2"" - CHINCHARD en banc classique, dense et très mobile";D1;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208928#0.7686434229105303;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;30;"(Pel05) Chandelles (anchois, chinchard)";D6;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284208942#0.6010065698794724;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;30;"(Pel05) Chandelles (anchois, chinchard)";D6;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284208960#0.7832971579814831;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;30;"(Pel05) Chandelles (anchois, chinchard)";D6;;
+fr.ifremer.echobase.entities.references.Echotype#1323284208975#0.8102618910652098;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284208990#0.7781807772627437;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284209006#0.39521892403068304;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284209021#0.16522585813141077;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284209036#0.24918671245377932;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284209051#0.3162925220631143;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;fr.ifremer.echobase.entities.references.Species#1323183898784#0.6472333874788162;
+fr.ifremer.echobase.entities.references.Echotype#1323284209068#0.3497571500148887;fr.ifremer.echobase.entities.references.DepthStratum#1323130442656#0.3438170447145241;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;29;"(Pel05) Bancs de surface (sardine, anchois, maquereau, sprat, chinchard)";D4;;
+fr.ifremer.echobase.entities.references.Echotype#1323284209083#0.7666063236241601;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D1;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284209098#0.9477205790665866;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D1;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284209114#0.7511433825155591;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284209132#0.03126856067798023;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D1;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284209147#0.09990460426310899;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D1;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
+fr.ifremer.echobase.entities.references.Echotype#1323284209161#0.6986045182445567;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D2;fr.ifremer.echobase.entities.references.Species#1323183898609#0.11230475322322542;
+fr.ifremer.echobase.entities.references.Echotype#1323284209176#0.25894494475920493;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D2;fr.ifremer.echobase.entities.references.Species#1323183898607#0.6597513181914701;
+fr.ifremer.echobase.entities.references.Echotype#1323284209191#0.6367688417462207;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D2;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13623631467947173;
+fr.ifremer.echobase.entities.references.Echotype#1323284209208#0.09173848280167751;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D2;fr.ifremer.echobase.entities.references.Species#1323183898832#0.13717053384328737;
+fr.ifremer.echobase.entities.references.Echotype#1323284209223#0.6633237548921491;fr.ifremer.echobase.entities.references.DepthStratum#1323130442626#0.571760366977773;fr.ifremer.echobase.entities.references.EchotypeCategory#1323188376877#0.3339892718793188;7;"Bancs classiques (Sardine, sprat, Anchois, Maquereau )";D2;fr.ifremer.echobase.entities.references.Species#1323183898608#0.09129160671880698;
\ No newline at end of file
Added: trunk/echobase-tools/src/main/resources/csv/baracouda/Transect.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/baracouda/Transect.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/baracouda/Transect.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,43 @@
+topiaId;binSizePingAxis;binSizeRangeAxis;binUnitsPingAxis;citation;comment;dateCreated;datum;geospatialLatMax;geospatialLatMin;geospatialLonMax;geospatialLonMin;geospatialVerticalMax;geospatialVerticalMin;geospatialVerticalPositive;history;licence;linestring;localisation;metadata;timeCoverageEnd;timeCoverageStart;title;transectAbstract;vessel
+fr.ifremer.echobase.entities.data.Transect#1323320718854#0.16496474136164707;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718871#0.43811591058938393;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718873#0.22590776454798145;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718879#0.22762589557527313;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718880#0.8675763932708581;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718882#0.8313008850992559;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718883#0.02090206540995454;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718889#0.48341511290981376;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718890#0.9228759996243251;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718891#0.14412591039674894;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718892#0.2630535664991509;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718896#0.5644879956116315;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718897#0.6866101322356634;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718898#0.15476162598793997;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718904#0.41986337020591025;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718908#0.31990422173935795;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718916#0.7828994640243007;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672051#0.02434833661196656;
+fr.ifremer.echobase.entities.data.Transect#1323320718917#0.5204678684295829;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672052#0.6724497299526435;
+fr.ifremer.echobase.entities.data.Transect#1323320718922#0.2531141442003776;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672052#0.6724497299526435;
+fr.ifremer.echobase.entities.data.Transect#1323320718923#0.615133835112941;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672052#0.6724497299526435;
+fr.ifremer.echobase.entities.data.Transect#1323320718924#0.934706270228778;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672055#0.7049715347111914;
+fr.ifremer.echobase.entities.data.Transect#1323320718929#0.6609608451095067;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718930#0.17966889271931497;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718931#0.5478985568987733;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718941#0.3684605503902849;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718945#0.7746317527045835;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718946#0.6817852081485376;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718947#0.6234180587856287;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718948#0.03286565097316285;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718953#0.6429210446164039;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718956#0.151985601133512;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718960#0.021415926234680804;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718961#0.3572556134816314;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718966#0.34006625430138016;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718967#0.5585008703711315;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718968#0.6897790607172997;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672055#0.7049715347111914;
+fr.ifremer.echobase.entities.data.Transect#1323320718971#0.04147802141850254;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672054#0.6748983274029329;
+fr.ifremer.echobase.entities.data.Transect#1323320718974#0.9586055041722416;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672054#0.6748983274029329;
+fr.ifremer.echobase.entities.data.Transect#1323320718975#0.0995293616473204;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718978#0.6335534900534213;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;
+fr.ifremer.echobase.entities.data.Transect#1323320718983#0.4171279906214215;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
+fr.ifremer.echobase.entities.data.Transect#1323320718990#0.9854326934832759;1.0;variable;n.mi.;;from Baracouda;;;0.0;0.0;0.0;0.0;0.0;0.0;;;;;;;;;Cruise;;fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/baracouda/Transect.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/resources/csv/baracouda/Transit.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/baracouda/Transit.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/baracouda/Transit.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,43 @@
+topiaId;description;endLocality;endTime;relatedActivity;startLocality;startTime
+fr.ifremer.echobase.entities.data.Transit#1323320544653#0.42197526215246806;Cruise;;29/08/1990 00:00:00;;;10/08/1990 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544657#0.793955419938976;Cruise;;26/10/1991 00:00:00;;;07/10/1991 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544658#0.49318285166930464;Cruise;;14/05/1989 00:00:00;;;21/04/1989 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544659#0.7109241959164326;Cruise;;26/04/1990 00:00:00;;;10/04/1990 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544660#0.16422798833446173;Cruise;;29/04/1991 00:00:00;;;06/04/1991 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544663#0.8906451141766373;Cruise;;30/04/1992 00:00:00;;;13/04/1992 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544665#0.11831664240407658;Cruise;;05/05/1983 00:00:00;;;19/04/1983 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544666#0.8309964238365404;Cruise;;05/05/1983 00:00:00;;;19/04/1983 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544666#0.4221066981307239;Cruise;;16/05/1984 00:00:00;;;28/04/1984 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544667#0.5486234276187558;Cruise;;09/05/1985 00:00:00;;;18/04/1985 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544668#0.6422242362291657;Cruise;;27/06/1986 00:00:00;;;06/06/1986 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544669#0.4133776331975709;Cruise;;05/04/1987 00:00:00;;;16/03/1987 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544670#0.053298123205487546;Cruise;;23/06/1993 00:00:00;;;04/06/1993 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544671#0.47245185863582717;Cruise;;08/06/1994 00:00:00;;;15/05/1994 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544672#0.22937541587424826;Cruise;;16/10/2003 00:00:00;;;07/10/2003 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544673#0.578376489040041;Cruise;;17/10/2005 00:00:00;;;05/10/2005 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544678#0.7693855379965776;Cruise;;17/09/1999 00:00:00;;;04/09/1999 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544679#0.3505919461457373;Cruise;;29/07/2003 00:00:00;;;06/07/2003 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544679#0.846655793463204;Cruise;;31/12/2004 00:00:00;;;01/01/2004 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544680#0.3277389642475089;Cruise;;30/09/2005 00:00:00;;;25/09/2005 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544681#0.8651972319858928;Cruise;;11/06/2004 00:00:00;;;08/06/2004 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544682#0.2565267980712128;Cruise;;03/06/1997 00:00:00;;;06/05/1997 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544683#0.44005376597751444;Cruise;;21/06/1998 00:00:00;;;20/05/1998 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544684#0.10308863056611683;Cruise;;15/06/2000 00:00:00;;;15/05/2000 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544685#0.6495413567325516;Cruise;;06/06/2001 00:00:00;;;26/04/2001 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544686#0.24477664069068616;Cruise;;07/06/2002 00:00:00;;;07/05/2002 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544687#0.5034231567862362;Cruise;;24/06/2003 00:00:00;;;29/05/2003 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544689#0.2256772840219713;Cruise;;25/05/2004 00:00:00;;;27/04/2004 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544690#0.5683246549515286;Cruise;;31/05/2005 00:00:00;;;02/05/2005 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544690#0.1496511628529995;Cruise;;30/05/2006 00:00:00;;;01/05/2006 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544691#0.9409630901898548;Cruise;;26/05/2007 00:00:00;;;26/04/2007 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544692#0.09296507577201119;Cruise;;26/05/2008 00:00:00;;;27/04/2008 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544693#0.2776537176251803;Cruise;;04/06/2009 00:00:00;;;26/04/2009 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544694#0.08774570394067749;Cruise;;04/06/2010 00:00:00;;;26/04/2010 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544695#0.40728382328739476;Cruise;;12/10/2007 00:00:00;;;18/09/2007 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544696#0.14133735498080002;Cruise;;01/06/1999 00:00:00;;;20/05/1999 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544697#0.4723694725893558;Cruise;;25/06/1999 00:00:00;;;22/06/1999 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544698#0.18960274209427297;Cruise;;15/07/1999 00:00:00;;;12/07/1999 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544699#0.37240320237016433;Cruise;;20/12/1996 00:00:00;;;12/12/1996 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544700#0.749306020024636;Cruise;;20/12/1996 00:00:00;;;12/12/1996 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544701#0.10456654278071209;Cruise;;01/06/2004 00:00:00;;;27/05/2004 00:00:00;
+fr.ifremer.echobase.entities.data.Transit#1323320544702#0.6416234129528282;Cruise;;25/06/1996 00:00:00;;;15/06/1996 00:00:00;
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/baracouda/Transit.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/main/resources/csv/baracouda/Vessel.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/baracouda/Vessel.csv 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/main/resources/csv/baracouda/Vessel.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -1,4 +1,4 @@
-topiaId;acknowledgement;altCallsign;callsign;imo;name;operator;vesselCode;vesselEnginePower;vesselLength;vesselNoiseDesign;vesselTonnage;vesselType
+topiaId;acknowledgement;altCallsign;callsign;imo;name;operator;code;enginePower;length;noiseDesign;tonnage;vesselType
fr.ifremer.echobase.entities.references.Vessel#1323196672005#0.0486360470261461;;;;0;THALASSA I;;;0;0.0;;0.0;;
fr.ifremer.echobase.entities.references.Vessel#1323196672049#0.9790502711645855;;;;0;THALASSA II;;;0;0.0;;0.0;;
fr.ifremer.echobase.entities.references.Vessel#1323196672051#0.02434833661196656;;;;0;GWEN-DREZ;;;0;0.0;;0.0;;
Added: trunk/echobase-tools/src/main/resources/csv/baracouda/Voyage.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/baracouda/Voyage.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/baracouda/Voyage.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,43 @@
+topiaId;areaOfOperation;datum;mission;description;endDate;endPort;name;startDate;startPort
+fr.ifremer.echobase.entities.data.Voyage#1323303023495#0.36706645473250754;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544314#0.7896268567294454;;29/08/1990 00:00:00;St Nazaire;AURA1990;10/08/1990 00:00:00;St Nazaire;
+fr.ifremer.echobase.entities.data.Voyage#1323303023503#0.09567385479638657;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544314#0.7896268567294454;;26/10/1991 00:00:00;;AURA1991;07/10/1991 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023504#0.9677819531722206;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474322#0.5330563253304542;;fr.ifremer.echobase.entities.references.Mission#1323127544322#0.5631896168840276;;14/05/1989 00:00:00;St Nazaire;DAAG1989;21/04/1989 00:00:00;Bilbao;
+fr.ifremer.echobase.entities.data.Voyage#1323303023505#0.4262528713105248;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544322#0.5631896168840276;;26/04/1990 00:00:00;St Nazaire;DAAG1990;10/04/1990 00:00:00;St Nazaire;
+fr.ifremer.echobase.entities.data.Voyage#1323303023506#0.1062254778763495;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544322#0.5631896168840276;;29/04/1991 00:00:00;St Nazaire;DAAG1991;06/04/1991 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023507#0.07825220610379435;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544322#0.5631896168840276;;30/04/1992 00:00:00;St Nazaire;DAAG1992;13/04/1992 00:00:00;St Nazaire;
+fr.ifremer.echobase.entities.data.Voyage#1323303023507#0.9404442865659914;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;05/05/1983 00:00:00;Nantes;EIGAS1983;19/04/1983 00:00:00;Nantes;
+fr.ifremer.echobase.entities.data.Voyage#1323303023508#0.8194263055341403;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;05/05/1983 00:00:00;Nantes;EIGAS83b;19/04/1983 00:00:00;Nantes;
+fr.ifremer.echobase.entities.data.Voyage#1323303023509#0.6276894783839798;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;16/05/1984 00:00:00;;EIGAS1984;28/04/1984 00:00:00;4800N ;
+fr.ifremer.echobase.entities.data.Voyage#1323303023510#0.8543928026040171;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;09/05/1985 00:00:00;;EIGAS1985;18/04/1985 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023511#0.8925091841705969;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;27/06/1986 00:00:00;;EIGAS1986;06/06/1986 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023512#0.7596092994912406;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544274#0.7939481378378231;;05/04/1987 00:00:00;Nantes;EIGAS1987;16/03/1987 00:00:00;Nantes;
+fr.ifremer.echobase.entities.data.Voyage#1323303023513#0.25382672822496855;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.08648279689805949;;23/06/1993 00:00:00;St Nazaire;ERAG1993;04/06/1993 00:00:00;St Nazaire;
+fr.ifremer.echobase.entities.data.Voyage#1323303023513#0.5820561569184488;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.08648279689805949;;08/06/1994 00:00:00;St Nazaire;ERAG1994;15/05/1994 00:00:00;Concarneau;
+fr.ifremer.echobase.entities.data.Voyage#1323303023514#0.24667523668314195;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544313#0.17788792073354875;Prospectio juvénile d'anchois;16/10/2003 00:00:00;Lorient;JUVAGA2003;07/10/2003 00:00:00;La Pallice;
+fr.ifremer.echobase.entities.data.Voyage#1323303023516#0.16660749895879945;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544313#0.17788792073354875;Juveniles anchois;17/10/2005 00:00:00;Brest;JUVAGA2005;05/10/2005 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023520#0.3173583906959343;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544321#0.4573242294775681;Campagne sur les juveniles d'anchois;17/09/1999 00:00:00;non renseigné;JUVESU1999;04/09/1999 00:00:00;non renseigné;
+fr.ifremer.echobase.entities.data.Voyage#1323303023521#0.13240865039763816;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544310#0.7246429372414137;échantillon anchois de navire professionnel;29/07/2003 00:00:00;;JUVPRO2003;06/07/2003 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023522#0.03920949944365959;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544310#0.7246429372414137;échantillon anchois de navire professionnel;31/12/2004 00:00:00;;JUVPRO2004;01/01/2004 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023523#0.712206579078481;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544310#0.7246429372414137;"échantillon anchois de navires professionnels : Fou du roi, Vénètes, Vent de galerne lors de la campagne d'observation des juvéniles organisée par le CNPMEM en septembre 2005";30/09/2005 00:00:00;;JUVPRO2005;25/09/2005 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023524#0.3165864309920038;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544324#0.5349635284883839;;11/06/2004 00:00:00;La Rochelle;MICRODYN-3;08/06/2004 00:00:00;La Pallice;
+fr.ifremer.echobase.entities.data.Voyage#1323303023525#0.21007197696149016;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544312#0.2405501137183701;Les valeurs d'écho de type D3 ont été supprimées : probablement essai de subdivision de D2;03/06/1997 00:00:00;St Nazaire;PEGASE1997;06/05/1997 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023526#0.32215301271063745;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544312#0.2405501137183701;;21/06/1998 00:00:00;St Nazaire;PEGASE1998;20/05/1998 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023526#0.13500421160044418;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544311#0.7638448048181886;Survey pélagiques Gascogne;15/06/2000 00:00:00;Brest;PELASSES2000;15/05/2000 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023527#0.8798610330859603;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544311#0.7638448048181886;;06/06/2001 00:00:00;Brest;PELASSES2001;26/04/2001 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023528#0.09634018765517882;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;;07/06/2002 00:00:00;Brest;PELGAS2002;07/05/2002 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023529#0.7745000263711423;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;test d'import;24/06/2003 00:00:00;;PELGAS2003;29/05/2003 00:00:00;;
+fr.ifremer.echobase.entities.data.Voyage#1323303023531#0.4706443465353609;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;Survey pélagiques Gascogne;25/05/2004 00:00:00;Brest;PELGAS2004;27/04/2004 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023533#0.27747720635320694;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;Survey pélagiques Gascogne;31/05/2005 00:00:00;BREST;PELGAS2005;02/05/2005 00:00:00;SANTANDER;
+fr.ifremer.echobase.entities.data.Voyage#1323303023534#0.290907921617367;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;Survey pélagiques Gascogne;30/05/2006 00:00:00;Brest;PELGAS2006;01/05/2006 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023535#0.8450134097016887;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;Survey;26/05/2007 00:00:00;BREST;PELGAS2007;26/04/2007 00:00:00;SANTANDER;
+fr.ifremer.echobase.entities.data.Voyage#1323303023536#0.09262596174917548;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806;Surevy pélagiques Gascogne;26/05/2008 00:00:00;Brest;PELGAS2008;27/04/2008 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023537#0.1146978858099349;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806; ;04/06/2009 00:00:00;Brest;PELGAS2009;26/04/2009 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023538#0.8559728139816168;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544316#0.05457739535846806; ;04/06/2010 00:00:00;Brest;PELGAS2010;26/04/2010 00:00:00;Santander;
+fr.ifremer.echobase.entities.data.Voyage#1323303023539#0.7229716827342229;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544313#0.17788792073354875;Campagne IEO - survey sur leg1 (18/08 --> 03/10) - type JUVAGA leg2 IEO-IFREMER sur leg2 (05/10 --> 11/10);12/10/2007 00:00:00;Gijon;PELACUS2007;18/09/2007 00:00:00;Gijon;
+fr.ifremer.echobase.entities.data.Voyage#1323303023540#0.19030397344315386;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544317#0.7152726500932686;Etude du plancton en liaison avec le recrutement de l'anchois;01/06/1999 00:00:00;La Rochelle;PLAGIA3;20/05/1999 00:00:00;La Rochelle;
+fr.ifremer.echobase.entities.data.Voyage#1323303023541#0.14135887168462702;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544317#0.7152726500932686;determinisme du recrutement de l'anchois;25/06/1999 00:00:00;La Rochelle;PLAGIA4;22/06/1999 00:00:00;La Rochelle;
+fr.ifremer.echobase.entities.data.Voyage#1323303023549#0.4511463913210365;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544317#0.7152726500932686;determinisme du recrutement de l'anchois;15/07/1999 00:00:00;Saint Nazaire;PLAGIA5;12/07/1999 00:00:00;La Rochelle;
+fr.ifremer.echobase.entities.data.Voyage#1323303023550#0.31302522399517285;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544323#0.10146893652382649;;20/12/1996 00:00:00;St Nazaire;SILENCE1996;12/12/1996 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023553#0.19839460156228705;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544323#0.10146893652382649;;20/12/1996 00:00:00;St Nazaire;SILE96b;12/12/1996 00:00:00;Brest;
+fr.ifremer.echobase.entities.data.Voyage#1323303023554#0.8215190298890366;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474277#0.011341599655098622;;fr.ifremer.echobase.entities.references.Mission#1323127544318#0.08654569881185292;Campagne Programme SIMFAMI;01/06/2004 00:00:00;BREST;SIMFAMI2004;27/05/2004 00:00:00;BREST;
+fr.ifremer.echobase.entities.data.Voyage#1323303023555#0.888427275309948;fr.ifremer.echobase.entities.references.AreaOfOperation#1323128474321#0.4343325342422426;;fr.ifremer.echobase.entities.references.Mission#1323127544315#0.4421101375437153;;25/06/1996 00:00:00;;THALES1996;15/06/1996 00:00:00;Brest;
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/baracouda/Voyage.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/resources/csv/new/Localisation.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/new/Localisation.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/new/Localisation.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1 @@
+topiaId;maxLatitude;minLatitude;maxLongitude;minLongitude;seafloorSubstrate;bathymetre
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/new/Localisation.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/main/resources/csv/new/VesselType.csv
===================================================================
--- trunk/echobase-tools/src/main/resources/csv/new/VesselType.csv (rev 0)
+++ trunk/echobase-tools/src/main/resources/csv/new/VesselType.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1 @@
+topiaId;name
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/resources/csv/new/VesselType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/AbstractToolTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -29,7 +29,11 @@
import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.meta.DbMeta;
-import fr.ifremer.echobase.services.*;
+import fr.ifremer.echobase.services.DbEditorService;
+import fr.ifremer.echobase.services.EchoBaseService;
+import fr.ifremer.echobase.services.EchoBaseServiceContext;
+import fr.ifremer.echobase.services.EchoBaseServiceContextImpl;
+import fr.ifremer.echobase.services.EchoBaseServiceFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.After;
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/EchoBaseDbCreatorTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -23,11 +23,16 @@
*/
package fr.ifremer.echobase.tools;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
import fr.ifremer.echobase.tools.loaders.AbstractLoaderTest;
import fr.ifremer.echobase.tools.loaders.EntityLoader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.junit.*;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
import org.nuiton.util.FileUtil;
import java.io.File;
@@ -57,15 +62,15 @@
AbstractLoaderTest.beforeClass();
msAccessFile = FileUtil.getFileFromPaths(TestHelper.getBasedir(),
- "src",
- "test",
- "private",
- "baracouda.mdb"
+ "src",
+ "test",
+ "private",
+ "baracouda.mdb"
);
if (!msAccessFile.exists()) {
if (log.isWarnEnabled()) {
log.warn("Could not find " + msAccessFile +
- ", the test will be skip.");
+ ", the test will be skip.");
}
}
Assume.assumeTrue(msAccessFile.exists());
@@ -90,9 +95,15 @@
@Test
public void createEntities() throws Exception {
+ List<EntityLoader<?>> loaders = creator.getEntityLoaders();
+
+ for (EntityLoader<?> loader : loaders) {
+ assertFileNotExists(loader, FileType.values());
+ }
+
creator.createEntities(msAccessFile, exportdir);
- List<EntityLoader<?>> loaders = creator.getReferenceLoaders();
for (EntityLoader<?> loader : loaders) {
+
if (loader.canGenerateNew()) {
assertFileExists(loader, FileType.NEW);
}
@@ -108,11 +119,16 @@
if (log.isInfoEnabled()) {
log.info("Generate echobase csv files in " +
- new File(exportdir, FileType.ECHOBASE.name().toLowerCase()));
+ new File(exportdir, FileType.ECHOBASE.name().toLowerCase()));
}
+ List<EntityLoader<?>> loaders = creator.getEntityLoaders();
+
+ for (EntityLoader<?> loader : loaders) {
+ assertFileNotExists(loader, FileType.values());
+ }
+
creator.createEchoBaseEntities(exportdir);
- List<EntityLoader<?>> loaders = creator.getReferenceLoaders();
for (EntityLoader<?> loader : loaders) {
assertFileExists(loader, FileType.ECHOBASE);
}
@@ -121,23 +137,28 @@
protected void assertFileExists(EntityLoader<?> loader,
FileType... fileTypes) throws IOException {
- assertFileExistsOrNot(loader, true, fileTypes);
+ assertFileExistsOrNot(loader, loader.getMeta(), true, fileTypes);
}
protected void assertFileNotExists(EntityLoader<?> loader,
FileType... fileTypes) throws IOException {
- assertFileExistsOrNot(loader, false, fileTypes);
+ assertFileExistsOrNot(loader, loader.getMeta(), false, fileTypes);
+
+ if (loader.getParentAssociationMeta() != null) {
+ assertFileExistsOrNot(loader, loader.getParentAssociationMeta(), false, fileTypes);
+ }
}
protected void assertFileExistsOrNot(EntityLoader<?> loader,
+ MetaFilenameAware meta,
boolean shouldExists,
FileType... fileTypes) throws IOException {
for (FileType fileType : fileTypes) {
File file = loader.getTableFile(
exportdir,
- loader.getEntityType(),
+ meta,
fileType
);
if (shouldExists) {
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -23,10 +23,16 @@
*/
package fr.ifremer.echobase.tools.loaders;
+import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.meta.AssociationMeta;
+import fr.ifremer.echobase.entities.meta.DbMeta;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
+import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.CsvImportResult;
import fr.ifremer.echobase.tools.AbstractToolTest;
+import fr.ifremer.echobase.tools.EchoBaseDbCreator;
import fr.ifremer.echobase.tools.FileType;
import fr.ifremer.echobase.tools.TestHelper;
import org.apache.commons.logging.Log;
@@ -42,6 +48,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.Set;
/**
* Abstract entity loader test.
@@ -69,21 +76,23 @@
protected final long expectedBaracoudaEntities;
+ protected EchoBaseDbCreator echoBaseDbCreator;
+
@BeforeClass
public static void beforeClass() {
AbstractToolTest.beforeClass();
msAccessFile = FileUtil.getFileFromPaths(TestHelper.getBasedir(),
- "src",
- "test",
- "private",
- "baracouda.mdb"
+ "src",
+ "test",
+ "private",
+ "baracouda.mdb"
);
if (!msAccessFile.exists()) {
if (log.isWarnEnabled()) {
log.warn("Could not find " + msAccessFile +
- ", the test will be skip.");
+ ", the test will be skip.");
}
}
Assume.assumeTrue(msAccessFile.exists());
@@ -102,7 +111,12 @@
// creates it
FileUtil.createDirectoryIfNecessary(exportdir);
+ // get loader
loader = newService(loaderType);
+
+ echoBaseDbCreator = newService(EchoBaseDbCreator.class);
+
+ loadDependencies();
}
protected AbstractLoaderTest(Class<L> loaderType,
@@ -162,25 +176,89 @@
importEntities(outFile, expectedNewEntities + expectedBaracoudaEntities);
}
- protected <T extends EntityLoader<?>> void loadEchobaseFile(Class<T> loaderType) throws IOException, TopiaException {
- T t = newService(loaderType);
+ protected void loadDependencies() throws IOException, TopiaException {
- EchoBaseEntityEnum entityType = t.getEntityType();
- if (log.isInfoEnabled()) {
- log.info("Load for " + entityType);
+ Set<MetaFilenameAware> dones = Sets.newHashSet();
+ for (EchoBaseEntityEnum dependency : loader.getDependencies()) {
+ loadDependencies(dependency, dones);
}
+ for (EchoBaseEntityEnum dependency : loader.getExtraDependencies()) {
+ loadDependencies(dependency, dones);
+ }
+ AssociationMeta parentAssociationMeta =
+ loader.getParentAssociationMeta();
+ if (parentAssociationMeta != null) {
+ loadDependencies(parentAssociationMeta.getSource(), dones);
+ }
+ }
- if (t.canGenerateNew()) {
+ private void loadDependencies(EchoBaseEntityEnum dependency,
+ Set<MetaFilenameAware> dones) throws IOException, TopiaException {
+ DbMeta dbMeta = serviceContext.getDbMeta();
+ TableMeta meta = dbMeta.getTable(dependency);
+ loadDependencies(meta, dones);
+ }
- // copy and load new stuff
- t.copyAndLoadEntities(exportdir, entityType, true, FileType.NEW);
+ private void loadDependencies(MetaFilenameAware meta,
+ Set<MetaFilenameAware> dones) throws IOException, TopiaException {
+
+
+ // mark it as load (to prevent reloading of it twice)
+ if (!dones.add(meta)) {
+
+ // was already loaded
+ if (log.isWarnEnabled()) {
+ log.warn("Skip already loaded type " + meta);
+ }
+ return;
}
- if (t.canGenerateBaracouda()) {
+ EntityLoader<? extends TopiaEntity> entityLoader =
+ echoBaseDbCreator.getEntityLoader(meta.getSource().getContract());
- // copy and load of baracouda stuff
- t.copyAndLoadEntities(exportdir, entityType, true, FileType.BARACOUDA);
+ if (meta instanceof AssociationMeta) {
+
+ // import association
+
+ loadDependencies(meta.getSource(), dones);
+ loadDependencies(((AssociationMeta) meta).getTarget(), dones);
+ entityLoader.copyAndLoadEntities(exportdir, meta, true, FileType.ASSOCIATION);
+
+ } else {
+
+ // load dependencies before
+ for (EchoBaseEntityEnum dependency : entityLoader.getDependencies()) {
+ loadDependencies(dependency, dones);
+ }
+ // load extra dependencies before
+ for (EchoBaseEntityEnum dependency : entityLoader.getExtraDependencies()) {
+ loadDependencies(dependency, dones);
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info("Load for " + meta);
+ }
+
+ if (entityLoader.canGenerateNew()) {
+
+ // copy and load new stuff
+ entityLoader.copyAndLoadEntities(exportdir, meta, true, FileType.NEW);
+ }
+
+ if (entityLoader.canGenerateBaracouda()) {
+
+ // copy and load of baracouda stuff
+ entityLoader.copyAndLoadEntities(exportdir, meta, true, FileType.BARACOUDA);
+ }
+
+ // load associations
+ AssociationMeta parentAssociationMeta =
+ entityLoader.getParentAssociationMeta();
+ if (parentAssociationMeta != null) {
+ loadDependencies(parentAssociationMeta, dones);
+ }
}
+
}
private TopiaDAO<E> getDAO() throws TopiaException {
@@ -189,7 +267,7 @@
private File getTableFile(FileType fileType) throws IOException {
- File outFile = loader.getTableFile(exportdir, loader.getEntityType(), fileType);
+ File outFile = loader.getTableFile(exportdir, loader.getMeta(), fileType);
return outFile;
}
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoaderTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/DataMetadataLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -38,23 +38,6 @@
super(DataMetadataLoader.class, 34, 29);
}
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // load DataType
- loadEchobaseFile(DataTypeLoader.class);
-
- // load ReferenceDatumType
- loadEchobaseFile(ReferenceDatumTypeLoader.class);
-
- // load ReferenceDatum
- loadEchobaseFile(ReferenceDatumLoader.class);
-
- // load CellMethod
- loadEchobaseFile(CellMethodLoader.class);
- }
-
@Test
public void testGenerateNewEntities() throws Exception {
generateNewEntities();
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/EchotypeLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -35,23 +35,9 @@
public class EchotypeLoaderTest extends AbstractLoaderTest<Echotype, EchotypeLoader> {
public EchotypeLoaderTest() {
- super(EchotypeLoader.class, 0, 49);
+ super(EchotypeLoader.class, 0, 215);
}
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // load EchotypeCategoryLoader
- loadEchobaseFile(EchotypeCategoryLoader.class);
-
- // load DepthStratum
- loadEchobaseFile(DepthStratumLoader.class);
-
- // load Species
- loadEchobaseFile(SpeciesLoader.class);
- }
-
@Test
public void testGenerateEntitiesFromBaracouda() throws Exception {
generateEntitiesFromBaracouda();
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.references.Localisation;
+import org.junit.Test;
+
+/**
+ * To test the {@link LocalisationLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class LocalisationLoaderTest extends AbstractLoaderTest<Localisation, LocalisationLoader> {
+
+ public LocalisationLoaderTest() {
+ super(LocalisationLoader.class, 0, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+
+ @Test
+ public final void testGenerateEchobaseFile() throws Exception {
+ generateEchobaseFile();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoaderTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/ReferenceDatumLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -38,14 +38,6 @@
super(ReferenceDatumLoader.class, 4, 3);
}
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // load ReferenceDatumTypes
- loadEchobaseFile(ReferenceDatumTypeLoader.class);
- }
-
@Test
public void testGenerateNewEntities() throws Exception {
generateNewEntities();
Modified: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TSParametersLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TSParametersLoaderTest.java 2011-12-08 05:33:38 UTC (rev 157)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TSParametersLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -38,17 +38,6 @@
super(TSParametersLoader.class, 0, 422);
}
- @Override
- public void setUp() throws Exception {
- super.setUp();
-
- // load AcousticInstrument
- loadEchobaseFile(AcousticInstrumentLoader.class);
-
- // load Species
- loadEchobaseFile(SpeciesLoader.class);
- }
-
@Test
public void testGenerateEntitiesFromBaracouda() throws Exception {
generateEntitiesFromBaracouda();
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransectLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransectLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransectLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.data.Transect;
+import org.junit.Test;
+
+/**
+ * To test the {@link TransectLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class TransectLoaderTest extends AbstractLoaderTest<Transect, TransectLoader> {
+
+ public TransectLoaderTest() {
+ super(TransectLoader.class, 0, 42);
+ }
+
+ @Test
+ public void testGenerateEntitiesFromBaracouda() throws Exception {
+ generateEntitiesFromBaracouda();
+ }
+
+ @Test
+ public final void testGenerateEchobaseFile() throws Exception {
+ generateEchobaseFile();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransectLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransitLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransitLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransitLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.data.Transit;
+import org.junit.Test;
+
+/**
+ * To test the {@link TransitLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class TransitLoaderTest extends AbstractLoaderTest<Transit, TransitLoader> {
+
+ public TransitLoaderTest() {
+ super(TransitLoader.class, 0, 42);
+ }
+
+ @Test
+ public void testGenerateEntitiesFromBaracouda() throws Exception {
+ generateEntitiesFromBaracouda();
+ }
+
+ @Test
+ public final void testGenerateEchobaseFile() throws Exception {
+ generateEchobaseFile();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/TransitLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.references.VesselType;
+import org.junit.Test;
+
+/**
+ * To test the {@link VesselTypeLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class VesselTypeLoaderTest extends AbstractLoaderTest<VesselType, VesselTypeLoader> {
+
+ public VesselTypeLoaderTest() {
+ super(VesselTypeLoader.class, 0, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+
+ @Test
+ public final void testGenerateEchobaseFile() throws Exception {
+ generateEchobaseFile();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VesselTypeLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderTest.java 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1,50 @@
+/*
+ * #%L
+ * EchoBase :: Tools
+ *
+ * $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.tools.loaders;
+
+import fr.ifremer.echobase.entities.data.Voyage;
+import org.junit.Test;
+
+/**
+ * To test the {@link VoyageLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class VoyageLoaderTest extends AbstractLoaderTest<Voyage, VoyageLoader> {
+
+ public VoyageLoaderTest() {
+ super(VoyageLoader.class, 0, 42);
+ }
+
+ @Test
+ public void testGenerateEntitiesFromBaracouda() throws Exception {
+ generateEntitiesFromBaracouda();
+ }
+
+ @Test
+ public final void testGenerateEchobaseFile() throws Exception {
+ generateEchobaseFile();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/VoyageLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1 @@
+maxLatitude;minLatitude;maxLongitude;minLongitude;seafloorSubstrate;bathymetre
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-VesselType.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-VesselType.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-VesselType.csv 2011-12-08 05:55:17 UTC (rev 158)
@@ -0,0 +1 @@
+name
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-VesselType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r157 - in trunk/echobase-services/src: main/java/fr/ifremer/echobase/services test/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 08 Dec '11
by tchemit@users.forge.codelutin.com 08 Dec '11
08 Dec '11
Author: tchemit
Date: 2011-12-08 06:33:38 +0100 (Thu, 08 Dec 2011)
New Revision: 157
Url: http://forge.codelutin.com/repositories/revision/echobase/157
Log:
- Use new MetaFilenameAware api
- impact model changes
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceTest.java
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 2011-12-08 05:25:25 UTC (rev 156)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-12-08 05:33:38 UTC (rev 157)
@@ -23,18 +23,22 @@
*/
package fr.ifremer.echobase.services;
+import com.google.common.base.Charsets;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.EntityModificationLog;
+import fr.ifremer.echobase.entities.meta.AssociationMeta;
import fr.ifremer.echobase.entities.meta.ColumnMeta;
import fr.ifremer.echobase.entities.meta.DbMeta;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.models.CsvModelUtil;
+import fr.ifremer.echobase.services.models.EntityAssociationCsvModel;
import fr.ifremer.echobase.services.models.EntityCsvModel;
-import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -44,9 +48,16 @@
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.beans.BeanMonitor;
import org.nuiton.util.beans.PropertyDiff;
-import org.nuiton.util.csv.*;
+import org.nuiton.util.csv.Export;
+import org.nuiton.util.csv.ExportableColumn;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportExportModel;
+import org.nuiton.util.csv.ImportableColumn;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -102,10 +113,11 @@
public <E extends TopiaEntity> List<E> getEntities(TableMeta tableMeta,
Pager pager,
String sidx,
- Boolean ascendantOrder) {
+ Boolean ascendantOrder,
+ String extraWhereQuery) {
List<E> result;
- EchoBaseEntityEnum entityEnum = tableMeta.getEntityEnum();
+ EchoBaseEntityEnum entityEnum = tableMeta.getSource();
try {
TopiaDAO<E> dao = getDAO(entityEnum);
@@ -114,6 +126,8 @@
countQuery.addSelect("count(*)");
int count = dao.countByQuery(countQuery);
+ TopiaQuery query = dao.createQuery("e");
+
if (pager != null) {
pager.setRecords(count);
pager.computeIndexesAndPageCount();
@@ -130,7 +144,7 @@
log.debug("pageCount= " + pager.getPageCount());
}
- TopiaQuery query = dao.createQuery("e");
+
if (StringUtils.isNotEmpty(sidx)) {
if (ascendantOrder) {
query.addOrder(sidx);
@@ -139,12 +153,16 @@
}
}
query.setLimit(from, to - 1);
- result = dao.findAllByQuery(query);
+ if (StringUtils.isNotEmpty(extraWhereQuery)) {
+ query.addWhere(extraWhereQuery);
+ }
} else {
- // Get all
- result = dao.findAll();
+ if (StringUtils.isNotEmpty(extraWhereQuery)) {
+ query.addWhere(extraWhereQuery);
+ }
}
+ result = dao.findAllByQuery(query);
return result;
} catch (TopiaException eee) {
throw new EchoBaseTechnicalException("Could not obtain data", eee);
@@ -160,9 +178,10 @@
TableMeta meta = getTableMeta(entityType);
List<TopiaEntity> entities = getEntities(meta,
- pager,
- sidx,
- ascendantOrder
+ pager,
+ sidx,
+ ascendantOrder,
+ null
);
Map<?, ?>[] rows = new Map[entities.size()];
@@ -180,7 +199,7 @@
public Map<?, ?> getData(TableMeta tableMeta, String topiaId) {
- EchoBaseEntityEnum entityEnum = tableMeta.getEntityEnum();
+ EchoBaseEntityEnum entityEnum = tableMeta.getSource();
try {
TopiaDAO<?> dao = getDAO(entityEnum.getContract());
TopiaEntity entity = dao.findByTopiaId(topiaId);
@@ -218,10 +237,10 @@
}
saveEntity(meta,
- "Modification utilisateur",
- entity,
- user,
- false
+ "Modification utilisateur",
+ entity,
+ user,
+ false
);
commitTransaction("Could not commit transaction");
}
@@ -237,21 +256,20 @@
String messagePrefix = "Import du fichier " + importFileName + " le " + newDate();
CsvImportResult result = CsvImportResult.newResult(entityType,
- importFileName,
- createIfNotFound);
+ importFileName,
+ createIfNotFound);
BufferedReader bf = new BufferedReader(new FileReader(importFile));
try {
-
Import<TopiaEntity> importer = Import.newImport(csvModel, bf);
try {
for (TopiaEntity entity : importer) {
boolean create = saveEntity(meta,
- messagePrefix,
- entity,
- user,
- createIfNotFound
+ messagePrefix,
+ entity,
+ user,
+ createIfNotFound
);
if (create) {
@@ -279,12 +297,10 @@
return result;
}
- public String exportDatas(EchoBaseEntityEnum entityType) {
+ public String exportDatas(TableMeta tableMeta) {
- TableMeta tableMeta = getTableMeta(entityType);
+ List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, null);
- List<TopiaEntity> datas = getEntities(tableMeta, null, null, null);
-
ImportExportModel<TopiaEntity> model = buildForExport(tableMeta);
Export<TopiaEntity> export = Export.newExport(model, datas);
@@ -296,38 +312,49 @@
}
}
- public void exportDatas(EchoBaseEntityEnum entityType, File file) {
+ public String exportDatas(AssociationMeta associationMeta) {
- TableMeta tableMeta = getTableMeta(entityType);
+ TableMeta tableMeta = getTableMeta(associationMeta.getSource());
- List<TopiaEntity> datas = getEntities(tableMeta, null, null, null);
+ List<TopiaEntity> datas = getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0");
- ImportExportModel<TopiaEntity> model = buildForExport(tableMeta);
+ ImportExportModel<TopiaEntity> model = buildForExport(associationMeta);
Export<TopiaEntity> export = Export.newExport(model, datas);
try {
- InputStream stream = export.startExport();
- try {
- Writer writer = new FileWriter(file);
- try {
- IOUtils.copy(
- stream,
- writer,
- "utf-8"
+ return export.startExportAsString();
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException("Can not export datas", eee);
+ }
+ }
- );
- } finally {
- writer.close();
- }
- } finally {
- stream.close();
- }
+ public void exportDatas(TableMeta tableMeta, File file) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Export table " + tableMeta + " to " + file);
+ }
+ try {
+ String content = exportDatas(tableMeta);
+ FileUtils.write(file, content, Charsets.UTF_8.name());
} catch (Exception eee) {
throw new EchoBaseTechnicalException("Can not export datas", eee);
}
}
+ public void exportDatas(AssociationMeta associationMeta, File file) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Export association " + associationMeta + " to " + file);
+ }
+ try {
+ String content = exportDatas(associationMeta);
+ FileUtils.write(file, content, Charsets.UTF_8.name());
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException("Can not export datas", eee);
+ }
+ }
+
public boolean saveEntity(TableMeta tableMeta,
String messagePrefix,
TopiaEntity entity,
@@ -339,7 +366,7 @@
String id = entity.getTopiaId();
try {
- TopiaDAO<TopiaEntity> dao = getDAO(tableMeta.getEntityEnum());
+ TopiaDAO<TopiaEntity> dao = getDAO(tableMeta.getSource());
TopiaEntity entityToSave;
@@ -446,9 +473,9 @@
}
}
buffer.append(String.format("\n Propriété '%s', ancienne valeur : %s, nouvelle valeur : %s",
- propertyName,
- sourceValue,
- targetValue
+ propertyName,
+ sourceValue,
+ targetValue
));
}
}
@@ -457,7 +484,7 @@
getDAO(EntityModificationLog.class);
dao.create(
- EntityModificationLog.PROPERTY_ENTITY_TYPE, tableMeta.getEntityEnum().name(),
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, tableMeta.getSource().name(),
EntityModificationLog.PROPERTY_ENTITY_ID, topiaId,
EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
@@ -491,6 +518,16 @@
return row;
}
+ public <E extends TopiaEntity> EntityCsvModel<E> buildForImport(MetaFilenameAware meta) {
+ if (meta instanceof AssociationMeta) {
+ return buildForImport((AssociationMeta) meta);
+ }
+ if (meta instanceof TableMeta) {
+ return buildForImport((TableMeta) meta);
+ }
+ throw new IllegalStateException("Can't do a thing with " + meta);
+ }
+
public <E extends TopiaEntity> EntityCsvModel<E> buildForImport(TableMeta meta) {
EntityCsvModel<E> model = EntityCsvModel.newModel(
@@ -514,6 +551,15 @@
return model;
}
+ public <E extends TopiaEntity> ImportExportModel<E> buildForExport(AssociationMeta associationMeta) {
+
+ ImportExportModel<E> model = EntityAssociationCsvModel.newModel(
+ getConfiguration().getCsvSeparator(),
+ associationMeta
+ );
+ return model;
+ }
+
public <E extends TopiaEntity> ImportExportModel<E> buildForExport(TableMeta meta) {
EntityCsvModel<E> model = EntityCsvModel.newModel(
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-08 05:25:25 UTC (rev 156)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-08 05:33:38 UTC (rev 157)
@@ -26,23 +26,19 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import fr.ifremer.echobase.EchoBaseTechnicalException;
-import fr.ifremer.echobase.entities.EchoBaseDAOHelper;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.EchoBaseUser;
import fr.ifremer.echobase.entities.EntitiesUtil;
import fr.ifremer.echobase.entities.meta.AssociationMeta;
+import fr.ifremer.echobase.entities.meta.MetaFilenameAware;
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.models.EntityAssociationCsvModel;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.topia.persistence.TopiaDAO;
import org.nuiton.topia.persistence.TopiaEntity;
-import org.nuiton.util.FileUtil;
-import org.nuiton.util.csv.Export;
import org.nuiton.util.csv.Import;
import org.nuiton.util.csv.ImportExportModel;
@@ -81,14 +77,14 @@
ZipFile zipFile = new ZipFile(file);
try {
- FileEntry[] entries = getEntries();
+ MetaFilenameAware[] entries = getEntries();
List<String> missingEntries = Lists.newArrayList();
- Map<FileEntry, ZipEntry> entriestoConsume = Maps.newLinkedHashMap();
+ Map<MetaFilenameAware, ZipEntry> entriestoConsume = Maps.newLinkedHashMap();
// check that all mandatories
- for (FileEntry entry : entries) {
+ for (MetaFilenameAware entry : entries) {
String filename = entry.getFilename();
ZipEntry zipEntry = zipFile.getEntry(filename);
@@ -108,10 +104,10 @@
}
// consume all found entries
- for (Map.Entry<FileEntry, ZipEntry> entry :
+ for (Map.Entry<MetaFilenameAware, ZipEntry> entry :
entriestoConsume.entrySet()) {
- FileEntry entryDef = entry.getKey();
+ MetaFilenameAware entryDef = entry.getKey();
ZipEntry value = entry.getValue();
CsvImportResult csvResult = CsvImportResult.newResult(
entryDef.getSource(),
@@ -145,25 +141,25 @@
*/
public File exportDb(String fileName) {
File tempDirectory = new File(FileUtils.getTempDirectory(),
- "echobase-exportDb_" + System.nanoTime());
+ "echobase-exportDb_" + System.nanoTime());
tempDirectory.deleteOnExit();
File zipFile = new File(tempDirectory, fileName + ".zip");
- FileEntry[] entries = getEntries();
- for (FileEntry entry : entries) {
+ DbEditorService service = getDbEditorService();
- EchoBaseEntityEnum source = entry.getSource();
+ MetaFilenameAware[] entries = getEntries();
+ for (MetaFilenameAware entry : entries) {
File entryFile = new File(tempDirectory, entry.getFilename());
- List<TopiaEntity> entities = entry.getDatas(getTransaction());
- if (log.isInfoEnabled()) {
- log.info("Export " + entities + " entities of type " +
- source + " to " + entryFile);
+ if (entry instanceof AssociationMeta) {
+ AssociationMeta associationMeta = (AssociationMeta) entry;
+ service.exportDatas(associationMeta, entryFile);
+ } else {
+ TableMeta meta = (TableMeta) entry;
+ service.exportDatas(meta, entryFile);
}
-
- exportFile(entry, entryFile, entities);
}
compressZipFile(zipFile, tempDirectory);
@@ -171,22 +167,17 @@
return zipFile;
}
- protected void importFile(FileEntry entry,
- Reader reader,
- CsvImportResult csvResult) throws IOException {
+ public void importFile(MetaFilenameAware entry,
+ Reader reader,
+ CsvImportResult csvResult) throws IOException {
- EchoBaseEntityEnum source = entry.getSource();
-
DbEditorService service = getDbEditorService();
- TableMeta tableMeta = getTableMeta(source);
+ if (entry instanceof AssociationMeta) {
- if (entry.isAssociation()) {
-
// load a association input
- AssociationMeta associationMeta =
- tableMeta.getAssociations(entry.getPropertyName());
+ AssociationMeta associationMeta = (AssociationMeta) entry;
ImportExportModel<TopiaEntity> model =
EntityAssociationCsvModel.newModel(
@@ -200,68 +191,37 @@
// normal entity table import
+ TableMeta tableMeta = (TableMeta) entry;
+
ImportExportModel<TopiaEntity> model = service.buildForImport(tableMeta);
importEntities(tableMeta, model, csvResult, reader);
}
}
- protected void exportFile(FileEntry entry,
- File entryFile,
- List<TopiaEntity> entities) {
- ImportExportModel<TopiaEntity> model;
- TableMeta meta = getTableMeta(entry.getSource());
+ public MetaFilenameAware[] getEntries() {
- if (entry.isAssociation()) {
- AssociationMeta associationMeta =
- meta.getAssociations(entry.getPropertyName());
+ List<MetaFilenameAware> result = Lists.newArrayList();
- model = EntityAssociationCsvModel.newModel(
- getConfiguration().getCsvSeparator(),
- associationMeta
- );
-
- } else {
-
- model = getDbEditorService().buildForExport(meta);
- }
-
- Export<TopiaEntity> export = Export.newExport(model, entities);
-
- try {
- String entryFileContent = export.startExportAsString();
- FileUtil.writeString(entryFile, entryFileContent, "utf-8");
- } catch (Exception eee) {
- throw new EchoBaseTechnicalException("Can not export datas", eee);
- }
+ addEntries(result, EntitiesUtil.getReferenceTypesForCopy());
+ addEntries(result, EntitiesUtil.getDataTypesforCopy());
+ return result.toArray(new MetaFilenameAware[result.size()]);
}
-
protected TableMeta getTableMeta(EchoBaseEntityEnum tableName) {
return getDbEditorService().getTableMeta(tableName);
}
- public FileEntry[] getEntries() {
-
- List<FileEntry> result = Lists.newArrayList();
-
- addEntries(result, EntitiesUtil.getReferenceTypesForCopy());
- addEntries(result, EntitiesUtil.getDataTypesforCopy());
- return result.toArray(new FileEntry[result.size()]);
- }
-
- protected void addEntries(List<FileEntry> result, EchoBaseEntityEnum[] types) {
+ protected void addEntries(List<MetaFilenameAware> result, EchoBaseEntityEnum[] types) {
for (EchoBaseEntityEnum type : types) {
TableMeta tableMeta = getTableMeta(type);
+ result.add(tableMeta);
- result.add(FileEntry.newEntry(tableMeta));
-
for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
- result.add(FileEntry.newEntry(associationMeta));
+ result.add(associationMeta);
}
-
}
}
@@ -272,7 +232,7 @@
return dbEditorService;
}
- public void importEntities(TableMeta meta,
+ protected void importEntities(TableMeta meta,
ImportExportModel<TopiaEntity> csvModel,
CsvImportResult result,
Reader reader) {
@@ -281,20 +241,20 @@
try {
- TopiaDAO<TopiaEntity> dao = getDAO(meta.getEntityEnum());
+ TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource());
for (TopiaEntity entity : importer) {
TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID,
- entity.getTopiaId());
+ entity.getTopiaId());
meta.copy(entity, entityToSave);
result.incrementsNumberUpdated();
}
} catch (Exception eee) {
- throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getEntityEnum(), eee);
+ throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getSource(), eee);
} finally {
importer.close();
@@ -312,14 +272,13 @@
EchoBaseEntityEnum targetType = meta.getTarget();
Import<E> importer = Import.newImport(csvModel, reader);
- TopiaDAO<TopiaEntity> sourceDAO = getDAO(sourceType);
+ TopiaDAO<E> sourceDAO = getDAO(sourceType);
TopiaDAO<TopiaEntity> targetDAO = getDAO(targetType);
try {
for (E row : importer) {
- TopiaEntity entityToSave =
- sourceDAO.findByTopiaId(row.getTopiaId());
+ E entityToSave = sourceDAO.findByTopiaId(row.getTopiaId());
// check entity exits ?
if (entityToSave == null) {
@@ -350,92 +309,4 @@
}
}
- public static class FileEntry {
-
- public static FileEntry newEntry(TableMeta tableMeta) {
- return newEntry(tableMeta.getEntityEnum(), null, null);
- }
-
- public static FileEntry newEntry(AssociationMeta tableMeta) {
- return newEntry(tableMeta.getSource(), tableMeta.getTarget(), tableMeta.getName());
- }
-
- public static FileEntry newEntry(EchoBaseEntityEnum source,
- EchoBaseEntityEnum target,
- String propertyName) {
- return new FileEntry(source, target, propertyName);
- }
-
- final EchoBaseEntityEnum source;
-
- final EchoBaseEntityEnum target;
-
- final String propertyName;
-
- protected CsvImportResult importResult;
-
- FileEntry(EchoBaseEntityEnum source,
- EchoBaseEntityEnum target,
- String propertyName) {
-
- this.source = source;
- this.target = target;
- this.propertyName = propertyName;
- }
-
- public EchoBaseEntityEnum getSource() {
- return source;
- }
-
- public EchoBaseEntityEnum getTarget() {
- return target;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public boolean isAssociation() {
- return target != null && propertyName != null;
- }
-
- public String getFilename() {
- String result;
- if (isAssociation()) {
- result = source.name() + "_" + propertyName + "_" + target.name();
- } else {
- result = source.name();
- }
- return result + ".csv";
- }
-
- public CsvImportResult getImportResult() {
- return importResult;
- }
-
- public void setImportResult(CsvImportResult importResult) {
- this.importResult = importResult;
- }
-
- public List<TopiaEntity> getDatas(TopiaContext transaction) {
-
- try {
- TopiaDAO<TopiaEntity> dao = EchoBaseDAOHelper.<TopiaEntity, TopiaDAO<TopiaEntity>>getDAO(transaction, (Class<TopiaEntity>) source.getContract());
-
- List<TopiaEntity> result;
- if (isAssociation()) {
-
- // filter only entities with some data in the association
- TopiaQuery query = dao.createQuery("e");
- query.addWhere("size(e." + propertyName + ") > 0");
- result = dao.findAllByQuery(query);
- } else {
- result = dao.findAll();
- }
- return result;
- } catch (TopiaException eee) {
- throw new EchoBaseTechnicalException("Could not obtain datas for " + this, eee);
- }
- }
- }
}
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceTest.java 2011-12-08 05:25:25 UTC (rev 156)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/EmbeddedApplicationServiceTest.java 2011-12-08 05:33:38 UTC (rev 157)
@@ -81,7 +81,7 @@
transactionDest = rootContextDest.beginTransaction();
VoyageDAO voyageDAO = EchoBaseDAOHelper.getVoyageDAO(transactionDest);
Object stringDefaultValue = MockEntityVisitorCreator.DefaultSimpleValues.STRING.getDefaultValue();
- Voyage voyageReplicated = voyageDAO.findByVoyageName((String) stringDefaultValue);
+ Voyage voyageReplicated = voyageDAO.findByName((String) stringDefaultValue);
// assert voyage is in new base
assertNotNull(voyageReplicated);
1
0
r156 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models
by tchemit@users.forge.codelutin.com 08 Dec '11
by tchemit@users.forge.codelutin.com 08 Dec '11
08 Dec '11
Author: tchemit
Date: 2011-12-08 06:25:25 +0100 (Thu, 08 Dec 2011)
New Revision: 156
Url: http://forge.codelutin.com/repositories/revision/echobase/156
Log:
fix AssociationValueParserFormatter parser
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java 2011-12-08 05:24:55 UTC (rev 155)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java 2011-12-08 05:25:25 UTC (rev 156)
@@ -89,7 +89,7 @@
Collection<E> result = Lists.newArrayList();
if (StringUtils.isNotBlank(value)) {
- String[] ids = value.split("|");
+ String[] ids = value.split("\\|");
for (String id : ids) {
E association = ObjectUtil.newInstance(entityType);
association.setTopiaId(id);
1
0