Echobase-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- 1820 discussions
15 Dec '11
Author: tchemit
Date: 2011-12-15 21:46:14 +0100 (Thu, 15 Dec 2011)
New Revision: 195
Url: http://forge.codelutin.com/repositories/revision/echobase/195
Log:
- reference model for catches
- remove toLowerCase in import
Added:
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationEventLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoaderTest.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoaderTest.java
trunk/echobase-tools/src/test/resources/csv/new/input-BiometryScale.csv
trunk/echobase-tools/src/test/resources/csv/new/input-GearMetadata.csv
trunk/echobase-tools/src/test/resources/csv/new/input-OperationEvent.csv
trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv
trunk/echobase-tools/src/test/resources/csv/new/input-SampleDataType.csv
trunk/echobase-tools/src/test/resources/csv/new/input-SampleType.csv
trunk/echobase-tools/src/test/resources/csv/new/input-SexCategory.csv
trunk/echobase-tools/src/test/resources/csv/new/input-SizeCategory.csv
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
trunk/echobase-entities/src/main/xmi/echobase.zargo
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.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/CellLoaderTest.java
trunk/echobase-tools/src/test/resources/csv/new/input-DataMetadata.csv
trunk/src/doc/reunions/reunion-2011-12-14.txt
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -73,7 +73,7 @@
import fr.ifremer.echobase.entities.references.ReferencingMethod;
import fr.ifremer.echobase.entities.references.SampleDataType;
import fr.ifremer.echobase.entities.references.SampleType;
-import fr.ifremer.echobase.entities.references.SexeCategory;
+import fr.ifremer.echobase.entities.references.SexCategory;
import fr.ifremer.echobase.entities.references.SizeCategory;
import fr.ifremer.echobase.entities.references.Species;
import fr.ifremer.echobase.entities.references.SpeciesCategory;
@@ -211,8 +211,8 @@
// SampleType decorator
registerJXPathDecorator(locale, SampleType.class, "${name}$s - level ${level}$s");
- // SexeCategory decorator
- registerJXPathDecorator(locale, SexeCategory.class, "${name}$s");
+ // SexCategory decorator
+ registerJXPathDecorator(locale, SexCategory.class, "${name}$s");
// SizeCategory decorator
registerJXPathDecorator(locale, SizeCategory.class, "${name}$s");
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseFunctions.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -34,8 +34,10 @@
import fr.ifremer.echobase.entities.references.DepthStratum;
import fr.ifremer.echobase.entities.references.EchotypeCategory;
import fr.ifremer.echobase.entities.references.Mission;
+import fr.ifremer.echobase.entities.references.OperationEvent;
import fr.ifremer.echobase.entities.references.ReferenceDatum;
import fr.ifremer.echobase.entities.references.ReferenceDatumType;
+import fr.ifremer.echobase.entities.references.SampleDataType;
import fr.ifremer.echobase.entities.references.Species;
import fr.ifremer.echobase.entities.references.Vessel;
import org.nuiton.topia.persistence.TopiaEntity;
@@ -55,7 +57,7 @@
public static final Function<Voyage, String> VOYAGE_NAME = new Function<Voyage, String>() {
@Override
public String apply(Voyage input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
@@ -69,14 +71,14 @@
public static final Function<Vessel, String> VESSEL_NAME = new Function<Vessel, String>() {
@Override
public String apply(Vessel input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<AcousticInstrument, String> ACOUSTIC_INSTRUMENT_ID = new Function<AcousticInstrument, String>() {
@Override
public String apply(AcousticInstrument input) {
- return input.getId().toLowerCase();
+ return input.getId();
}
};
@@ -97,46 +99,46 @@
public static final Function<ReferenceDatumType, String> REFERENCE_DATUM_TYPE_NAME = new Function<ReferenceDatumType, String>() {
@Override
public String apply(ReferenceDatumType input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<ReferenceDatum, String> REFERENCE_DATUM_ID = new Function<ReferenceDatum, String>() {
@Override
public String apply(ReferenceDatum input) {
- return input.getId().toLowerCase();
+ return input.getId();
}
};
public static final Function<Mission, String> MISSION_NAME = new Function<Mission, String>() {
@Override
public String apply(Mission input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<AreaOfOperation, String> AREA_OF_OPERATION_NAME = new Function<AreaOfOperation, String>() {
@Override
public String apply(AreaOfOperation input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<DataType, String> DATA_TYPE_NAME = new Function<DataType, String>() {
@Override
public String apply(DataType input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<CellMethod, String> CELL_METHOD_NAME = new Function<CellMethod, String>() {
@Override
public String apply(CellMethod input) {
- return input.getName().toLowerCase();
+ return input.getName();
}
};
public static final Function<DataProcessing, String> DATA_PROCESSING_ID = new Function<DataProcessing, String>() {
@Override
public String apply(DataProcessing input) {
- return input.getId().toLowerCase();
+ return input.getId();
}
};
@@ -153,20 +155,33 @@
return input.getTopiaId();
}
};
- public static final Function<File,String> FILE_NAME = new Function<File, String>() {
+ public static final Function<File, String> FILE_NAME = new Function<File, String>() {
@Override
public String apply(File input) {
return input.getName();
}
};
+ public static final Function<SampleDataType, String> SAMPLE_DATA_TYPE_RAPRI_CODE = new Function<SampleDataType, String>() {
+ @Override
+ public String apply(SampleDataType input) {
+ return String.valueOf(input.getRaptriBiometryDataType());
+ }
+ };
+ public static final Function<OperationEvent, String> OPERATION_EVENT_NAME = new Function<OperationEvent, String>() {
+ @Override
+ public String apply(OperationEvent input) {
+ return input.getName();
+ }
+ };
+
public static Function<Map<String, Object>, String> newRowFunction(final String key) {
return new Function<Map<String, Object>, String>() {
@Override
public String apply(Map<String, Object> input) {
- String id = input.get(key).toString().toLowerCase();
+ String id = input.get(key).toString();
return id;
}
};
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-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -93,7 +93,7 @@
*/
public static EchoBaseEntityEnum[] getReferenceTypes() {
List<EchoBaseEntityEnum> result = Lists.newLinkedList();
- result.add(EchoBaseEntityEnum.SexeCategory);
+ result.add(EchoBaseEntityEnum.SexCategory);
result.add(EchoBaseEntityEnum.AgeCategory);
result.add(EchoBaseEntityEnum.SizeCategory);
result.add(EchoBaseEntityEnum.MeasureType);
@@ -119,6 +119,7 @@
result.add(EchoBaseEntityEnum.OperationType);
result.add(EchoBaseEntityEnum.MeasurementMetadata);
result.add(EchoBaseEntityEnum.SampleDataType);
+ result.add(EchoBaseEntityEnum.BiometryScale);
result.add(EchoBaseEntityEnum.SampleType);
result.add(EchoBaseEntityEnum.Vessel);
result.add(EchoBaseEntityEnum.Echotype);
@@ -148,7 +149,7 @@
List<EchoBaseEntityEnum> result = Lists.newLinkedList();
result.add(EchoBaseEntityEnum.Strata);
- result.add(EchoBaseEntityEnum.SexeCategory);
+ result.add(EchoBaseEntityEnum.SexCategory);
result.add(EchoBaseEntityEnum.AgeCategory);
result.add(EchoBaseEntityEnum.SizeCategory);
result.add(EchoBaseEntityEnum.Species);
@@ -170,6 +171,8 @@
result.add(EchoBaseEntityEnum.CellMethod);
result.add(EchoBaseEntityEnum.CellType);
result.add(EchoBaseEntityEnum.DataMetadata);
+ result.add(EchoBaseEntityEnum.OperationMetadata);
+ result.add(EchoBaseEntityEnum.GearMetadata);
return result.toArray(new EchoBaseEntityEnum[result.size()]);
}
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-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-12-15 20:46:14 UTC (rev 195)
@@ -22,6 +22,7 @@
echobase.common.binSizePingAxis=
echobase.common.binSizeRangeAxis=
echobase.common.binUnitsPingAxis=
+echobase.common.biometryScale=
echobase.common.calendar=
echobase.common.calibration=calibration
echobase.common.callsign=
@@ -123,11 +124,15 @@
echobase.common.maxLatitude=
echobase.common.maxLongitude=
echobase.common.meaning=
+echobase.common.meaningEn=
+echobase.common.meaningFr=
echobase.common.measureType=
echobase.common.measurementBinSize=
echobase.common.measurementMetadata=
echobase.common.measurementUnit=
echobase.common.metadata=metadata
+echobase.common.metadataGroup=
+echobase.common.metadataType=
echobase.common.minLatitude=
echobase.common.minLongitude=
echobase.common.mission=mission
@@ -153,6 +158,7 @@
echobase.common.pingDutyCycle=
echobase.common.platform=
echobase.common.positive=
+echobase.common.precision=
echobase.common.principalInvestigator=Chercheur
echobase.common.principalInvestigatorEmail=Courriel du chercheur
echobase.common.processingDescription=
@@ -161,6 +167,7 @@
echobase.common.processingTemplate=
echobase.common.project=Projet
echobase.common.qualityDataFlagValues=
+echobase.common.raptriBiometryDataType=
echobase.common.referenceDatum=referenceDatum
echobase.common.referenceDatumType=
echobase.common.referencingMethod=
@@ -176,7 +183,7 @@
echobase.common.sampling=
echobase.common.scaleFactor=
echobase.common.seafloorSubstrate=
-echobase.common.sexeCategory=
+echobase.common.sexCategory=
echobase.common.sizeCategory=
echobase.common.soundSpeedCalculations=
echobase.common.sounderConstant=
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -123,37 +123,10 @@
ZipFile zipFile = new ZipFile(file);
try {
-// MetaFilenameAware[] entries = getEntries();
-//
-// List<String> missingEntries = Lists.newArrayList();
Map<MetaFilenameAware, ZipEntry> entriestoConsume = discoverEntries(
file, zipFile);
-// // check that all mandatories
-// for (MetaFilenameAware entry : entries) {
-// String filename = entry.getFilename();
-// ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename);
-//
-// if (zipEntry == null) {
-// missingEntries.add(filename);
-// } else {
-// entriestoConsume.put(entry, zipEntry);
-// }
-// }
-//
-// if (!missingEntries.isEmpty()) {
-//
-// 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);
-// }
-
int size = entriestoConsume.size();
model.setNbSteps(size + 1);
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,67 @@
+/*
+ * #%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.EchoBaseFunctions;
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.BiometryScale;
+import fr.ifremer.echobase.entities.references.SampleDataType;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+import java.util.List;
+
+/**
+ * {@link BiometryScale} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class BiometryScaleLoader extends EntityLoader<BiometryScale> {
+
+ public BiometryScaleLoader() {
+ super(BiometryScale.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<BiometryScale> createCsvImportModel(TableMeta meta) {
+
+ List<SampleDataType> sampleDataTypes =
+ getEntities(SampleDataType.class);
+
+ EntityCsvModel<BiometryScale> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ raptriBiometryDataType;ScaleCode;ScaleMeaningEng;ScaleMeaningFr
+ */
+ model.addForeignKeyForImport("raptriBiometryDataType", BiometryScale.PROPERTY_SAMPLE_DATA_TYPE, SampleDataType.class, sampleDataTypes, EchoBaseFunctions.SAMPLE_DATA_TYPE_RAPRI_CODE);
+ model.addDefaultColumn("ScaleCode",BiometryScale.PROPERTY_CODE, int.class);
+ model.newMandatoryColumn("ScaleMeaningEng",BiometryScale.PROPERTY_MEANING_EN);
+ model.newMandatoryColumn("ScaleMeaningFr",BiometryScale.PROPERTY_MEANING_FR);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoader.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/CellLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/CellLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -246,9 +246,9 @@
elementaryCellType = cellTypeDAO.findById("Elementary");
cellTypesByDepthStratumId = Maps.newTreeMap();
- cellTypesByDepthStratumId.put(CLAS_REGION.toLowerCase(),
+ cellTypesByDepthStratumId.put(CLAS_REGION,
cellTypeDAO.findById(REGION_PREFIX + CLAS_REGION));
- cellTypesByDepthStratumId.put(SURF_REGION.toLowerCase(),
+ cellTypesByDepthStratumId.put(SURF_REGION,
cellTypeDAO.findById(REGION_PREFIX + SURF_REGION));
Preconditions.checkNotNull(surfaceMetadata);
@@ -269,25 +269,26 @@
@Override
protected void importBaracoudaEntities(Database db) throws IOException, TopiaException {
- String processingId = dataProcessingId.toLowerCase();
-
loadDatas();
- DataProcessing dataProcessing = dataProcessingsById.get(processingId);
-
Preconditions.checkNotNull(tranchesByProcessingId);
Preconditions.checkNotNull(valeurEchosByProcessingId);
Preconditions.checkNotNull(scenarioByProcessingId);
Preconditions.checkNotNull(esduByProcessingId);
Preconditions.checkNotNull(trancheDefById);
Preconditions.checkNotNull(eiConfigurationByProcessingId);
+ Preconditions.checkNotNull(dataProcessingsById);
+ DataProcessing dataProcessing = dataProcessingsById.get(dataProcessingId);
+ Preconditions.checkNotNull(dataProcessing, "Could not find data processing with id " + dataProcessingId + " between " + dataProcessingsById.keySet());
+
// obtain acoustic dataMetadata for this data processing
DataMetadataDAO dataMetadataDAO =
EchoBaseDAOHelper.getDataMetadataDAO(getTransaction());
Map<String, Object> eiconfigurationRow =
- eiConfigurationByProcessingId.get(processingId);
+ eiConfigurationByProcessingId.get(dataProcessingId);
+ Preconditions.checkNotNull(eiconfigurationRow);
String unitSource = (String) eiconfigurationRow.get("ENERG_UNIT_SOURCE");
String campagne = (String) eiconfigurationRow.get("CAMPAGNE");
String longName = campagne + "_" + unitSource;
@@ -306,7 +307,7 @@
int nbElementaryData = 0;
Collection<Map<String, Object>> esduRows =
- esduByProcessingId.get(processingId);
+ esduByProcessingId.get(dataProcessingId);
Collection<Cell> esduCells;
@@ -315,18 +316,18 @@
// this is a region to grab
if (log.isInfoEnabled()) {
- log.info("DataProcessing " + processingId + " is with region");
+ log.info("DataProcessing " + dataProcessingId + " is with region");
}
Map<String, Object> postStrateRow = findPostStrateRow(
db,
- processingId
+ dataProcessingId
);
Preconditions.checkNotNull(postStrateRow);
// there is a region for this data processing
- Cell regionCell = createRegionCell(processingId,
+ Cell regionCell = createRegionCell(dataProcessingId,
postStrateRow,
esduRows,
acousticMetadata);
@@ -343,10 +344,10 @@
// means a data processing without any region
if (log.isInfoEnabled()) {
- log.info("DataProcessing " + processingId + " is with NO region");
+ log.info("DataProcessing " + dataProcessingId + " is with NO region");
}
- esduCells = createEsduCells(processingId,
+ esduCells = createEsduCells(dataProcessingId,
null,
esduRows,
acousticMetadata
@@ -394,7 +395,7 @@
String typeImage = (String) postStrateRow.get("Type_Image");
CellType cellType =
- cellTypesByDepthStratumId.get(typeImage.toLowerCase());
+ cellTypesByDepthStratumId.get(typeImage);
Cell regionCell = dao.create(
Cell.PROPERTY_CELL_TYPE, cellType,
@@ -720,7 +721,7 @@
// get first line in EIT_VALEUR_ECHO using ID_EI_DEVIATION, DHTU_DEVIATION
for (Map<String, Object> row : valeurEchos) {
- String id = row.get("ID_EI_DEVIATION").toString().toLowerCase();
+ String id = row.get("ID_EI_DEVIATION").toString();
if (!processingId.equals(id)) {
// not a good id
continue;
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-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -26,9 +26,11 @@
import com.google.common.base.Charsets;
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.healthmarketscience.jackcess.Database;
+import fr.ifremer.echobase.EchoBaseFunctions;
import fr.ifremer.echobase.EchoBaseTechnicalException;
import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
import fr.ifremer.echobase.entities.meta.AssociationMeta;
@@ -39,6 +41,7 @@
import fr.ifremer.echobase.services.DbImportService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
+import fr.ifremer.echobase.services.models.EntityAssociationImportModel;
import fr.ifremer.echobase.services.models.EntityCsvModel;
import fr.ifremer.echobase.tools.FileType;
import org.apache.commons.io.IOUtils;
@@ -49,6 +52,8 @@
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.FileUtil;
import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportModel;
+import org.nuiton.util.csv.ImportToMap;
import java.io.BufferedReader;
import java.io.File;
@@ -56,6 +61,7 @@
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Reader;
import java.io.Writer;
import java.text.ParseException;
import java.util.List;
@@ -345,7 +351,7 @@
BufferedReader bf = new BufferedReader(new FileReader(out));
try {
- service.importFile(meta, bf, result);
+ importFile(meta, bf, result);
} catch (EchoBaseTechnicalException eee) {
throw eee;
@@ -394,22 +400,112 @@
return universe;
}
+// protected <E> E getFK(Map<String, E> universe, String fk) {
+// return getFK(universe, fk, true);
+// }
+
protected <E> E getFK(Map<String, E> universe, String fk) {
- return getFK(universe, fk, true, true);
+// E entity = universe.get(lowerCase ? fk.toLowerCase() : fk);
+ E entity = universe.get(fk);
+// if (strict)
+ Preconditions.checkNotNull(entity, "Could not find entity with id " + fk);
+// else {
+// if (entity == null) {
+// if (log.isWarnEnabled()) {
+// log.warn("Could not find entity with id " + fk);
+// }
+// }
+// }
+ return entity;
}
- protected <E> E getFK(Map<String, E> universe, String fk, boolean lowerCase, boolean strict) {
- E entity = universe.get(lowerCase ? fk.toLowerCase() : fk);
- if (strict)
- Preconditions.checkNotNull(entity, "Could not find entity with id " + fk);
- else {
- if (entity == null) {
- if (log.isWarnEnabled()) {
- log.warn("Could not find entity with id " + fk);
+ public <E extends TopiaEntity> void importFile(MetaFilenameAware entry,
+ Reader reader,
+ CsvImportResult csvResult) throws IOException {
+
+ DbEditorService service = getDbEditorService();
+
+ if (entry instanceof AssociationMeta) {
+
+ // load a association input
+
+ AssociationMeta meta = (AssociationMeta) entry;
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
+
+ EchoBaseEntityEnum source = meta.getSource();
+ EchoBaseEntityEnum target = meta.getTarget();
+ List<TopiaEntity> targetEntities = getEntities(target);
+ Map<String, TopiaEntity> targetsById =
+ Maps.uniqueIndex(targetEntities, EchoBaseFunctions.TO_TOPIAID);
+
+ ImportModel<Map<String, Object>> model =
+ EntityAssociationImportModel.newImportModel(
+ getConfiguration().getCsvSeparator(),
+ meta
+ );
+
+ EchoBaseEntityEnum sourceType = meta.getSource();
+
+ ImportToMap importer = ImportToMap.newImport(model, reader);
+
+ List<E> sourceEntities = getEntities(sourceType);
+ Map<String, E> sourcesById =
+ Maps.uniqueIndex(sourceEntities, EchoBaseFunctions.TO_TOPIAID);
+ try {
+ for (Map<String, Object> row : importer) {
+ String topiaId = (String) row.get(TopiaEntity.TOPIA_ID);
+ E e = sourcesById.get(topiaId);
+ String[] associations = (String[]) row.get("target");
+ List<TopiaEntity> associationEntities = Lists.newArrayList();
+ for (String association : associations) {
+ TopiaEntity targetEntity = targetsById.get(association);
+ associationEntities.add(targetEntity);
+ }
+ meta.setChilds(e, associationEntities);
+ csvResult.incrementsNumberUpdated();
}
+
+ } finally {
+
+ importer.close();
}
+
+ } else {
+
+ // normal entity table import
+
+ TableMeta meta = (TableMeta) entry;
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
+
+ ImportModel<TopiaEntity> model = service.buildForImport(meta);
+
+ Import<TopiaEntity> importer = Import.newImport(model, reader);
+
+ try {
+ TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource());
+ for (TopiaEntity entity : importer) {
+
+ TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID,
+ entity.getTopiaId());
+
+ meta.copy(entity, entityToSave);
+
+ csvResult.incrementsNumberUpdated();
+ }
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getSource(), eee);
+ } finally {
+
+ importer.close();
+ }
+
}
- return entity;
}
}
Added: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,67 @@
+/*
+ * #%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.EchoBaseFunctions;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.GearMetadata;
+import fr.ifremer.echobase.entities.references.OperationEvent;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+import java.util.List;
+
+/**
+ * {@link GearMetadata} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class GearMetadataLoader extends EntityLoader<GearMetadata> {
+
+ public GearMetadataLoader() {
+ super(GearMetadata.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<GearMetadata> createCsvImportModel(TableMeta meta) {
+
+ List<OperationEvent> events = getEntities(EchoBaseEntityEnum.OperationEvent);
+
+ EntityCsvModel<GearMetadata> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
+ */
+ model.newMandatoryColumn("MetadataType", GearMetadata.PROPERTY_TYPE);
+ model.newMandatoryColumn("MetadataTypeMeaning", GearMetadata.PROPERTY_MEANING);
+ model.newMandatoryColumn("MetadataTypeGroup", GearMetadata.PROPERTY_METADATA_GROUP);
+ model.addForeignKeyForImport("OperationEvent", GearMetadata.PROPERTY_OPERATION_EVENT, OperationEvent.class, events, EchoBaseFunctions.OPERATION_EVENT_NAME);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoader.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/OperationEventLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,53 @@
+/*
+ * #%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.OperationEvent;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * {@link OperationEvent} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class OperationEventLoader extends EntityLoader<OperationEvent> {
+
+ public OperationEventLoader() {
+ super(OperationEvent.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<OperationEvent> createCsvImportModel(TableMeta meta) {
+ EntityCsvModel<OperationEvent> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ model.newMandatoryColumn(OperationEvent.PROPERTY_NAME);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationEventLoader.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/OperationMetadataLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,68 @@
+/*
+ * #%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.EchoBaseFunctions;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.meta.TableMeta;
+import fr.ifremer.echobase.entities.references.GearMetadata;
+import fr.ifremer.echobase.entities.references.OperationEvent;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+import java.util.List;
+
+/**
+ * {@link OperationMetadata} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class OperationMetadataLoader extends EntityLoader<OperationMetadata> {
+
+ public OperationMetadataLoader() {
+ super(OperationMetadata.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<OperationMetadata> createCsvImportModel(TableMeta meta) {
+
+ List<OperationEvent> events = getEntities(EchoBaseEntityEnum.OperationEvent);
+
+ EntityCsvModel<OperationMetadata> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
+ */
+ model.newMandatoryColumn("MetadataType", OperationMetadata.PROPERTY_NAME);
+ model.newMandatoryColumn("MetadataTypeMeaning", OperationMetadata.PROPERTY_MEANING);
+ model.newMandatoryColumn("MetadataTypeGroup", OperationMetadata.PROPERTY_METADATA_GROUP);
+ model.addForeignKeyForImport("OperationEvent", GearMetadata.PROPERTY_OPERATION_EVENT, OperationEvent.class, events, EchoBaseFunctions.OPERATION_EVENT_NAME);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoader.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/SampleDataTypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,61 @@
+/*
+ * #%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.SampleDataType;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * {@link SampleDataType} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SampleDataTypeLoader extends EntityLoader<SampleDataType> {
+
+ public SampleDataTypeLoader() {
+ super(SampleDataType.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<SampleDataType> createCsvImportModel(TableMeta meta) {
+ EntityCsvModel<SampleDataType> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ raptriBiometryDataType;sampleDataTypeMeaningEng;sampleDataType;sampleDataTypeMeaningFr;Units;Precision
+ */
+ model.addDefaultColumn(SampleDataType.PROPERTY_RAPTRI_BIOMETRY_DATA_TYPE,int.class);
+ model.newMandatoryColumn("sampleDataTypeMeaningEng",SampleDataType.PROPERTY_MEANING_EN);
+ model.newMandatoryColumn("sampleDataType", SampleDataType.PROPERTY_NAME);
+ model.newMandatoryColumn("sampleDataTypeMeaningFr",SampleDataType.PROPERTY_MEANING_FR);
+ model.newMandatoryColumn("Units",SampleDataType.PROPERTY_UNITS);
+ model.newMandatoryColumn("Precision",SampleDataType.PROPERTY_UNITS);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoader.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/SampleTypeLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,58 @@
+/*
+ * #%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.SampleDataType;
+import fr.ifremer.echobase.entities.references.SampleType;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * {@link SampleDataType} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SampleTypeLoader extends EntityLoader<SampleType> {
+
+ public SampleTypeLoader() {
+ super(SampleType.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<SampleType> createCsvImportModel(TableMeta meta) {
+ EntityCsvModel<SampleType> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ name;meaning
+ */
+ model.newMandatoryColumn(SampleType.PROPERTY_NAME);
+ model.newMandatoryColumn(SampleType.PROPERTY_MEANING);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoader.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/SexCategoryLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -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.SexCategory;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * {@link SexCategory} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SexCategoryLoader extends EntityLoader<SexCategory> {
+
+ public SexCategoryLoader() {
+ super(SexCategory.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<SexCategory> createCsvImportModel(TableMeta meta) {
+ EntityCsvModel<SexCategory> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ CategoryID;CategoryName
+ */
+ model.newMandatoryColumn("CategoryID", SexCategory.PROPERTY_NAME);
+ model.newMandatoryColumn("CategoryName", SexCategory.PROPERTY_MEANING);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoader.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/SizeCategoryLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,58 @@
+/*
+ * #%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.SexCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * {@link SexCategory} loader.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SizeCategoryLoader extends EntityLoader<SizeCategory> {
+
+ public SizeCategoryLoader() {
+ super(SizeCategory.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<SizeCategory> createCsvImportModel(TableMeta meta) {
+ EntityCsvModel<SizeCategory> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+
+ /*
+ CategoryID;CategoryName
+ */
+ model.newMandatoryColumn("CategoryID", SizeCategory.PROPERTY_NAME);
+ model.newMandatoryColumn("CategoryName", SizeCategory.PROPERTY_MEANING);
+ return model;
+ }
+}
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoader.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/VoyageLoader.java
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/VoyageLoader.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -173,7 +173,7 @@
String idEchotype = (String) entity.get("ID_DESCRIPTION_DEVIATION");
String specieEchotype = (String) entity.get("GENRE_ESP");
Voyage voayge = getFK(voyages, campagneName);
- Species species = getFK(speciess, specieEchotype,false, true);
+ Species species = getFK(speciess, specieEchotype);
Echotype echotype = echotypeDAO.findByProperties(
Echotype.PROPERTY_ID, Integer.valueOf(idEchotype),
Echotype.PROPERTY_SPECIES, species
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-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -198,7 +198,7 @@
}
protected void loadDependencies(EchoBaseEntityEnum dependency,
- Set<MetaFilenameAware> dones) throws IOException, TopiaException {
+ Set<MetaFilenameAware> dones) throws IOException, TopiaException {
DbMeta dbMeta = serviceContext.getDbMeta();
TableMeta meta = dbMeta.getTable(dependency);
loadDependencies(meta, dones);
@@ -354,6 +354,14 @@
entityLoaders.add(newService(EchotypeLoader.class));
entityLoaders.add(newService(VesselTypeLoader.class));
entityLoaders.add(newService(VesselLoader.class));
+ entityLoaders.add(newService(OperationEventLoader.class));
+ entityLoaders.add(newService(SampleDataTypeLoader.class));
+ entityLoaders.add(newService(SampleTypeLoader.class));
+ entityLoaders.add(newService(BiometryScaleLoader.class));
+ entityLoaders.add(newService(SexCategoryLoader.class));
+ entityLoaders.add(newService(SizeCategoryLoader.class));
+ entityLoaders.add(newService(OperationMetadataLoader.class));
+ entityLoaders.add(newService(GearMetadataLoader.class));
entityLoaders.add(newService(VoyageLoader.class));
entityLoaders.add(newService(TransitLoader.class));
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.BiometryScale;
+import org.junit.Test;
+
+/**
+ * To test the {@link BiometryScaleLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class BiometryScaleLoaderTest extends AbstractLoaderTest<BiometryScale, BiometryScaleLoader> {
+
+ public BiometryScaleLoaderTest() {
+ super(BiometryScaleLoader.class, 44, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/BiometryScaleLoaderTest.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/CellLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderTest.java 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/CellLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -73,33 +73,33 @@
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}, // with no region
- {"EIT_06_38", 0},
- {"EIT_07_38", 0},
- {"EIT_08_38", 0},
- {"EIT_09_38", 0},
- {"EIT_10_38", 0},
- {"EIT_83A_38", 0}, // with no region
- {"EIT_83B_38", 0}, // with no region
- {"EIT_84_38", 0}, // with no region
- {"EIT_85_38", 0}, // with no region
- {"EIT_86_38", 0}, // with no region
- {"EIT_87_38", 0}, // with no region
- {"EIT_89A_38", 0}, // with no region
- {"EIT_89B_38", 0}, // with no region
- {"EIT_90_38", 0}, // with no region
- {"EIT_91_38", 0}, // with no region
- {"EIT_92_38", 0}, // with no region
- {"EIT_93_38", 0}, // with no region
- {"EIT_94_38", 0}, // with no region
- {"EIT_97_38", 0}, // with no region
- {"EIT_98b_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}, // with no region
+// {"EIT_06_38", 0},
+// {"EIT_07_38", 0},
+// {"EIT_08_38", 0},
+// {"EIT_09_38", 0},
+// {"EIT_10_38", 0},
+// {"EIT_83A_38", 0}, // with no region
+// {"EIT_83B_38", 0}, // with no region
+// {"EIT_84_38", 0}, // with no region
+// {"EIT_85_38", 0}, // with no region
+// {"EIT_86_38", 0}, // with no region
+// {"EIT_87_38", 0}, // with no region
+// {"EIT_89A_38", 0}, // with no region
+// {"EIT_89B_38", 0}, // with no region
+// {"EIT_90_38", 0}, // with no region
+// {"EIT_91_38", 0}, // with no region
+// {"EIT_92_38", 0}, // with no region
+// {"EIT_93_38", 0}, // with no region
+// {"EIT_94_38", 0}, // with no region
+// {"EIT_97_38", 0}, // with no region
+// {"EIT_98b_38", 0},
});
}
Added: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.GearMetadata;
+import org.junit.Test;
+
+/**
+ * To test the {@link GearMetadataLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class GearMetadataLoaderTest extends AbstractLoaderTest<GearMetadata, GearMetadataLoader> {
+
+ public GearMetadataLoaderTest() {
+ super(GearMetadataLoader.class, 3, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/GearMetadataLoaderTest.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/OperationEventLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationEventLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationEventLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.OperationEvent;
+import org.junit.Test;
+
+/**
+ * To test the {@link OperationEventLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class OperationEventLoaderTest extends AbstractLoaderTest<OperationEvent, OperationEventLoader> {
+
+ public OperationEventLoaderTest() {
+ super(OperationEventLoader.class, 7, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationEventLoaderTest.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/OperationMetadataLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.OperationMetadata;
+import org.junit.Test;
+
+/**
+ * To test the {@link SexCategoryLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class OperationMetadataLoaderTest extends AbstractLoaderTest<OperationMetadata, OperationMetadataLoader> {
+
+ public OperationMetadataLoaderTest() {
+ super(OperationMetadataLoader.class, 4, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/OperationMetadataLoaderTest.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/SampleDataTypeLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.SampleDataType;
+import org.junit.Test;
+
+/**
+ * To test the {@link SampleDataTypeLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SampleDataTypeLoaderTest extends AbstractLoaderTest<SampleDataType, SampleDataTypeLoader> {
+
+ public SampleDataTypeLoaderTest() {
+ super(SampleDataTypeLoader.class, 134, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleDataTypeLoaderTest.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/SampleTypeLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.SampleType;
+import org.junit.Test;
+
+/**
+ * To test the {@link SampleTypeLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SampleTypeLoaderTest extends AbstractLoaderTest<SampleType, SampleTypeLoader> {
+
+ public SampleTypeLoaderTest() {
+ super(SampleTypeLoader.class, 5, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SampleTypeLoaderTest.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/SexCategoryLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.SexCategory;
+import org.junit.Test;
+
+/**
+ * To test the {@link SexCategoryLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SexCategoryLoaderTest extends AbstractLoaderTest<SexCategory, SexCategoryLoader> {
+
+ public SexCategoryLoaderTest() {
+ super(SexCategoryLoader.class, 4, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SexCategoryLoaderTest.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/SizeCategoryLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoaderTest.java 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+/*
+ * #%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.SizeCategory;
+import org.junit.Test;
+
+/**
+ * To test the {@link SizeCategoryLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SizeCategoryLoaderTest extends AbstractLoaderTest<SizeCategory, SizeCategoryLoader> {
+
+ public SizeCategoryLoaderTest() {
+ super(SizeCategoryLoader.class, 4, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/SizeCategoryLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-BiometryScale.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-BiometryScale.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-BiometryScale.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,45 @@
+raptriBiometryDataType;ScaleCode;ScaleMeaningEng;ScaleMeaningFr
+3;0;Undetermined;indeterminé
+3;1;Male;male
+3;2;Female;femelle
+3;3;NA (IEO- Pelacus1007);Non renseigné (IEO- Pelacus1007)
+4;1;Immature/virgin;Immature/virgin
+4;2;Developing;Developing
+4;3;Prespawning;Prespawning
+4;4;Spawning;Spawning
+4;5;Spent;Spent
+4;6;Resting;Resting
+7;0;Easily readable;facile à lire
+7;1;Hardly readable;difficile à lire
+7;2;Unreadable;illisible
+7;3;Estimated (ex. juvenile otoliths);Estimée (ex. Otolimetrie juvenile)
+8;-1;To be checked by PG;à faire préciser par PG
+8;1;"opaque (""H"")";"opaque (""H"")"
+8;2;"hyalin (""O"")";"hyalin (""O"")"
+8;3;opaque/hyalin;opaque/hyalin
+23;1;No fat;No fat
+23;2;Low fat;Low fat
+23;3;Fat;Fat
+23;4;High fat;High fat
+24;0;no anisakis;zéro anisakis
+24;1;1-10 anisakis;1 à 10 anisakis
+24;2;10-20 anisakis;10 à 20 anisakis
+24;3;>20 anisakis;> 20 anisakis
+25;0;;
+25;1;IFREMER - NANTES (PG);IFREMER - NANTES (PG)
+25;2;IFREMER - LORIENT (ED);IFREMER - LORIENT (ED)
+25;3;AZTI + (PP);AZTI + (PP)
+25;4;AZTI (lecture AGE) + IFREMER Nantes (PG) (mesure rayon);AZTI (lecture AGE) + IFREMER Nantes (PG) (mesure rayon)
+25;5;EPHE - PERPIGNAN (PL);EPHE - PERPIGNAN (PL)
+25;6;IFREMER - IEO (double lecture à bord : Patrick-Carla);IFREMER - IEO (double lecture à bord : Patrick-Carla)
+25;7;biometrie et otolithe IFREMER-NANTES (PG) - génétique : EPHE;biometrie et otolithe IFREMER-NANTES (PG) - génétique : EPHE
+26;0;clé Taille/Age : NON Valide;clé Taille/Age : NON Valide
+26;1;clé Taille/Age : VALIDE;clé Taille/Age : VALIDE
+45;0;NA;NA
+45;1;Blanc ?;Blanc ?
+45;2;?;?
+45;3;Complète;Complète
+45;4;partielle;partielle
+49;0;NA;NA
+49;1;DROIT;DROIT
+49;2;GAUCHE;GAUCHE
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-BiometryScale.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-tools/src/test/resources/csv/new/input-DataMetadata.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-DataMetadata.csv 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-DataMetadata.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -2,23 +2,23 @@
LongitudeStart;Longitude;Cell longitude;longitude;decimal_degrees_east;WGS84;east;;X;-180;180;;;999;CellStart;Longitude of cell start;
LatitudeStart;Latitude;Cell latitude;latitude;decimal_degrees_north;WGS84;north;;Y;-90;90;;;999;CellStart;Latitude of cell start;
TimeStart;Time;Time;time;days since 1899-01-01T00:00:00Z;;;gregorian;T;0;90000;;;99999;CellStart;Time of cell start;
-DepthRefSurfaceStart;Depth;Cell depth;depth;m;Sea surface;Down;;Z;0;12000;;;99999;CellStart;Depth of cell start, ref. surface;
-DepthRefBottomStart;Depth;Cell depth;depth;m;Sea floor;Up;;Z;0;12000;;;99999;CellStart;Depth of cell start, ref. bottom;
+DepthRefSurfaceStart;Depth;Cell depth;depth;m;Sea Surface;Down;;Z;0;12000;;;99999;CellStart;Depth of cell start, ref. surface;
+DepthRefBottomStart;Depth;Cell depth;depth;m;Sea Floor;Up;;Z;0;12000;;;99999;CellStart;Depth of cell start, ref. bottom;
LongitudeEnd;Longitude;Cell longitude;longitude;decimal_degrees_east;WGS84;east;;X;-180;180;;;999;CellEnd;Longitude of cell end;
LatitudeEnd;Latitude;Cell latitude;latitude;decimal_degrees_north;WGS84;north;;Y;-90;90;;;999;CellEnd;Latitude of cell end;
TimeEnd;Time;Time;time;days since 1899-01-01T00:00:00Z;;;gregorian;T;0;90000;;;99999;CellEnd;Time of cell end;
-DepthRefSurfaceEnd;Depth;Cell depth;depth;m;Sea surface;Down;;Z;0;12000;;;99999;CellEnd;Depth of cell end, ref. surface;
-DepthRefBottomEnd;Depth;Cell depth;depth;m;Sea floor;Up;;Z;0;12000;;;99999;CellEnd;Depth of cell end, ref. bottom;
+DepthRefSurfaceEnd;Depth;Cell depth;depth;m;Sea Surface;Down;;Z;0;12000;;;99999;CellEnd;Depth of cell end, ref. surface;
+DepthRefBottomEnd;Depth;Cell depth;depth;m;Sea Floor;Up;;Z;0;12000;;;99999;CellEnd;Depth of cell end, ref. bottom;
LongitudeBary;Longitude;Cell longitude;longitude;decimal_degrees_east;WGS84;east;;X;-180;180;;;999;CellBarycenter;Longitude of cell barycenter;
LatitudeBary;Latitude;Cell latitude;latitude;decimal_degrees_north;WGS84;north;;Y;-90;90;;;999;CellBarycenter;Latitude of cell barycenter;
TimeBary;Time;Time;time;days since 1899-01-01T00:00:00Z;;;gregorian;T;0;90000;;;99999;CellBarycenter;Time of cell barycenter;
-DepthRefSurfaceBary;Depth;Cell depth;depth;m;Sea surface;Down;;Z;0;12000;;;99999;CellBarycenter;Depth of cell barycenter, ref. surface;
-DepthRefBottomBary;Depth;Cell depth;depth;m;Sea floor;Up;;Z;0;12000;;;99999;CellBarycenter;Depth of cell barycenter, ref. bottom;
+DepthRefSurfaceBary;Depth;Cell depth;depth;m;Sea Surface;Down;;Z;0;12000;;;99999;CellBarycenter;Depth of cell barycenter, ref. surface;
+DepthRefBottomBary;Depth;Cell depth;depth;m;Sea Floor;Up;;Z;0;12000;;;99999;CellBarycenter;Depth of cell barycenter, ref. bottom;
LongitudeEnv;Longitude;Cell longitude;longitude;decimal_degrees_east;WGS84;east;;X;-180;180;;;999;CellEnveloppe;Longitude of cell enveloppe point;
LatitudeEnv;Latitude;Cell latitude;latitude;decimal_degrees_north;WGS84;north;;Y;-90;90;;;999;CellEnveloppe;Latitude of cell enveloppe point;
TimeEnv;Time;Time;time;days since 1899-01-01T00:00:00Z;;;gregorian;T;0;90000;;;99999;CellEnveloppe;Time of cell enveloppe point;
-DepthRefSurfaceEnv;Depth;Cell depth;depth;m;Sea surface;Down;;Z;0;12000;;;99999;CellEnveloppe;Depth of cell enveloppe point, ref. surface;
-DepthRefBottomEnv;Depth;Cell depth;depth;m;Sea floor;Up;;Z;0;12000;;;99999;CellEnveloppe;Depth of cell enveloppe point, ref. bottom;
+DepthRefSurfaceEnv;Depth;Cell depth;depth;m;Sea Surface;Down;;Z;0;12000;;;99999;CellEnveloppe;Depth of cell enveloppe point, ref. surface;
+DepthRefBottomEnv;Depth;Cell depth;depth;m;Sea Floor;Up;;Z;0;12000;;;99999;CellEnveloppe;Depth of cell enveloppe point, ref. bottom;
NASC;Acoustic density;Nautical area scattering coefficient;;m²/nmi²;;;;;0;3000000;;;99999;Mean;;
sa;Acoustic density;Area backscattering coefficient;sound_intensity_level_in_water;m²/m²;;;;;0;3000000;;;99999;Mean;;
sv;Acoustic density;Volume backscattering coefficient;acoustic_volume_backscatter;m-1;;;;;0;99999;;;99999;Mean;;
Added: trunk/echobase-tools/src/test/resources/csv/new/input-GearMetadata.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-GearMetadata.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-GearMetadata.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,4 @@
+MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
+CableLength;Length of cable used;Cable;Global
+MinSpeed;Minimum speed during operation;Speed;Global
+MaxSpeed;Maximum speed during operation;Speed;Global
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-GearMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-OperationEvent.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-OperationEvent.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-OperationEvent.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,8 @@
+name
+Global;
+Average;
+ShootingStart;
+ShootingEnd;
+HaulingStart;
+HaulingEnd;
+Fishing;
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-OperationEvent.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,5 @@
+MetadataType;MetadataTypeMeaning;MetadataTypeGroup;OperationEvent
+MeanWaterDepth;Mean water depth during operation;Depth;Average
+DielPeriod;1 : day, 0 : night;Diel;Global
+WaterDepth;Water depth at the beginning of the operation;Depth;ShootingStart
+WaterDepth;Water depth at the end of the operation;Depth;HaulingEnd
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-OperationMetadata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-SampleDataType.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-SampleDataType.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-SampleDataType.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,135 @@
+raptriBiometryDataType;sampleDataTypeMeaningEng;sampleDataType;sampleDataTypeMeaningFr;Units;Precision
+1;Length (cm – precision unknown);Lcm;Longueur (cm);;NA
+2;Weight (g – precision unknown);Weightg;Poids (g);;NA
+3;Sex;Sex;Sexe;;
+4;Maturity;Maturity;Maturité;;
+5;Weight of the gonads (g – precision unknown);GonadicWeight;Poids des gonades (g);;
+6;Age;Age;Age;;
+7;Age reading fiability;Fiability;Fiabilité de la lecture d'age;;
+8;Edge type (1:opaque , 2:Hyalin, 3:opaq/hyali);EdgeType;Nature du bord de l'otholite;;
+9;Length at ring 1 (micron);L1;Longueur du rayon 1 (micron);micron;
+10;Length at ring 2 (micron);L2;Longueur du rayon 2 (micron);micron;
+11;Length at ring 3 (micron);L3;Longueur du rayon 3 (micron);micron;
+12;Length at ring 4 (micron);L4;LONGUEUR A L'ANNEAU 4 en micron;micron;
+13;Length at ring 5 (micron);L5;LONGUEUR A L'ANNEAU 5 en micron;micron;
+14;Length at ring 6 (micron);L6;LONGUEUR A L'ANNEAU 6 en micron;micron;
+15;Length at ring 7 (micron);L7;LONGUEUR A L'ANNEAU 7 en micron;micron;
+16;Length at ring 8 (micron);L8;LONGUEUR A L'ANNEAU 8 en micron;micron;
+17;Length at ring 9 (micron);L9;LONGUEUR A L'ANNEAU 9 en micron;micron;
+18;Length at ring 10 (micron);L10;LONGUEUR A L'ANNEAU 10 en micron;micron;
+19;Otolith total length (micron);LTOT;LONGUEUR TOTALE DE LA PIECE OSSEUSE (micron);micron;
+20;;MF1;MF1;;
+21;;#R1;ex #R1 (calcul de LTOT - L1) --> code DISPONIBLE);;
+23;Fat content;Fat;ENGRAISSEMENT;;
+24;Parasites;Parasites;PARASITES;;
+25;Laboratory where processed;Laboratory;Laboratoire de traitement;;
+26;Length-age key validation;TA;Validation Clé Taille/Age;;
+27;Locus – Genetics - PGI-m;PGI-m;Locus - Génétique - PGI-m;;
+28;Locus - Genetics – LDH1-m;LDH1-m;Locus - Génétique - LDH1-m;;
+29;Locus - Genetics - LDH2-m;LDH2-m;Locus - Génétique - LDH2-m;;
+30;Locus - Genetics - ME2-m;ME2-m;Locus - Génétique - ME2-m;;
+31;Locus - Genetics - MDH1-m;MDH1-m;Locus - Génétique - MDH1-m;;
+32;Locus - Genetics - PGM-m;PGM-m;Locus - Génétique - PGM-m;;
+33;Locus - Genetics - aGPD-m;aGPD-m;Locus - Génétique - aGPD-m;;
+34;Locus - Genetics - IDH-m;IDH-m;Locus - Génétique - IDH-m;;
+35;Locus - Genetics - AAT-f;AAT-f;Locus - Génétique - AAT-f;;
+36;Locus - Genetics - LGG-f;LGG-f;Locus - Génétique - LGG-f;;
+37;Locus - Genetics - PP-f;PP-f;Locus - Génétique - PP-f;;
+38;Locus - Genetics - LT-f;LT-f;Locus - Génétique - LT-f;;
+39;Locus - Genetics - IDH-f;IDH-f;Locus - Génétique - IDH-f;;
+40;Locus - Genetics - EST4m-m;EST4m-m;Locus - Génétique - EST4m-m;;
+41;Locus - Genetics - EST-f (PEL01 seul);EST-f;Locus - Génétique - EST-f (PEL01 seul);;
+42;Locus - Genetics - MDH2-m (PEL01 seul);MDH2-m;Locus - Génétique - MDH2-m (PEL01 seul);;
+43;Locus - Genetics - GDA-f (PEL01 seul);GDA-f;Locus - Génétique - GDA-f (PEL01 seul);;
+44;Standard length, without tail;SL;TAILLE STANDARD ( cm) - hors caudale;cm;
+45;Pigmentation;PIGMENT;PIGMENTATION;;
+46;Length of bony part radius;RTOT;LONGUEUR du RAYON de la pièce osseuse (en micron);micron;
+47;Nucleus length at otolith edge;RJNB;LONGUEUR du NUCLEUS au bord de l'otolithe (micron);micron;
+48;Trench length at otolith edge;LJG;LONGUEUR du SILLON au bord de l'otolithe (micron);micron;
+49;Otolith: left or right?;OTO_GD;OTOLITHE Gauche-Droit;;
+50;Number of growth rings of juvenile otolith, bloc 1;NJ01;OTOLITHE JUV Nb Accroissement bloc 1;;
+51;Number of growth rings of juvenile otolith, bloc 2;NJ02;OTOLITHE JUV Nb Accroissement bloc 2;;
+52;Number of growth rings of juvenile otolith, bloc 3;NJ03;OTOLITHE JUV Nb Accroissement bloc 3;;
+53;Number of growth rings of juvenile otolith, bloc 4;NJ04;OTOLITHE JUV Nb Accroissement bloc 4;;
+54;Number of growth rings of juvenile otolith, bloc 5;NJ05;OTOLITHE JUV Nb Accroissement bloc 5;;
+55;Number of growth rings of juvenile otolith, bloc 6;NJ06;OTOLITHE JUV Nb Accroissement bloc 6;;
+56;Number of growth rings of juvenile otolith, bloc 7;NJ07;OTOLITHE JUV Nb Accroissement bloc 7;;
+57;Number of growth rings of juvenile otolith, bloc 8;NJ08;OTOLITHE JUV Nb Accroissement bloc 8;;
+58;Number of growth rings of juvenile otolith, bloc 9;NJ09;OTOLITHE JUV Nb Accroissement bloc 9;;
+59;Number of growth rings of juvenile otolith, bloc 10;NJ10;OTOLITHE JUV Nb Accroissement bloc 10;;
+60;Number of growth rings of juvenile otolith, bloc 11;NJ11;OTOLITHE JUV Nb Accroissement bloc 11;;
+61;Number of growth rings of juvenile otolith, bloc 12;NJ12;OTOLITHE JUV Nb Accroissement bloc 12;;
+62;Number of growth rings of juvenile otolith, bloc 13;NJ13;OTOLITHE JUV Nb Accroissement bloc 13;;
+63;Number of growth rings of juvenile otolith, bloc 14;NJ14;OTOLITHE JUV Nb Accroissement bloc 14;;
+64;Number of growth rings of juvenile otolith, bloc 15;NJ15;OTOLITHE JUV Nb Accroissement bloc 15;;
+65;Number of growth rings of juvenile otolith, bloc 16;NJ16;OTOLITHE JUV Nb Accroissement bloc 16;;
+66;Number of growth rings of juvenile otolith, bloc 17;NJ17;OTOLITHE JUV Nb Accroissement bloc 17;;
+67;Number of growth rings of juvenile otolith, bloc 18;NJ18;OTOLITHE JUV Nb Accroissement bloc 18;;
+68;Number of growth rings of juvenile otolith, bloc 19;NJ19;OTOLITHE JUV Nb Accroissement bloc 19;;
+69;Number of growth rings of juvenile otolith, bloc 20;NJ20;OTOLITHE JUV Nb Accroissement bloc 20;;
+70;Number of growth rings of juvenile otolith, bloc 21;NJ21;OTOLITHE JUV Nb Accroissement bloc 21;;
+71;Number of growth rings of juvenile otolith, bloc 22;NJ22;OTOLITHE JUV Nb Accroissement bloc 22;;
+72;Number of growth rings of juvenile otolith, bloc 23;NJ23;OTOLITHE JUV Nb Accroissement bloc 23;;
+73;Number of growth rings of juvenile otolith, bloc 24;NJ24;OTOLITHE JUV Nb Accroissement bloc 24;;
+74;Number of growth rings of juvenile otolith, bloc 25;NJ25;OTOLITHE JUV Nb Accroissement bloc 25;;
+75;Number of growth rings of juvenile otolith, bloc 26;NJ26;OTOLITHE JUV Nb Accroissement bloc 26;;
+76;Number of growth rings of juvenile otolith, bloc 27;NJ27;OTOLITHE JUV Nb Accroissement bloc 27;;
+77;Number of growth rings of juvenile otolith, bloc 28;NJ28;OTOLITHE JUV Nb Accroissement bloc 28;;
+78;Number of growth rings of juvenile otolith, bloc 29;NJ29;OTOLITHE JUV Nb Accroissement bloc 29;;
+79;Number of growth rings of juvenile otolith, bloc 30;NJ30;OTOLITHE JUV Nb Accroissement bloc 30;;
+80;Growth of juvenile otolith ring, bloc 1;LJ01;OTOLITHE JUV Mesure(micron) Accroissement bloc 1;micron;
+81;Growth of juvenile otolith ring, bloc2;LJ02;OTOLITHE JUV Mesure(micron) Accroissement bloc 2;micron;
+82;Growth of juvenile otolith ring, bloc 3;LJ03;OTOLITHE JUV Mesure(micron) Accroissement bloc 3;micron;
+83;Growth of juvenile otolith ring, bloc 4;LJ04;OTOLITHE JUV Mesure(micron) Accroissement bloc 4;micron;
+84;Growth of juvenile otolith ring, bloc 5;LJ05;OTOLITHE JUV Mesure(micron) Accroissement bloc 5;micron;
+85;Growth of juvenile otolith ring, bloc 6;LJ06;OTOLITHE JUV Mesure(micron) Accroissement bloc 6;micron;
+86;Growth of juvenile otolith ring, bloc 7;LJ07;OTOLITHE JUV Mesure(micron) Accroissement bloc 7;micron;
+87;Growth of juvenile otolith ring, bloc 8;LJ08;OTOLITHE JUV Mesure(micron) Accroissement bloc 8;micron;
+88;Growth of juvenile otolith ring, bloc 9;LJ09;OTOLITHE JUV Mesure(micron) Accroissement bloc 9;micron;
+89;Growth of juvenile otolith ring, bloc 10;LJ10;OTOLITHE JUV Mesure(micron) Accroissement bloc 10;micron;
+90;Growth of juvenile otolith ring, bloc 11;LJ11;OTOLITHE JUV Mesure(micron) Accroissement bloc 11;micron;
+91;Growth of juvenile otolith ring, bloc 12;LJ12;OTOLITHE JUV Mesure(micron) Accroissement bloc 12;micron;
+92;Growth of juvenile otolith ring, bloc 13;LJ13;OTOLITHE JUV Mesure(micron) Accroissement bloc 13;micron;
+93;Growth of juvenile otolith ring, bloc 14;LJ14;OTOLITHE JUV Mesure(micron) Accroissement bloc 14;micron;
+94;Growth of juvenile otolith ring, bloc 15;LJ15;OTOLITHE JUV Mesure(micron) Accroissement bloc 15;micron;
+95;Growth of juvenile otolith ring, bloc 16;LJ16;OTOLITHE JUV Mesure(micron) Accroissement bloc 16;micron;
+96;Growth of juvenile otolith ring, bloc 17;LJ17;OTOLITHE JUV Mesure(micron) Accroissement bloc 17;micron;
+97;Growth of juvenile otolith ring, bloc 18;LJ18;OTOLITHE JUV Mesure(micron) Accroissement bloc 18;micron;
+98;Growth of juvenile otolith ring, bloc 19;LJ19;OTOLITHE JUV Mesure(micron) Accroissement bloc 19;micron;
+99;Growth of juvenile otolith ring, bloc 20;LJ20;OTOLITHE JUV Mesure(micron) Accroissement bloc 20;micron;
+100;Growth of juvenile otolith ring, bloc 21;LJ21;OTOLITHE JUV Mesure(micron) Accroissement bloc 21;micron;
+101;Growth of juvenile otolith ring, bloc 22;LJ22;OTOLITHE JUV Mesure(micron) Accroissement bloc 22;micron;
+102;Growth of juvenile otolith ring, bloc 23;LJ23;OTOLITHE JUV Mesure(micron) Accroissement bloc 23;micron;
+103;Growth of juvenile otolith ring, bloc 24;LJ24;OTOLITHE JUV Mesure(micron) Accroissement bloc 24;micron;
+104;Growth of juvenile otolith ring, bloc 25;LJ25;OTOLITHE JUV Mesure(micron) Accroissement bloc 25;micron;
+105;Growth of juvenile otolith ring, bloc 26;LJ26;OTOLITHE JUV Mesure(micron) Accroissement bloc 26;micron;
+106;Growth of juvenile otolith ring, bloc 27;LJ27;OTOLITHE JUV Mesure(micron) Accroissement bloc 27;micron;
+107;Growth of juvenile otolith ring, bloc 28;LJ28;OTOLITHE JUV Mesure(micron) Accroissement bloc 28;micron;
+108;Growth of juvenile otolith ring, bloc 29;LJ29;OTOLITHE JUV Mesure(micron) Accroissement bloc 29;micron;
+109;Growth of juvenile otolith ring, bloc 30;LJ30;OTOLITHE JUV Mesure(micron) Accroissement bloc 30;micron;
+110;Complementary information;INFO;INFO COMPLEMENTAIRE;;
+111;Total number of days, juvenile otolith;NJ00;OTOLITHE JUV Nb jours total;;
+112;Number at length;NumberAtLength;Nombre par classe de taille;;
+113;Weight at length (kg – precision unknown);WeightAtLengthkg;Poids par classe de taille (kg);;NA
+114;Mean length (cm);MeanLengthcm;Taille moyenne (cm);;
+115;Mean weight (g – precision unknown);MeanWeightg;Poids moyen (g);;NA
+116;Number of fish per kg;NoPerKg;Moule (Nombre d'individus par kg);;
+117;Total Length (cm – precision 1);LTcm1;Longueur Totale (cm);cm;1
+118;Total Length (cm – precision 0.5);LTcm0.5;Longueur Totale (1/2 cm);cm;0.5
+119;Total Length (mm – precision 1);LTmm1;Longueur Totale (mm);mm;1
+120;Fork Length (cm – precision 1);LFcm1;Longueur maxillaire supérieur - Fourche caudale;cm;1
+121;Width (cm – precision 1);LAcm1;Largeur;cm;1
+122;;LPCcm1;Longueur Pré supra Caudale;cm;1
+123;;LPAcm0.5;Longueur Pré Anale;cm;0.5
+124;;LMFcm1;Longueur maxillaire inférieur - Fourche caudale;cm;1
+125;Cephalothorax length (mm – precision 1);LCmm1;Longueur Céphalothoracique;mm;1
+126;Cephalothorax width (mm – precision 1);LACmm1;LArgeur Céphalothoracique;mm;1
+127;Height (mm – precision 1);Hmm1;Hauteur (mm);mm;1
+128;Height (cm – precision 0.5);Hcm0.5;Hauteur (1/2 cm);cm;0.5
+129;Mantel length (cm – precision 1);LMcm1;Longueur du Manteau (cm);cm;1
+130;Mantel length (cm – precision 0.5);LMcm0.1;Longueur du Manteau (1/2 cm);cm;0.5
+131;Curve standard length (cm – precision 0.5);LCScm0.1;Longueur Courbe Standard;cm;0.1
+132;Carapace direct length (cm – precision 0.1);LDScm0.1;Longueur Directe Standard;cm;0.1
+133;Carapace curve width (cm – precision 0.1);LACCcm0.1;LArgeur Courbe Carapace;cm;0.1
+134;Carapace direct width (cm – precision 0.1);LADCcm0.1;LArgeur Directe Carapace;cm;0.1
+135;Circumference (cm – precision 1);Ccm1;Circonférence;cm;1
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-SampleDataType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-SampleType.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-SampleType.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-SampleType.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,6 @@
+name;meaning
+Individual;Measurement of individual fish
+Subsample;Measurement of a subsample of fish
+Total;Extrapolation results or total sorted catch
+Unsorted;Individual taken out before being sampled
+Sorted;Sample sorted
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-SampleType.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-SexCategory.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-SexCategory.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-SexCategory.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,5 @@
+CategoryID;CategoryName
+0;All
+G;Large
+P;Small
+TP;Very small
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-SexCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Added: trunk/echobase-tools/src/test/resources/csv/new/input-SizeCategory.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-SizeCategory.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-SizeCategory.csv 2011-12-15 20:46:14 UTC (rev 195)
@@ -0,0 +1,5 @@
+CategoryID;CategoryName
+N;Not determined
+F;Female
+G;Large
+I;Immature
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-SizeCategory.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/src/doc/reunions/reunion-2011-12-14.txt
===================================================================
--- trunk/src/doc/reunions/reunion-2011-12-14.txt 2011-12-15 11:05:49 UTC (rev 194)
+++ trunk/src/doc/reunions/reunion-2011-12-14.txt 2011-12-15 20:46:14 UTC (rev 195)
@@ -34,6 +34,20 @@
- Le SampleData#dataValue peut-être nulle (Float et pas float).
+Réalisation modèle pêche
+------------------------
+
+- Report des modifications du modèle
+- Remplissage du référentiel OperationEvent
+- Remplissage du référentiel SampleDataType
+- Remplissage du référentiel SampleType
+- Création entité BiometryScale
+- Remplissage du référentiel BiometryScale
+- Remplissage du référentiel SexCategory
+- Remplissage du référentiel SizeCategory
+- Remplissage du référentiel OperationMetadata
+- Remplissage du référentiel GearMetadata
+
Action
------
1
0
r194 - trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:05:49 +0100 (Thu, 15 Dec 2011)
New Revision: 194
Url: http://forge.codelutin.com/repositories/revision/echobase/194
Log:
use exploded import service
Modified:
trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/LaunchImport.java
Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/LaunchImport.java
===================================================================
--- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/LaunchImport.java 2011-12-15 11:05:26 UTC (rev 193)
+++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/importDb/LaunchImport.java 2011-12-15 11:05:49 UTC (rev 194)
@@ -26,7 +26,7 @@
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.Preparable;
import fr.ifremer.echobase.services.CsvImportResult;
-import fr.ifremer.echobase.services.DbImportExportService;
+import fr.ifremer.echobase.services.DbImportService;
import fr.ifremer.echobase.services.ImportDbConfiguration;
import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport;
import org.apache.commons.logging.Log;
@@ -54,7 +54,7 @@
protected CsvImportResult importResult;
/** service to execute the import. */
- protected transient DbImportExportService service;
+ protected transient DbImportService service;
protected ActionContext actionContext;
@@ -77,7 +77,7 @@
}
model = getEchoBaseSession().getImportDbConfiguration();
- service = newService(DbImportExportService.class);
+ service = newService(DbImportService.class);
}
@Override
@@ -88,9 +88,10 @@
ActionContext.setContext(actionContext);
// we must use a standalone transaction since it will pass through
- // in more thna one request
+ // in more than one request
- TopiaContextImplementor tx = (TopiaContextImplementor) serviceContext.getTransaction();
+ TopiaContextImplementor tx =
+ (TopiaContextImplementor) serviceContext.getTransaction();
TopiaContextImplementor rootContext = tx.getRootContext();
TopiaContext topiaContext = rootContext.beginTransaction();
serviceContext.setTransaction(topiaContext);
1
0
r193 - trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:05:26 +0100 (Thu, 15 Dec 2011)
New Revision: 193
Url: http://forge.codelutin.com/repositories/revision/echobase/193
Log:
fix layout
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp 2011-12-15 11:05:12 UTC (rev 192)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/export/createEmbeddedApplication.jsp 2011-12-15 11:05:26 UTC (rev 193)
@@ -34,7 +34,7 @@
<fieldset>
<legend><s:text name="echobase.legend.embeddedApplication.configuration"/></legend>
- <s:checkboxlist list="voyages" key="voyageIds"
+ <s:checkboxlist list="voyages" key="voyageIds" template="mycheckboxlist"
label="%{getText('echobase.label.voyageToSelect')}"/>
<s:textfield key="fileName" required="true" size="100"
@@ -46,14 +46,19 @@
<s:if test="!hasActionErrors()">
<br/>
- <s:submit key="echobase.action.createEmbeddedApplication"
- action="downloadEmbeddedApplication"
- align="right"/>
+
</s:if>
</fieldset>
- <div>(*) Il s'agit du nom de l'archvie et du répertoire contenu dans l'archive,
+
+ <br/>
+
+ <s:submit key="echobase.action.createEmbeddedApplication"
+ action="downloadEmbeddedApplication"
+ align="right"/>
+
+ <div>(*) Il s'agit du nom de l'archive et du répertoire contenu dans l'archive,
l'extension <strong>.zip</strong> sera automatiquement rajoutée.</div>
</s:form>
1
0
r192 - trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:05:12 +0100 (Thu, 15 Dec 2011)
New Revision: 192
Url: http://forge.codelutin.com/repositories/revision/echobase/192
Log:
more time for wait in import db action
Modified:
trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp
Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp
===================================================================
--- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp 2011-12-15 11:04:07 UTC (rev 191)
+++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/importDb/progress.jsp 2011-12-15 11:05:12 UTC (rev 192)
@@ -26,7 +26,7 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<s:url id="url" action="doImport" namespace="/importDb"/>
-<meta http-equiv="refresh" content="1;url=${url}"/>
+<meta http-equiv="refresh" content="5;url=${url};"/>
<title><s:text name="echobase.title.importDbProgress"/></title>
1
0
r191 - in trunk/echobase-ui/src/main/env: dev/resources prod/resources
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:04:07 +0100 (Thu, 15 Dec 2011)
New Revision: 191
Url: http://forge.codelutin.com/repositories/revision/echobase/191
Log:
improve log levels
Modified:
trunk/echobase-ui/src/main/env/dev/resources/log4j.properties
trunk/echobase-ui/src/main/env/prod/resources/log4j.properties
Modified: trunk/echobase-ui/src/main/env/dev/resources/log4j.properties
===================================================================
--- trunk/echobase-ui/src/main/env/dev/resources/log4j.properties 2011-12-15 11:03:47 UTC (rev 190)
+++ trunk/echobase-ui/src/main/env/dev/resources/log4j.properties 2011-12-15 11:04:07 UTC (rev 191)
@@ -33,3 +33,4 @@
log4j.logger.fr.ifremer.echobase=INFO
log4j.logger.org.nuiton=WARN
log4j.logger.org.nuiton.topia.migration=INFO
+log4j.logger.com.opensymphony.xwork2.util.logging.commons.CommonsLogger=ERROR
Modified: trunk/echobase-ui/src/main/env/prod/resources/log4j.properties
===================================================================
--- trunk/echobase-ui/src/main/env/prod/resources/log4j.properties 2011-12-15 11:03:47 UTC (rev 190)
+++ trunk/echobase-ui/src/main/env/prod/resources/log4j.properties 2011-12-15 11:04:07 UTC (rev 191)
@@ -29,5 +29,6 @@
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd hh:mm:ss} %5p (%F:%L) %m%n
-log4j.logger.fr.ifremer.echobase=WARN
+log4j.logger.fr.ifremer.echobase=INFO
log4j.logger.org.nuiton.topia.migration=INFO
+log4j.logger.com.opensymphony.xwork2.util.logging.commons.CommonsLogger=ERROR
1
0
Author: tchemit
Date: 2011-12-15 12:03:47 +0100 (Thu, 15 Dec 2011)
New Revision: 190
Url: http://forge.codelutin.com/repositories/revision/echobase/190
Log:
readd msaccess importer for float converter,... but perharps We could remove it
Modified:
trunk/echobase-ui/pom.xml
trunk/pom.xml
Modified: trunk/echobase-ui/pom.xml
===================================================================
--- trunk/echobase-ui/pom.xml 2011-12-15 11:03:18 UTC (rev 189)
+++ trunk/echobase-ui/pom.xml 2011-12-15 11:03:47 UTC (rev 190)
@@ -34,6 +34,11 @@
</dependency>
<dependency>
+ <groupId>fr.ird</groupId>
+ <artifactId>msaccess-importer</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton.web</groupId>
<artifactId>nuiton-struts2</artifactId>
</dependency>
@@ -287,27 +292,7 @@
</configuration>
</plugin>
- </plugins>
- </pluginManagement>
- </build>
-
- <profiles>
-
- <profile>
- <id>do-release</id>
- <activation>
- <property>
- <name>performRelease</name>
- <value>true</value>
- </property>
- </activation>
- <properties>
- <env>prod</env>
- </properties>
-
- <build>
- <plugins>
- <plugin>
+ <plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
@@ -332,10 +317,13 @@
</overlays>
</configuration>
</plugin>
- </plugins>
- </build>
- </profile>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <profiles>
+
<profile>
<id>selenium</id>
<activation>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-12-15 11:03:18 UTC (rev 189)
+++ trunk/pom.xml 2011-12-15 11:03:47 UTC (rev 190)
@@ -108,7 +108,7 @@
<eugenePluginVersion>2.4.1</eugenePluginVersion>
<topiaVersion>2.6.4</topiaVersion>
- <nuitonUtilsVersion>2.4.1-SNAPSHOT</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.4.1</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
<nuitonWebVersion>1.8</nuitonWebVersion>
<msaccessImporterVersion>1.4.1</msaccessImporterVersion>
@@ -143,6 +143,13 @@
<!-- librairie d'access aux bases ms-access -->
<dependency>
+ <groupId>fr.ird</groupId>
+ <artifactId>msaccess-importer</artifactId>
+ <version>${msaccessImporterVersion}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
<groupId>com.healthmarketscience.jackcess</groupId>
<artifactId>jackcess</artifactId>
<version>${jackcessVersion}</version>
1
0
r189 - in trunk/src: doc/reunions site/resources/model
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:03:18 +0100 (Thu, 15 Dec 2011)
New Revision: 189
Url: http://forge.codelutin.com/repositories/revision/echobase/189
Log:
catches model + reunion CR
Added:
trunk/src/site/resources/model/referenceLengthAgeKey.png
trunk/src/site/resources/model/referenceOperation.png
trunk/src/site/resources/model/referenceStrata.png
trunk/src/site/resources/model/referenceWeightLengthKey.png
Modified:
trunk/src/doc/reunions/reunion-2011-12-14.txt
trunk/src/site/resources/model/dataAcoustic.png
trunk/src/site/resources/model/dataCatches.png
trunk/src/site/resources/model/dataCommon.png
trunk/src/site/resources/model/referenceAll.png
trunk/src/site/resources/model/referenceGear.png
Modified: trunk/src/doc/reunions/reunion-2011-12-14.txt
===================================================================
--- trunk/src/doc/reunions/reunion-2011-12-14.txt 2011-12-15 11:02:55 UTC (rev 188)
+++ trunk/src/doc/reunions/reunion-2011-12-14.txt 2011-12-15 11:03:18 UTC (rev 189)
@@ -3,7 +3,7 @@
Mercredi 14-12-2011 (Ifremer)
-Présents : Mathieu et Tony
+Présents : Mathieu, Vincent et Tony
Planning
--------
@@ -11,13 +11,42 @@
- Finaliser le modèle pêche et commencer ses imports
- Présentation de l'application (déployée sur Démo)
+Modèle pêche
+------------
+
+- présentation et discussion autour des modifications effectuées sur le modèle
+ pêche.
+
+- description des imports pêches historiques (depuis baracouda)
+
+Cela semble réalisable :)
+
+- Il reste quelques petits points à finaliser du côte de l'Ifremer
+ (fournir certains référentiels) mais c'est non bloquant pour effectuer
+ l'import des données.
+
+A noter :
+
+ -Station#engin : clef métier d'un engin dans baracouda
+
+ - Attention à bien vérifier que lorsqu'un nombre vaut 0, alors on récupère bien
+ depuis ms-access 0 et non pas null.
+
+ - Le SampleData#dataValue peut-être nulle (Float et pas float).
+
Action
------
- Code
+ - répercuter les modifications du modèle pêche
+ - commencer les import pêches depuis baracouda
+ - livrer une version 0.2 stable avec sur démo les données acoustiques.
+
- Ifremer
+ - fournir les référentiels manquants
+
Prochaine réunion :
- - Lundi 19 à 10h00 à l'Ifremer
\ No newline at end of file
+ - Lundi 19 à 10h00 à l'Ifremer avec Mathieu
\ No newline at end of file
Modified: trunk/src/site/resources/model/dataAcoustic.png
===================================================================
(Binary files differ)
Modified: trunk/src/site/resources/model/dataCatches.png
===================================================================
(Binary files differ)
Modified: trunk/src/site/resources/model/dataCommon.png
===================================================================
(Binary files differ)
Modified: trunk/src/site/resources/model/referenceAll.png
===================================================================
(Binary files differ)
Modified: trunk/src/site/resources/model/referenceGear.png
===================================================================
(Binary files differ)
Added: trunk/src/site/resources/model/referenceLengthAgeKey.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/model/referenceLengthAgeKey.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/resources/model/referenceOperation.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/model/referenceOperation.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/resources/model/referenceStrata.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/model/referenceStrata.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/src/site/resources/model/referenceWeightLengthKey.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/model/referenceWeightLengthKey.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r188 - in trunk/echobase-tools/src: main/java/fr/ifremer/echobase/tools/loaders test/java/fr/ifremer/echobase/tools/loaders test/resources/csv/new
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:02:55 +0100 (Thu, 15 Dec 2011)
New Revision: 188
Url: http://forge.codelutin.com/repositories/revision/echobase/188
Log:
impacts from catches model
Added:
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/StrataLoaderTest.java
trunk/echobase-tools/src/test/resources/csv/new/input-Strata.csv
Removed:
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java
trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv
Modified:
trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java
trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java
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-15 11:02:33 UTC (rev 187)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -36,7 +36,7 @@
import fr.ifremer.echobase.entities.meta.TableMeta;
import fr.ifremer.echobase.services.CsvImportResult;
import fr.ifremer.echobase.services.DbEditorService;
-import fr.ifremer.echobase.services.DbImportExportService;
+import fr.ifremer.echobase.services.DbImportService;
import fr.ifremer.echobase.services.EchoBaseServiceContext;
import fr.ifremer.echobase.services.EchoBaseServiceSupport;
import fr.ifremer.echobase.services.models.EntityCsvModel;
@@ -332,7 +332,7 @@
boolean commit,
FileType... fileTypes) throws IOException, TopiaException {
- DbImportExportService service = newService(DbImportExportService.class);
+ DbImportService service = newService(DbImportService.class);
for (FileType fileType : fileTypes) {
Deleted: 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 2011-12-15 11:02:33 UTC (rev 187)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -1,62 +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.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_BATHYMETRY);
- model.newMandatoryColumn(Localisation.PROPERTY_SEAFLOOR_SUBSTRATE);
- return model;
- }
-
-
-}
\ No newline at end of file
Copied: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java (from rev 185, trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/LocalisationLoader.java)
===================================================================
--- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java (rev 0)
+++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/StrataLoader.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -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.Strata;
+import fr.ifremer.echobase.services.models.EntityCsvModel;
+import fr.ifremer.echobase.tools.FileType;
+
+/**
+ * Loader of {@link Strata}.
+ * <p/>
+ * TODO Import it.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class StrataLoader extends EntityLoader<Strata> {
+
+ public StrataLoader() {
+ super(Strata.class, FileType.NEW);
+ }
+
+ @Override
+ protected EntityCsvModel<Strata> createCsvImportModel(TableMeta meta) {
+
+ EntityCsvModel<Strata> model = EntityCsvModel.newModel(
+ getCsvSeparator(),
+ meta
+ );
+ model.newMandatoryColumn(Strata.PROPERTY_MAX_LATITUDE);
+ model.newMandatoryColumn(Strata.PROPERTY_MIN_LATITUDE);
+ model.newMandatoryColumn(Strata.PROPERTY_MAX_LONGITUDE);
+ model.newMandatoryColumn(Strata.PROPERTY_MIN_LONGITUDE);
+ model.newMandatoryColumn(Strata.PROPERTY_DEPTH_STRATUM);
+ model.newMandatoryColumn(Strata.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/StrataLoader.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/AbstractLoaderTest.java
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java 2011-12-15 11:02:33 UTC (rev 187)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/AbstractLoaderTest.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -349,7 +349,7 @@
entityLoaders.add(newService(CellMethodLoader.class));
entityLoaders.add(newService(DataMetadataLoader.class));
entityLoaders.add(newService(TSParametersLoader.class));
- entityLoaders.add(newService(LocalisationLoader.class));
+ entityLoaders.add(newService(StrataLoader.class));
entityLoaders.add(newService(EchotypeCategoryLoader.class));
entityLoaders.add(newService(EchotypeLoader.class));
entityLoaders.add(newService(VesselTypeLoader.class));
Deleted: 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 2011-12-15 11:02:33 UTC (rev 187)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -1,46 +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.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();
- }
-
-}
Copied: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/StrataLoaderTest.java (from rev 185, trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/LocalisationLoaderTest.java)
===================================================================
--- trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/StrataLoaderTest.java (rev 0)
+++ trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/StrataLoaderTest.java 2011-12-15 11:02:55 UTC (rev 188)
@@ -0,0 +1,46 @@
+/*
+ * #%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.Strata;
+import org.junit.Test;
+
+/**
+ * To test the {@link StrataLoader}.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class StrataLoaderTest extends AbstractLoaderTest<Strata, StrataLoader> {
+
+ public StrataLoaderTest() {
+ super(StrataLoader.class, 0, 0);
+ }
+
+ @Test
+ public void testGenerateNewEntities() throws Exception {
+ generateNewEntities();
+ }
+
+}
Property changes on: trunk/echobase-tools/src/test/java/fr/ifremer/echobase/tools/loaders/StrataLoaderTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Deleted: trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv 2011-12-15 11:02:33 UTC (rev 187)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv 2011-12-15 11:02:55 UTC (rev 188)
@@ -1 +0,0 @@
-maxLatitude;minLatitude;maxLongitude;minLongitude;seafloorSubstrate;bathymetre
\ No newline at end of file
Copied: trunk/echobase-tools/src/test/resources/csv/new/input-Strata.csv (from rev 185, trunk/echobase-tools/src/test/resources/csv/new/input-Localisation.csv)
===================================================================
--- trunk/echobase-tools/src/test/resources/csv/new/input-Strata.csv (rev 0)
+++ trunk/echobase-tools/src/test/resources/csv/new/input-Strata.csv 2011-12-15 11:02:55 UTC (rev 188)
@@ -0,0 +1 @@
+maxLatitude;minLatitude;maxLongitude;minLongitude;seafloorSubstrate;depthStratum
\ No newline at end of file
Property changes on: trunk/echobase-tools/src/test/resources/csv/new/input-Strata.csv
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0
r187 - in trunk/echobase-services/src: main/java/fr/ifremer/echobase/services main/java/fr/ifremer/echobase/services/models test/java/fr/ifremer/echobase/services
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:02:33 +0100 (Thu, 15 Dec 2011)
New Revision: 187
Url: http://forge.codelutin.com/repositories/revision/echobase/187
Log:
- explode DbImportEXportService into two services
- split decoratorService
- try to improve the entity association model (need to be continued)
Added:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationImportModel.java
Removed:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java
Modified:
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java
trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java
trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/DbImportExportServiceTest.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-15 11:01:21 UTC (rev 186)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -73,6 +73,8 @@
/** Logger. */
private static final Log log = LogFactory.getLog(DbEditorService.class);
+ public static final TimeLog timeLog = new TimeLog(DbEditorService.class);
+
protected DecoratorService decoratorService;
protected DecoratorService getDecoratorService() {
@@ -665,8 +667,6 @@
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());
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java (from rev 184, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -0,0 +1,129 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.echobase.EchoBaseIOUtil;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+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 org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.TimeLog;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ * Service to import / export a complete db.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class DbExportService extends EchoBaseServiceSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(DbExportService.class);
+
+ public static final TimeLog timeLog = new TimeLog(DbEditorService.class);
+
+ protected DbEditorService dbEditorService;
+
+ /**
+ * Export the complete db into csv files stored in a zip archive file.
+ *
+ * @param fileName file name of the zip to create
+ * @return the zip archive file
+ */
+ public File exportDb(String fileName) {
+ File tempDirectory = new File(FileUtils.getTempDirectory(),
+ "echobase-exportDb_" + System.nanoTime());
+ tempDirectory.deleteOnExit();
+
+ 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(dir, entry.getFilename());
+
+ if (entry instanceof AssociationMeta) {
+ AssociationMeta associationMeta = (AssociationMeta) entry;
+ service.exportDatas(associationMeta, entryFile);
+ } else {
+ TableMeta meta = (TableMeta) entry;
+ service.exportDatas(meta, entryFile);
+ }
+ }
+
+ EchoBaseIOUtil.compressZipFile(zipFile, dir);
+
+ return zipFile;
+ }
+
+ public MetaFilenameAware[] getEntries() {
+
+ List<MetaFilenameAware> entities = Lists.newArrayList();
+ List<MetaFilenameAware> associations = Lists.newArrayList();
+
+ 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> entities,
+ List<MetaFilenameAware> associations,
+ EchoBaseEntityEnum[] types) {
+ for (EchoBaseEntityEnum type : types) {
+
+ TableMeta tableMeta = getTableMeta(type);
+ entities.add(tableMeta);
+
+// for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
+// associations.add(associationMeta);
+// }
+ associations.addAll(tableMeta.getAssociations());
+ }
+ }
+
+ protected DbEditorService getDbEditorService() {
+ if (dbEditorService == null) {
+ dbEditorService = newService(DbEditorService.class);
+ }
+ return dbEditorService;
+ }
+
+}
Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.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/DbImportExportService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-15 11:01:21 UTC (rev 186)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -1,361 +0,0 @@
-/*
- * #%L
- * EchoBase :: Services
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2011 Ifremer, Codelutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package fr.ifremer.echobase.services;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import fr.ifremer.echobase.EchoBaseFunctions;
-import fr.ifremer.echobase.EchoBaseIOUtil;
-import fr.ifremer.echobase.EchoBaseTechnicalException;
-import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.EntitiesUtil;
-import fr.ifremer.echobase.entities.EntityModificationLog;
-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.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;
-import org.nuiton.util.csv.ImportModel;
-
-import java.io.File;
-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;
-import java.util.zip.ZipFile;
-
-/**
- * Service to import / export a complete db.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class DbImportExportService extends EchoBaseServiceSupport {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(DbImportExportService.class);
-
- protected DbEditorService dbEditorService;
-
- /**
- * Import a complete db from the given zip file.
- *
- * @param model model of the db import operation
- * @param user user which perform the import
- * @throws IOException if any io exception while import
- * @throws TopiaException if any pb while topia treatment
- */
- public void importDb(ImportDbConfiguration model, EchoBaseUser user) throws IOException, TopiaException {
-
- File file = model.getInput().getFile();
-
- ZipFile zipFile = new ZipFile(file);
- try {
- MetaFilenameAware[] entries = getEntries();
-
- List<String> missingEntries = Lists.newArrayList();
-
- Map<MetaFilenameAware, ZipEntry> entriestoConsume =
- Maps.newLinkedHashMap();
-
- // check that all mandatories
- for (MetaFilenameAware entry : entries) {
- String filename = entry.getFilename();
- ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename);
-
- if (zipEntry == null) {
- missingEntries.add(filename);
- } else {
- entriestoConsume.put(entry, zipEntry);
- }
- }
-
- if (!missingEntries.isEmpty()) {
-
- 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);
- }
-
- 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(
- entryDef.getSource(),
- value.getName(),
- false
- );
- Reader reader =
- new InputStreamReader(zipFile.getInputStream(value));
- try {
- importFile(entryDef, reader, csvResult);
- } finally {
- reader.close();
- }
- }
-
- // add a log entry of import db
- if (log.isInfoEnabled()) {
- log.info("Import done with user " + user.getEmail());
- }
- TopiaDAO<EntityModificationLog> dao =
- getDAO(EntityModificationLog.class);
-
- dao.create(
- EntityModificationLog.PROPERTY_ENTITY_TYPE, "import db",
- EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db",
- EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
- EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
- EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file
- );
- commitTransaction("Could not commit db import from file " + file);
- } finally {
- zipFile.close();
- }
- }
-
- /**
- * Export the complete db into csv files stored in a zip archive file.
- *
- * @param fileName file name of the zip to create
- * @return the zip archive file
- */
- public File exportDb(String fileName) {
- File tempDirectory = new File(FileUtils.getTempDirectory(),
- "echobase-exportDb_" + System.nanoTime());
- tempDirectory.deleteOnExit();
-
- 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(dir, entry.getFilename());
-
- if (entry instanceof AssociationMeta) {
- AssociationMeta associationMeta = (AssociationMeta) entry;
- service.exportDatas(associationMeta, entryFile);
- } else {
- TableMeta meta = (TableMeta) entry;
- service.exportDatas(meta, entryFile);
- }
- }
-
- EchoBaseIOUtil.compressZipFile(zipFile, dir);
-
- return zipFile;
- }
-
- public void importFile(MetaFilenameAware entry,
- Reader reader,
- CsvImportResult csvResult) throws IOException {
-
- DbEditorService service = getDbEditorService();
-
- if (entry instanceof AssociationMeta) {
-
- // load a association input
-
- AssociationMeta associationMeta = (AssociationMeta) entry;
-
- EchoBaseEntityEnum target = associationMeta.getTarget();
- List<TopiaEntity> targetEntities = getEntities(target);
- Map<String, TopiaEntity> targetsById =
- Maps.uniqueIndex(targetEntities, EchoBaseFunctions.TO_TOPIAID);
-
- ImportModel<TopiaEntity> model =
- EntityAssociationCsvModel.newImportModel(
- getConfiguration().getCsvSeparator(),
- associationMeta,
- targetsById
- );
-
- importEntityAssociation(associationMeta, model, csvResult, reader);
-
- } else {
-
- // normal entity table import
-
- TableMeta tableMeta = (TableMeta) entry;
-
- ImportExportModel<TopiaEntity> model =
- service.buildForImport(tableMeta);
-
- importEntities(tableMeta, model, csvResult, reader);
- }
- }
-
- public MetaFilenameAware[] getEntries() {
-
- List<MetaFilenameAware> entities = Lists.newArrayList();
- List<MetaFilenameAware> associations = Lists.newArrayList();
-
- 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> entities,
- List<MetaFilenameAware> associations,
- EchoBaseEntityEnum[] types) {
- for (EchoBaseEntityEnum type : types) {
-
- TableMeta tableMeta = getTableMeta(type);
- entities.add(tableMeta);
-
-// for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
-// associations.add(associationMeta);
-// }
- associations.addAll(tableMeta.getAssociations());
- }
- }
-
- protected DbEditorService getDbEditorService() {
- if (dbEditorService == null) {
- dbEditorService = newService(DbEditorService.class);
- }
- return dbEditorService;
- }
-
- protected void importEntities(TableMeta meta,
- ImportExportModel<TopiaEntity> csvModel,
- 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());
-
- for (TopiaEntity entity : importer) {
-
-
- TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID,
- entity.getTopiaId());
-
- meta.copy(entity, entityToSave);
-
- result.incrementsNumberUpdated();
- }
- } catch (Exception eee) {
- throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getSource(), eee);
- } finally {
-
- importer.close();
- }
- }
-
- protected <E extends TopiaEntity> void importEntityAssociation(AssociationMeta meta,
- ImportModel<E> csvModel,
- CsvImportResult result,
- Reader reader) {
- if (log.isInfoEnabled()) {
- log.info("Will import " + meta);
- }
- try {
-
- EchoBaseEntityEnum sourceType = meta.getSource();
-// EchoBaseEntityEnum targetType = meta.getTarget();
-
- Import<E> importer = Import.newImport(csvModel, reader);
- TopiaDAO<E> sourceDAO = getDAO(sourceType);
-// TopiaDAO<TopiaEntity> targetDAO = getDAO(targetType);
- List<E> sourceEntities = getEntities(sourceType);
- Map<String, E> sourcesById =
- Maps.uniqueIndex(sourceEntities, EchoBaseFunctions.TO_TOPIAID);
- try {
- for (E row : importer) {
- E entityToSave = sourcesById.get(row.getTopiaId());
- Collection<TopiaEntity> assoc = meta.getChilds(row);
- meta.setChilds(entityToSave, assoc);
-// sourceDAO.update(entityToSave);
-
-// 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 {
-
- importer.close();
- }
-
- commitTransaction("Could not commit transaction");
- } catch (TopiaException eee) {
- throw new EchoBaseTechnicalException(eee);
- }
- }
-}
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java (from rev 184, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportExportService.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbImportService.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -0,0 +1,427 @@
+/*
+ * #%L
+ * EchoBase :: Services
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Ifremer, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.echobase.services;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import fr.ifremer.echobase.EchoBaseFunctions;
+import fr.ifremer.echobase.EchoBaseTechnicalException;
+import fr.ifremer.echobase.entities.EchoBaseEntityEnum;
+import fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.EntitiesUtil;
+import fr.ifremer.echobase.entities.EntityModificationLog;
+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.EntityAssociationImportModel;
+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.StringUtil;
+import org.nuiton.util.TimeLog;
+import org.nuiton.util.csv.Import;
+import org.nuiton.util.csv.ImportExportModel;
+import org.nuiton.util.csv.ImportModel;
+import org.nuiton.util.csv.ImportToMap;
+
+import java.io.File;
+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;
+import java.util.zip.ZipFile;
+
+/**
+ * Service to import a complete db.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class DbImportService extends EchoBaseServiceSupport {
+
+ /** Logger. */
+ private static final Log log =
+ LogFactory.getLog(DbImportService.class);
+
+ public static final TimeLog timeLog = new TimeLog(DbImportService.class);
+
+ protected DbEditorService dbEditorService;
+
+ protected Map<MetaFilenameAware, ZipEntry> discoverEntries(File file, ZipFile zipFile) {
+
+ List<String> missingEntries = Lists.newArrayList();
+
+ Map<MetaFilenameAware, ZipEntry> result =
+ Maps.newLinkedHashMap();
+
+ MetaFilenameAware[] entries = getEntries();
+
+ // check that all mandatories
+ for (MetaFilenameAware entry : entries) {
+ String filename = entry.getFilename();
+ ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename);
+
+ if (zipEntry == null) {
+ missingEntries.add(filename);
+ } else {
+ result.put(entry, zipEntry);
+ }
+ }
+ if (!missingEntries.isEmpty()) {
+
+ 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);
+ }
+
+ return result;
+ }
+
+ /**
+ * Import a complete db from the given zip file.
+ *
+ * @param model model of the db import operation
+ * @param user user which perform the import
+ * @throws IOException if any io exception while import
+ * @throws TopiaException if any pb while topia treatment
+ */
+ public void importDb(ImportDbConfiguration model,
+ EchoBaseUser user) throws IOException, TopiaException {
+
+ File file = model.getInput().getFile();
+
+ ZipFile zipFile = new ZipFile(file);
+ try {
+// MetaFilenameAware[] entries = getEntries();
+//
+// List<String> missingEntries = Lists.newArrayList();
+
+ Map<MetaFilenameAware, ZipEntry> entriestoConsume = discoverEntries(
+ file, zipFile);
+
+// // check that all mandatories
+// for (MetaFilenameAware entry : entries) {
+// String filename = entry.getFilename();
+// ZipEntry zipEntry = zipFile.getEntry("echobase/" + filename);
+//
+// if (zipEntry == null) {
+// missingEntries.add(filename);
+// } else {
+// entriestoConsume.put(entry, zipEntry);
+// }
+// }
+//
+// if (!missingEntries.isEmpty()) {
+//
+// 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);
+// }
+
+ 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(
+ entryDef.getSource(),
+ value.getName(),
+ false
+ );
+ Reader reader =
+ new InputStreamReader(zipFile.getInputStream(value));
+ try {
+ importFile(entryDef, reader, csvResult);
+ } finally {
+ reader.close();
+ }
+ }
+
+ // add a log entry of import db
+ if (log.isInfoEnabled()) {
+ log.info("Import done with user " + user.getEmail());
+ }
+ TopiaDAO<EntityModificationLog> dao =
+ getDAO(EntityModificationLog.class);
+
+ dao.create(
+ EntityModificationLog.PROPERTY_ENTITY_TYPE, "import db",
+ EntityModificationLog.PROPERTY_ENTITY_ID, "Complete db",
+ EntityModificationLog.PROPERTY_MODIFICATION_USER, user.getEmail(),
+ EntityModificationLog.PROPERTY_MODIFICATION_DATE, newDate(),
+ EntityModificationLog.PROPERTY_MODIFICATION_TEXT, "import db from file " + file.getName()
+ );
+ commitTransaction("Could not commit db import from file " + file);
+ } finally {
+ zipFile.close();
+ }
+ }
+
+ static class MyImportToMap extends ImportToMap {
+
+ public static MyImportToMap newImport(ImportModel<Map<String, Object>> model,
+ Reader reader) {
+ return new MyImportToMap(model, reader);
+ }
+
+ protected MyImportToMap(ImportModel<Map<String, Object>> model, Reader reader) {
+ super(model, reader);
+ this.reader.setSafetySwitch(false);
+ }
+
+
+ }
+
+ public <E extends TopiaEntity> void importFile(MetaFilenameAware entry,
+ Reader reader,
+ CsvImportResult csvResult) throws IOException {
+
+ DbEditorService service = getDbEditorService();
+
+ long s0;
+
+ s0 = TimeLog.getTime();
+
+ if (entry instanceof AssociationMeta) {
+
+ // load a association input
+
+ AssociationMeta meta = (AssociationMeta) entry;
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
+
+ EchoBaseEntityEnum source = meta.getSource();
+ EchoBaseEntityEnum target = meta.getTarget();
+ timeLog.log(s0, "importFile::getTargetEntities");
+// List<TopiaEntity> targetEntities = getEntities(target);
+// Map<String, TopiaEntity> targetsById =
+// Maps.uniqueIndex(targetEntities, EchoBaseFunctions.TO_TOPIAID);
+
+ ImportModel<Map<String, Object>> model =
+ EntityAssociationImportModel.newImportModel(
+ getConfiguration().getCsvSeparator(),
+ meta
+ );
+
+// EchoBaseEntityEnum sourceType = meta.getSource();
+
+ ImportToMap importer = MyImportToMap.newImport(model, reader);
+
+ s0 = TimeLog.getTime();
+// List<E> sourceEntities = getEntities(sourceType);
+ timeLog.log(s0, "importFile::getSourceEntities");
+// Map<String, E> sourcesById =
+// Maps.uniqueIndex(sourceEntities, EchoBaseFunctions.TO_TOPIAID);
+ StringBuilder builder = new StringBuilder();
+ try {
+ s0 = TimeLog.getTime();
+ String updateString = "UPDATE " + target.getContract().getSimpleName() + " SET " + source.getContract().getSimpleName() + " = '%s' WHERE topiaId ='%s';";
+ if (log.isInfoEnabled()) {
+ log.info("Will apply " + updateString);
+ }
+ int compt = 0;
+ for (Map<String, Object> row : importer) {
+ String topiaId = (String) row.get(TopiaEntity.TOPIA_ID);
+ String[] associations = (String[]) row.get("target");
+ for (String association : associations) {
+ builder.append(String.format(updateString, topiaId, association)).append('\n');
+ compt++;
+ if (compt == 10000) {
+ // flush it
+ getTransaction().executeSQL(builder.toString());
+ builder = new StringBuilder();
+ }
+ }
+ csvResult.incrementsNumberUpdated();
+ }
+
+ timeLog.log(s0, "importFile::import");
+ } catch (TopiaException eee) {
+ throw new EchoBaseTechnicalException(
+ "Could not execute sql script", eee);
+ } finally {
+
+ importer.close();
+ }
+
+ } else {
+
+ // normal entity table import
+
+ TableMeta meta = (TableMeta) entry;
+
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
+
+ ImportModel<TopiaEntity> model = service.buildForImport(meta);
+
+ Import<TopiaEntity> importer = Import.newImport(model, reader);
+
+ try {
+ TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource());
+ s0 = TimeLog.getTime();
+ for (TopiaEntity entity : importer) {
+
+ TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID,
+ entity.getTopiaId());
+
+ meta.copy(entity, entityToSave);
+
+ csvResult.incrementsNumberUpdated();
+ }
+ timeLog.log(s0, "importFile::import");
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getSource(), eee);
+ } finally {
+
+ importer.close();
+ }
+
+ }
+ }
+
+ public MetaFilenameAware[] getEntries() {
+
+ List<MetaFilenameAware> entities = Lists.newArrayList();
+ List<MetaFilenameAware> associations = Lists.newArrayList();
+
+ 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> entities,
+ List<MetaFilenameAware> associations,
+ EchoBaseEntityEnum[] types) {
+ for (EchoBaseEntityEnum type : types) {
+
+ TableMeta tableMeta = getTableMeta(type);
+ entities.add(tableMeta);
+
+// for (AssociationMeta associationMeta : tableMeta.getAssociations()) {
+// associations.add(associationMeta);
+// }
+ associations.addAll(tableMeta.getAssociations());
+ }
+ }
+
+ protected DbEditorService getDbEditorService() {
+ if (dbEditorService == null) {
+ dbEditorService = newService(DbEditorService.class);
+ }
+ return dbEditorService;
+ }
+
+ protected void mportEntities(TableMeta meta,
+ ImportExportModel<TopiaEntity> csvModel,
+ 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());
+ long s0 = TimeLog.getTime();
+ for (TopiaEntity entity : importer) {
+
+ TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID,
+ entity.getTopiaId());
+
+ meta.copy(entity, entityToSave);
+
+ result.incrementsNumberUpdated();
+ }
+ timeLog.log(s0, "importEntities");
+ } catch (Exception eee) {
+ throw new EchoBaseTechnicalException("Could not import entities of type " + meta.getSource(), eee);
+ } finally {
+
+ importer.close();
+ }
+ }
+
+ protected <E extends TopiaEntity> void mportEntityAssociation(AssociationMeta meta,
+ ImportModel<E> csvModel,
+ CsvImportResult result,
+ Reader reader) {
+ if (log.isInfoEnabled()) {
+ log.info("Will import " + meta);
+ }
+
+ EchoBaseEntityEnum sourceType = meta.getSource();
+
+ Import<E> importer = Import.newImport(csvModel, reader);
+ long s0;
+ s0 = TimeLog.getTime();
+ List<E> sourceEntities = getEntities(sourceType);
+ timeLog.log(s0, "importEntityAssociation::getEntities");
+ Map<String, E> sourcesById =
+ Maps.uniqueIndex(sourceEntities, EchoBaseFunctions.TO_TOPIAID);
+ try {
+ s0 = TimeLog.getTime();
+ for (E row : importer) {
+ E entityToSave = sourcesById.get(row.getTopiaId());
+ Collection<TopiaEntity> assoc = meta.getChilds(row);
+ meta.setChilds(entityToSave, assoc);
+ result.incrementsNumberUpdated();
+ }
+ timeLog.log(s0, "importEntityAssociation::import");
+ } finally {
+
+ importer.close();
+ }
+ }
+}
Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2011-12-15 11:01:21 UTC (rev 186)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DecoratorService.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -26,64 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import fr.ifremer.echobase.entities.EchoBaseUser;
-import fr.ifremer.echobase.entities.ExportQuery;
-import fr.ifremer.echobase.entities.data.Cell;
-import fr.ifremer.echobase.entities.data.Data;
-import fr.ifremer.echobase.entities.data.DataAcquisition;
-import fr.ifremer.echobase.entities.data.DataProcessing;
-import fr.ifremer.echobase.entities.data.Operation;
-import fr.ifremer.echobase.entities.data.OperationGearMetadataValue;
-import fr.ifremer.echobase.entities.data.OperationMetadataValue;
-import fr.ifremer.echobase.entities.data.Result;
-import fr.ifremer.echobase.entities.data.Sample;
-import fr.ifremer.echobase.entities.data.SampleData;
-import fr.ifremer.echobase.entities.data.Transect;
-import fr.ifremer.echobase.entities.data.Transit;
-import fr.ifremer.echobase.entities.data.Voyage;
-import fr.ifremer.echobase.entities.references.AcousticInstrument;
-import fr.ifremer.echobase.entities.references.AgeCategory;
-import fr.ifremer.echobase.entities.references.AreaOfOperation;
-import fr.ifremer.echobase.entities.references.Calibration;
-import fr.ifremer.echobase.entities.references.Category;
-import fr.ifremer.echobase.entities.references.CategoryMeaning;
-import fr.ifremer.echobase.entities.references.CategoryRef;
-import fr.ifremer.echobase.entities.references.CategoryType;
-import fr.ifremer.echobase.entities.references.CellMethod;
-import fr.ifremer.echobase.entities.references.CellType;
-import fr.ifremer.echobase.entities.references.DataMetadata;
-import fr.ifremer.echobase.entities.references.DataProtocol;
-import fr.ifremer.echobase.entities.references.DataQuality;
-import fr.ifremer.echobase.entities.references.DataType;
-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.Gear;
-import fr.ifremer.echobase.entities.references.GearCaracteristic;
-import fr.ifremer.echobase.entities.references.GearMetadata;
-import fr.ifremer.echobase.entities.references.GearMetadataValue;
-import fr.ifremer.echobase.entities.references.GearType;
-import fr.ifremer.echobase.entities.references.Impacte;
-import fr.ifremer.echobase.entities.references.Localisation;
-import fr.ifremer.echobase.entities.references.MeasureType;
-import fr.ifremer.echobase.entities.references.MeasurementMetadata;
-import fr.ifremer.echobase.entities.references.Mission;
-import fr.ifremer.echobase.entities.references.Moment;
-import fr.ifremer.echobase.entities.references.OperationMetadata;
-import fr.ifremer.echobase.entities.references.OperationType;
-import fr.ifremer.echobase.entities.references.ReferenceDatum;
-import fr.ifremer.echobase.entities.references.ReferenceDatumType;
-import fr.ifremer.echobase.entities.references.ReferencingMethod;
-import fr.ifremer.echobase.entities.references.SampleDataType;
-import fr.ifremer.echobase.entities.references.SampleType;
-import fr.ifremer.echobase.entities.references.SexeCategory;
-import fr.ifremer.echobase.entities.references.SizeCategory;
-import fr.ifremer.echobase.entities.references.Species;
-import fr.ifremer.echobase.entities.references.SpeciesCategory;
-import fr.ifremer.echobase.entities.references.Station;
-import fr.ifremer.echobase.entities.references.TSParameters;
-import fr.ifremer.echobase.entities.references.Vessel;
-import fr.ifremer.echobase.entities.references.VesselType;
+import fr.ifremer.echobase.EchoBaseDecoratorProvider;
import org.apache.commons.collections.CollectionUtils;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.decorator.Decorator;
@@ -168,190 +111,4 @@
return decorator;
}
- static class EchoBaseDecoratorProvider extends DecoratorMulti18nProvider {
-
- @Override
- protected void loadDecorators(Locale locale) {
-
- // EchoBaseUser decorator
- registerJXPathDecorator(locale, EchoBaseUser.class, "${email}$s");
-
- // ExportQuery decorator
- registerJXPathDecorator(locale, ExportQuery.class, "${name}$s - ${description}$s");
-
- // AcousticInstrument decorator
- registerJXPathDecorator(locale, AcousticInstrument.class, "${id}$s");
-
- // AgeCategory decorator
- registerJXPathDecorator(locale, AgeCategory.class, "${name}$s");
-
- // AreaOfOperation decorator
- registerJXPathDecorator(locale, AreaOfOperation.class, "${name}$s");
-
- // Calibration decorator
- registerJXPathDecorator(locale, Calibration.class, "${date}$s - acquisition ${aquisitionMethod}$s");
-
- // Category decorator
- registerJXPathDecorator(locale, Category.class, "${classCode}$s ${categoryValue}$s");
-
- // CategoryMeaning decorator
- registerJXPathDecorator(locale, CategoryMeaning.class, "${name}$s");
-
- // CategoryRef decorator
- registerJXPathDecorator(locale, CategoryRef.class, "${genusSpecies}$s");
-
- // CategoryType decorator
- registerJXPathDecorator(locale, CategoryType.class, "${name}$s");
-
- // CellMethod decorator
- registerJXPathDecorator(locale, CellMethod.class, "${name}$s");
-
- // CellType decorator
- registerJXPathDecorator(locale, CellType.class, "${name}$s");
-
- // DataMetadata decorator
- registerJXPathDecorator(locale, DataMetadata.class, "${name}$s");
-
- // DataProtocol decorator
- registerJXPathDecorator(locale, DataProtocol.class, "${description}$s [ ${startValidityDate}$s - ${endValidityDate}$s ]");
-
- // DataQuality decorator
- registerJXPathDecorator(locale, DataQuality.class, "${qualityDataFlagValues}$s - ${flagMeanings}$s");
-
- // DataType decorator
- registerJXPathDecorator(locale, DataType.class, "${name}$s");
-
- // DepthStratum decorator
- registerJXPathDecorator(locale, DepthStratum.class, "${id}$s - ${meaning}$s");
-
- // Echotype decorator
- registerJXPathDecorator(locale, Echotype.class, "${id}$s - ${name}$s");
-
- // EchotypeCategory decorator
- registerJXPathDecorator(locale, EchotypeCategory.class, "${name}$s");
-
- // Gear decorator
- registerJXPathDecorator(locale, Gear.class, "${name}$s [ ${startValidityDate}$s - ${endValidityDate}$s ]");
-
- // GearCaracteristic decorator
- registerJXPathDecorator(locale, GearCaracteristic.class, "${name}$s");
-
- // GearMetadata decorator
- registerJXPathDecorator(locale, GearMetadata.class, "${name}$s");
-
- // GearMetadataValue decorator
- registerJXPathDecorator(locale, GearMetadataValue.class, "${dataValue}$s");
-
- // GearType decorator
- registerJXPathDecorator(locale, GearType.class, "${name}$s");
-
- // Impacte decorator
- registerJXPathDecorator(locale, Impacte.class, "${measurementUnit}$s - ${species.genusSpecies}");
-
- // Localisation decorator
- registerJXPathDecorator(locale, Localisation.class, "Latitude <${minLatitude}$s - ${maxLatitude}$s>, Longitude <${minLongitude}$s - ${maxLongitude}$s>");
-
- // MeasurementMetadata decorator
- registerJXPathDecorator(locale, MeasurementMetadata.class, "${name}$s");
-
- // MeasureType decorator
- registerJXPathDecorator(locale, MeasureType.class, "${name}$s");
-
- // Mission decorator
- registerJXPathDecorator(locale, Mission.class, "${name}$s");
-
- // Moment decorator
- registerJXPathDecorator(locale, Moment.class, "${name}$s");
-
- // OperationMetadata decorator
- registerJXPathDecorator(locale, OperationMetadata.class, "${name}$s");
-
- // OperationType decorator
- registerJXPathDecorator(locale, OperationType.class, "${name}$s");
-
- // ReferenceDatum decorator
- registerJXPathDecorator(locale, ReferenceDatum.class, "${id}$s");
-
- // ReferenceDatumType decorator
- registerJXPathDecorator(locale, ReferenceDatumType.class, "${name}$s");
-
- // ReferencingMethod decorator
- registerJXPathDecorator(locale, ReferencingMethod.class, "${name}$s");
-
- // SampleDataType decorator
- registerJXPathDecorator(locale, SampleDataType.class, "${name}$s");
-
- // SampleType decorator
- registerJXPathDecorator(locale, SampleType.class, "${name}$s - level ${level}$s");
-
- // SexeCategory decorator
- registerJXPathDecorator(locale, SexeCategory.class, "${name}$s");
-
- // SizeCategory decorator
- registerJXPathDecorator(locale, SizeCategory.class, "${name}$s");
-
- // Species decorator
- registerJXPathDecorator(locale, Species.class, "${genusSpecies}$s");
-
- //TODO
- // SpeciesCategory decorator
- registerJXPathDecorator(locale, SpeciesCategory.class, "${species.genusSpecies}$s - ...");
-
- // Station decorator
- registerJXPathDecorator(locale, Station.class, "${startLatitude}$s - ${startLongitude}$s");
-
- //TODO
- // TSParameters decorator
- registerJXPathDecorator(locale, TSParameters.class, "${}$s");
-
- // Vessel decorator
- registerJXPathDecorator(locale, Vessel.class, "${name}$s");
-
- // VesselType decorator
- registerJXPathDecorator(locale, VesselType.class, "${name}$s");
-
- // Cell decorator
- registerJXPathDecorator(locale, Cell.class, "${name}$s");
-
- // Data decorator
- registerJXPathDecorator(locale, Data.class, "${dataValue}$s");
-
- //TODO
- // DataAcquisition decorator
- registerJXPathDecorator(locale, DataAcquisition.class, "");
-
- //TODO
- // DataProcessing decorator
- registerJXPathDecorator(locale, DataProcessing.class, "");
-
- // Operation decorator
- registerJXPathDecorator(locale, Operation.class, "${startDate}$s - ${endDate}$s");
-
- // OperationGearMetadataValue decorator
- registerJXPathDecorator(locale, OperationGearMetadataValue.class, "${dataValue}");
-
- // OperationMetadataValue decorator
- registerJXPathDecorator(locale, OperationMetadataValue.class, "${dataValue}$s - moment ${moment.name}");
-
- // Result decorator
- registerJXPathDecorator(locale, Result.class, "${resultvalue}$s");
-
- // Sample decorator
- registerJXPathDecorator(locale, Sample.class, "${resultvalue}$s");
-
- // SampleData decorator
- registerJXPathDecorator(locale, SampleData.class, "${resultvalue}$s");
-
- // Transect decorator
- registerJXPathDecorator(locale, Transect.class, "${title}$s - Vessel ${vessel}$s");
-
- // Transit decorator
- registerJXPathDecorator(locale, Transit.class, "${startTime}$s - ${endTime}$s");
-
- // Voyage decorator
- registerJXPathDecorator(locale, Voyage.class, "${voyageName}$s");
-
-
- }
- }
}
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-15 11:01:21 UTC (rev 186)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/CsvModelUtil.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -35,6 +35,7 @@
import org.nuiton.util.StringUtil;
import org.nuiton.util.csv.Common;
import org.nuiton.util.csv.ValueFormatter;
+import org.nuiton.util.csv.ValueParser;
import org.nuiton.util.csv.ValueParserFormatter;
import java.text.ParseException;
@@ -124,6 +125,17 @@
}
}
+ public static final AssociationValueParser ASSOCIATION_VALUE_PARSER = new AssociationValueParser();
+
+ public static class AssociationValueParser implements ValueParser<String[]> {
+
+ @Override
+ public String[] parse(String value) throws ParseException {
+ String[] ids = value.split("\\|");
+ return ids;
+ }
+ }
+
public static class ForeignKeyValue<E extends TopiaEntity> implements ValueParserFormatter<E> {
protected final Class<E> entityType;
Copied: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationImportModel.java (from rev 184, trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationCsvModel.java)
===================================================================
--- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationImportModel.java (rev 0)
+++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/models/EntityAssociationImportModel.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -0,0 +1,102 @@
+/*
+ * #%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 fr.ifremer.echobase.entities.meta.AssociationMeta;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.util.csv.ImportModel;
+import org.nuiton.util.csv.ImportableColumn;
+import org.nuiton.util.csv.ModelBuilder;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A model to import / export associations of entities into csv files.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EntityAssociationImportModel implements ImportModel<Map<String, Object>> {
+
+ protected final char separator;
+
+ protected final AssociationMeta meta;
+
+ protected ModelBuilder<Map<String, Object>> modelBuilder;
+
+ public static ImportModel<Map<String, Object>> newImportModel(char separator,
+ AssociationMeta meta
+ ) {
+ EntityAssociationImportModel model = new EntityAssociationImportModel(
+ separator, meta);
+
+ // topiaId <-> topiaId
+ model.modelBuilder.newMandatoryColumn(
+ TopiaEntity.TOPIA_ID,
+ CsvModelUtil.<Map<String, Object>, String>newMapProperty(TopiaEntity.TOPIA_ID)
+ );
+
+ // add association -> target
+// Class<TopiaEntity> target =
+// (Class<TopiaEntity>) meta.getTarget().getImplementation();
+
+ model.modelBuilder.newMandatoryColumn(
+ meta.getName(),
+ CsvModelUtil.ASSOCIATION_VALUE_PARSER,
+ CsvModelUtil.<Map<String, Object>, String[]>newMapProperty("target")
+ );
+
+ return model;
+ }
+
+ @Override
+ public char getSeparator() {
+ return separator;
+ }
+
+ @Override
+ public Iterable<ImportableColumn<Map<String, Object>, Object>> getColumnsForImport() {
+ return (Collection)
+ modelBuilder.getColumnsForImport();
+ }
+
+ @Override
+ public void pushCsvHeaderNames(List<String> headerNames) {
+ }
+
+ @Override
+ public Map<String, Object> newEmptyInstance() {
+ return null;
+ }
+
+ protected EntityAssociationImportModel(char separator, AssociationMeta meta) {
+ this.separator = separator;
+ this.meta = meta;
+ modelBuilder = new ModelBuilder<Map<String, Object>>();
+ }
+
+
+}
\ No newline at end of file
Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/DbImportExportServiceTest.java
===================================================================
--- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/DbImportExportServiceTest.java 2011-12-15 11:01:21 UTC (rev 186)
+++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/DbImportExportServiceTest.java 2011-12-15 11:02:33 UTC (rev 187)
@@ -47,7 +47,7 @@
import java.util.Set;
/**
- * Test the {@link DbImportExportService}.
+ * Test the {@link DbExportService}.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 0.2
1
0
r186 - in trunk/echobase-entities/src/main: java/fr/ifremer/echobase java/fr/ifremer/echobase/entities resources/i18n xmi
by tchemit@users.forge.codelutin.com 15 Dec '11
by tchemit@users.forge.codelutin.com 15 Dec '11
15 Dec '11
Author: tchemit
Date: 2011-12-15 12:01:21 +0100 (Thu, 15 Dec 2011)
New Revision: 186
Url: http://forge.codelutin.com/repositories/revision/echobase/186
Log:
modify catches model + add decoratorProvider
Added:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
Modified:
trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java
trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties
trunk/echobase-entities/src/main/xmi/echobase.zargo
Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java (rev 0)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java 2011-12-15 11:01:21 UTC (rev 186)
@@ -0,0 +1,281 @@
+/*
+ * #%L
+ * EchoBase :: Entities
+ *
+ * $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 fr.ifremer.echobase.entities.EchoBaseUser;
+import fr.ifremer.echobase.entities.ExportQuery;
+import fr.ifremer.echobase.entities.data.Cell;
+import fr.ifremer.echobase.entities.data.Data;
+import fr.ifremer.echobase.entities.data.DataAcquisition;
+import fr.ifremer.echobase.entities.data.DataProcessing;
+import fr.ifremer.echobase.entities.data.GearMetadataValue;
+import fr.ifremer.echobase.entities.data.Operation;
+import fr.ifremer.echobase.entities.data.OperationMetadataValue;
+import fr.ifremer.echobase.entities.data.Result;
+import fr.ifremer.echobase.entities.data.Sample;
+import fr.ifremer.echobase.entities.data.SampleData;
+import fr.ifremer.echobase.entities.data.Transect;
+import fr.ifremer.echobase.entities.data.Transit;
+import fr.ifremer.echobase.entities.data.Voyage;
+import fr.ifremer.echobase.entities.references.AcousticInstrument;
+import fr.ifremer.echobase.entities.references.AgeCategory;
+import fr.ifremer.echobase.entities.references.AreaOfOperation;
+import fr.ifremer.echobase.entities.references.Calibration;
+import fr.ifremer.echobase.entities.references.Category;
+import fr.ifremer.echobase.entities.references.CategoryMeaning;
+import fr.ifremer.echobase.entities.references.CategoryRef;
+import fr.ifremer.echobase.entities.references.CategoryType;
+import fr.ifremer.echobase.entities.references.CellMethod;
+import fr.ifremer.echobase.entities.references.CellType;
+import fr.ifremer.echobase.entities.references.DataMetadata;
+import fr.ifremer.echobase.entities.references.DataProtocol;
+import fr.ifremer.echobase.entities.references.DataQuality;
+import fr.ifremer.echobase.entities.references.DataType;
+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.Gear;
+import fr.ifremer.echobase.entities.references.GearCharacteristic;
+import fr.ifremer.echobase.entities.references.GearCharacteristicValue;
+import fr.ifremer.echobase.entities.references.GearMetadata;
+import fr.ifremer.echobase.entities.references.GearType;
+import fr.ifremer.echobase.entities.references.Impacte;
+import fr.ifremer.echobase.entities.references.LengthAgeKey;
+import fr.ifremer.echobase.entities.references.MeasureType;
+import fr.ifremer.echobase.entities.references.MeasurementMetadata;
+import fr.ifremer.echobase.entities.references.Mission;
+import fr.ifremer.echobase.entities.references.OperationEvent;
+import fr.ifremer.echobase.entities.references.OperationMetadata;
+import fr.ifremer.echobase.entities.references.OperationType;
+import fr.ifremer.echobase.entities.references.ReferenceDatum;
+import fr.ifremer.echobase.entities.references.ReferenceDatumType;
+import fr.ifremer.echobase.entities.references.ReferencingMethod;
+import fr.ifremer.echobase.entities.references.SampleDataType;
+import fr.ifremer.echobase.entities.references.SampleType;
+import fr.ifremer.echobase.entities.references.SexeCategory;
+import fr.ifremer.echobase.entities.references.SizeCategory;
+import fr.ifremer.echobase.entities.references.Species;
+import fr.ifremer.echobase.entities.references.SpeciesCategory;
+import fr.ifremer.echobase.entities.references.Strata;
+import fr.ifremer.echobase.entities.references.TSParameters;
+import fr.ifremer.echobase.entities.references.Vessel;
+import fr.ifremer.echobase.entities.references.VesselType;
+import fr.ifremer.echobase.entities.references.WeightLengthKey;
+import org.nuiton.util.decorator.DecoratorMulti18nProvider;
+
+import java.util.Locale;
+
+/**
+ * Decorator provider.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class EchoBaseDecoratorProvider extends DecoratorMulti18nProvider {
+
+ @Override
+ protected void loadDecorators(Locale locale) {
+
+ // EchoBaseUser decorator
+ registerJXPathDecorator(locale, EchoBaseUser.class, "${email}$s");
+
+ // ExportQuery decorator
+ registerJXPathDecorator(locale, ExportQuery.class, "${name}$s - ${description}$s");
+
+ // AcousticInstrument decorator
+ registerJXPathDecorator(locale, AcousticInstrument.class, "${id}$s");
+
+ // AgeCategory decorator
+ registerJXPathDecorator(locale, AgeCategory.class, "${name}$s");
+
+ // AreaOfOperation decorator
+ registerJXPathDecorator(locale, AreaOfOperation.class, "${name}$s");
+
+ // Calibration decorator
+ registerJXPathDecorator(locale, Calibration.class, "${date}$s - acquisition ${aquisitionMethod}$s");
+
+ // Category decorator
+ registerJXPathDecorator(locale, Category.class, "${classCode}$s ${categoryValue}$s");
+
+ // CategoryMeaning decorator
+ registerJXPathDecorator(locale, CategoryMeaning.class, "${name}$s");
+
+ // CategoryRef decorator
+ registerJXPathDecorator(locale, CategoryRef.class, "${genusSpecies}$s");
+
+ // CategoryType decorator
+ registerJXPathDecorator(locale, CategoryType.class, "${name}$s");
+
+ // CellMethod decorator
+ registerJXPathDecorator(locale, CellMethod.class, "${name}$s");
+
+ // CellType decorator
+ registerJXPathDecorator(locale, CellType.class, "${name}$s");
+
+ // DataMetadata decorator
+ registerJXPathDecorator(locale, DataMetadata.class, "${name}$s");
+
+ // DataProtocol decorator
+ registerJXPathDecorator(locale, DataProtocol.class, "${description}$s [ ${validSince}$td/%2$tm/%2$tY - ${invalidSince}$td/%3$tm/%3$tY ]");
+
+ // DataQuality decorator
+ registerJXPathDecorator(locale, DataQuality.class, "${qualityDataFlagValues}$s - ${flagMeanings}$s");
+
+ // DataType decorator
+ registerJXPathDecorator(locale, DataType.class, "${name}$s");
+
+ // DepthStratum decorator
+ registerJXPathDecorator(locale, DepthStratum.class, "${id}$s - ${meaning}$s");
+
+ // Echotype decorator
+ registerJXPathDecorator(locale, Echotype.class, "${id}$s - ${name}$s");
+
+ // EchotypeCategory decorator
+ registerJXPathDecorator(locale, EchotypeCategory.class, "${name}$s");
+
+ // Gear decorator
+ registerJXPathDecorator(locale, Gear.class, "${name}$s [ ${validSince}$td/%2$tm/%2$tY - ${invalidSince}$td/%3$tm/%3$tY ]");
+
+ // GearCaracteristic decorator
+ registerJXPathDecorator(locale, GearCharacteristic.class, "${name}$s");
+
+ // GearMetadata decorator
+ registerJXPathDecorator(locale, GearMetadata.class, "${name}$s");
+
+ // GearCharacteristicValue decorator
+ registerJXPathDecorator(locale, GearCharacteristicValue.class, "${dataValue}$s");
+
+ // GearMetadataValue decorator
+ registerJXPathDecorator(locale, GearMetadataValue.class, "${dataValue}$s");
+
+ // GearType decorator
+ registerJXPathDecorator(locale, GearType.class, "${name}$s");
+
+ // Impacte decorator
+ registerJXPathDecorator(locale, Impacte.class, "${measurementUnit}$s - ${species.genusSpecies}");
+
+ // LengthAgeKey decorator
+ registerJXPathDecorator(locale, LengthAgeKey.class, "Age ${age}$s - Length ${length}");
+
+ // MeasurementMetadata decorator
+ registerJXPathDecorator(locale, MeasurementMetadata.class, "${name}$s");
+
+ // MeasureType decorator
+ registerJXPathDecorator(locale, MeasureType.class, "${name}$s");
+
+ // Mission decorator
+ registerJXPathDecorator(locale, Mission.class, "${name}$s");
+
+ // OperationEvent decorator
+ registerJXPathDecorator(locale, OperationEvent.class, "${name}$s");
+
+ // OperationMetadata decorator
+ registerJXPathDecorator(locale, OperationMetadata.class, "${name}$s");
+
+ // OperationType decorator
+ registerJXPathDecorator(locale, OperationType.class, "${name}$s");
+
+ // ReferenceDatum decorator
+ registerJXPathDecorator(locale, ReferenceDatum.class, "${id}$s");
+
+ // ReferenceDatumType decorator
+ registerJXPathDecorator(locale, ReferenceDatumType.class, "${name}$s");
+
+ // ReferencingMethod decorator
+ registerJXPathDecorator(locale, ReferencingMethod.class, "${name}$s");
+
+ // SampleDataType decorator
+ registerJXPathDecorator(locale, SampleDataType.class, "${name}$s");
+
+ // SampleType decorator
+ registerJXPathDecorator(locale, SampleType.class, "${name}$s - level ${level}$s");
+
+ // SexeCategory decorator
+ registerJXPathDecorator(locale, SexeCategory.class, "${name}$s");
+
+ // SizeCategory decorator
+ registerJXPathDecorator(locale, SizeCategory.class, "${name}$s");
+
+ // Species decorator
+ registerJXPathDecorator(locale, Species.class, "${genusSpecies}$s");
+
+ //TODO
+ // SpeciesCategory decorator
+ registerJXPathDecorator(locale, SpeciesCategory.class, "${species.genusSpecies}$s - ...");
+
+ // Strata decorator
+ registerJXPathDecorator(locale, Strata.class, "Latitude <${minLatitude}$s - ${maxLatitude}$s>, Longitude <${minLongitude}$s - ${maxLongitude}$s>");
+
+ //TODO
+ // TSParameters decorator
+ registerJXPathDecorator(locale, TSParameters.class, "${}$s");
+
+ // Vessel decorator
+ registerJXPathDecorator(locale, Vessel.class, "${name}$s");
+
+ // VesselType decorator
+ registerJXPathDecorator(locale, VesselType.class, "${name}$s");
+
+ // WeightLengthKey decorator
+ registerJXPathDecorator(locale, WeightLengthKey.class, "Species ${species.genusSpecies}$s - a=${aParameter}$s, b=${bParameter}$s");
+
+ // Cell decorator
+ registerJXPathDecorator(locale, Cell.class, "${name}$s");
+
+ // Data decorator
+ registerJXPathDecorator(locale, Data.class, "${dataValue}$s");
+
+ //TODO
+ // DataAcquisition decorator
+ registerJXPathDecorator(locale, DataAcquisition.class, "");
+
+ //TODO
+ // DataProcessing decorator
+ registerJXPathDecorator(locale, DataProcessing.class, "");
+
+ // Operation decorator
+ registerJXPathDecorator(locale, Operation.class, "${startDate}$td/%1$tm/%1$tY - ${endDate}$td/%2$tm/%2$tY");
+
+ // OperationMetadataValue decorator
+ registerJXPathDecorator(locale, OperationMetadataValue.class, "${dataValue}$s - moment ${moment.name}");
+
+ // Result decorator
+ registerJXPathDecorator(locale, Result.class, "${resultvalue}$s");
+
+ // Sample decorator
+ registerJXPathDecorator(locale, Sample.class, "${resultvalue}$s");
+
+ // SampleData decorator
+ registerJXPathDecorator(locale, SampleData.class, "${resultvalue}$s");
+
+ // Transect decorator
+ registerJXPathDecorator(locale, Transect.class, "${title}$s - Vessel ${vessel}$s");
+
+ // Transit decorator
+ registerJXPathDecorator(locale, Transit.class, "${startTime}$td/%1$tm/%1$tY - ${endTime}$td/%2$tm/%2$tY");
+
+ // Voyage decorator
+ registerJXPathDecorator(locale, Voyage.class, "${name}$s [ ${startDate}$td/%2$tm/%2$tY - ${endDate}$td/%3$tm/%3$tY ]");
+ }
+}
Property changes on: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/EchoBaseDecoratorProvider.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java
===================================================================
--- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-14 07:14:58 UTC (rev 185)
+++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EntitiesUtil.java 2011-12-15 11:01:21 UTC (rev 186)
@@ -53,7 +53,7 @@
result.add(EchoBaseEntityEnum.Result);
result.add(EchoBaseEntityEnum.Operation);
result.add(EchoBaseEntityEnum.OperationMetadataValue);
- result.add(EchoBaseEntityEnum.OperationGearMetadataValue);
+ result.add(EchoBaseEntityEnum.GearMetadataValue);
result.add(EchoBaseEntityEnum.Sample);
result.add(EchoBaseEntityEnum.SampleData);
@@ -72,7 +72,7 @@
result.add(EchoBaseEntityEnum.Sample);
result.add(EchoBaseEntityEnum.OperationMetadataValue);
- result.add(EchoBaseEntityEnum.OperationGearMetadataValue);
+ result.add(EchoBaseEntityEnum.GearMetadataValue);
result.add(EchoBaseEntityEnum.Operation);
result.add(EchoBaseEntityEnum.Data);
@@ -101,19 +101,19 @@
result.add(EchoBaseEntityEnum.ReferenceDatumType);
result.add(EchoBaseEntityEnum.VesselType);
result.add(EchoBaseEntityEnum.EchotypeCategory);
- result.add(EchoBaseEntityEnum.Localisation);
+ result.add(EchoBaseEntityEnum.Strata);
result.add(EchoBaseEntityEnum.CellMethod);
result.add(EchoBaseEntityEnum.AcousticInstrument);
result.add(EchoBaseEntityEnum.CategoryType);
result.add(EchoBaseEntityEnum.GearType);
result.add(EchoBaseEntityEnum.CategoryMeaning);
result.add(EchoBaseEntityEnum.Species);
- result.add(EchoBaseEntityEnum.GearCaracteristic);
+ result.add(EchoBaseEntityEnum.GearCharacteristic);
result.add(EchoBaseEntityEnum.ReferenceDatum);
result.add(EchoBaseEntityEnum.DepthStratum);
result.add(EchoBaseEntityEnum.Category);
result.add(EchoBaseEntityEnum.ReferencingMethod);
- result.add(EchoBaseEntityEnum.GearMetadataValue);
+ result.add(EchoBaseEntityEnum.GearCharacteristicValue);
result.add(EchoBaseEntityEnum.GearMetadata);
result.add(EchoBaseEntityEnum.Calibration);
result.add(EchoBaseEntityEnum.OperationType);
@@ -123,18 +123,19 @@
result.add(EchoBaseEntityEnum.Vessel);
result.add(EchoBaseEntityEnum.Echotype);
result.add(EchoBaseEntityEnum.DataMetadata);
+ result.add(EchoBaseEntityEnum.LengthAgeKey);
+ result.add(EchoBaseEntityEnum.WeightLengthKey);
result.add(EchoBaseEntityEnum.CellType);
result.add(EchoBaseEntityEnum.Impacte);
result.add(EchoBaseEntityEnum.Mission);
+ result.add(EchoBaseEntityEnum.OperationEvent);
result.add(EchoBaseEntityEnum.OperationMetadata);
- result.add(EchoBaseEntityEnum.Station);
result.add(EchoBaseEntityEnum.AreaOfOperation);
result.add(EchoBaseEntityEnum.CategoryRef);
result.add(EchoBaseEntityEnum.DataQuality);
result.add(EchoBaseEntityEnum.TSParameters);
result.add(EchoBaseEntityEnum.Gear);
result.add(EchoBaseEntityEnum.DataProtocol);
- result.add(EchoBaseEntityEnum.Moment);
result.add(EchoBaseEntityEnum.SpeciesCategory);
return result.toArray(new EchoBaseEntityEnum[result.size()]);
}
@@ -146,7 +147,7 @@
public static EchoBaseEntityEnum[] getReferenceTypesForCopy() {
List<EchoBaseEntityEnum> result = Lists.newLinkedList();
- result.add(EchoBaseEntityEnum.Localisation);
+ result.add(EchoBaseEntityEnum.Strata);
result.add(EchoBaseEntityEnum.SexeCategory);
result.add(EchoBaseEntityEnum.AgeCategory);
result.add(EchoBaseEntityEnum.SizeCategory);
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-14 07:14:58 UTC (rev 185)
+++ trunk/echobase-entities/src/main/resources/i18n/echobase-entities_fr_FR.properties 2011-12-15 11:01:21 UTC (rev 186)
@@ -1,4 +1,5 @@
echobase.common.TSParameters=
+echobase.common.aParameter=
echobase.common.accuracyEstimate=
echobase.common.acknowledgement=
echobase.common.acousticDensityUnit=
@@ -6,6 +7,7 @@
echobase.common.acquisitionSoftwareVersion=
echobase.common.addOffset=
echobase.common.admin=Administrateur
+echobase.common.age=
echobase.common.ageCategory=
echobase.common.altCallsign=
echobase.common.aquisitionMethod=
@@ -15,8 +17,8 @@
echobase.common.authorReference=
echobase.common.axis=
echobase.common.b=
+echobase.common.bParameter=
echobase.common.baracoudaCode=
-echobase.common.bathymetry=
echobase.common.binSizePingAxis=
echobase.common.binSizeRangeAxis=
echobase.common.binUnitsPingAxis=
@@ -41,7 +43,7 @@
echobase.common.dataAcquisition=dataAcquisition
echobase.common.dataCentre=Centre de données
echobase.common.dataCentreEmail=Courriel du centre de données
-echobase.common.dataClass=
+echobase.common.dataLabel=
echobase.common.dataMetadata=
echobase.common.dataProcessing=dataProcessing
echobase.common.dataProtocol=
@@ -67,8 +69,6 @@
echobase.common.endLocality=
echobase.common.endPort=
echobase.common.endTime=
-echobase.common.endTimeFillageEngin=
-echobase.common.endValidityDate=
echobase.common.enginePower=
echobase.common.entityId=Identifiant de l'entité
echobase.common.entityModificationLog=Journal des modifications
@@ -80,13 +80,16 @@
echobase.common.flagMeanings=
echobase.common.frequency=
echobase.common.gear=
-echobase.common.gearCaracteristic=
+echobase.common.gearCharacteristic=
+echobase.common.gearCharacteristicValue=
echobase.common.gearMetadata=
echobase.common.gearMetadataValue=
echobase.common.gearShootingEndLatitude=
echobase.common.gearShootingEndLongitude=
+echobase.common.gearShootingEndTime=
echobase.common.gearShootingStartLatitude=
echobase.common.gearShootingStartLongitude=
+echobase.common.gearShootingStartTime=
echobase.common.gearType=
echobase.common.genusSpecies=
echobase.common.geospatialLatMax=
@@ -96,22 +99,23 @@
echobase.common.geospatialVerticalMax=
echobase.common.geospatialVerticalMin=
echobase.common.geospatialVerticalPositive=
+echobase.common.group=
echobase.common.history=
echobase.common.id=Identifiant
echobase.common.imo=
echobase.common.impacte=
echobase.common.institution=Institution
+echobase.common.invalidSince=
echobase.common.keywords=Môts clefs
-echobase.common.label=
echobase.common.lastModifiedDate=Date de dernière modification
echobase.common.lastModifiedUser=Utilisateur de dernière modification
echobase.common.length=
+echobase.common.lengthAgeKey=
echobase.common.level=
echobase.common.licence=
echobase.common.linestring=
echobase.common.litteratureReference=
echobase.common.litteratureReferences=Références
-echobase.common.localisation=
echobase.common.loggedDataDatatype=
echobase.common.loggedDataFormat=
echobase.common.longName=
@@ -131,14 +135,13 @@
echobase.common.modificationDate=Date de modification
echobase.common.modificationText=Modification
echobase.common.modificationUser=Utilisateur
-echobase.common.moment=
echobase.common.mz=
echobase.common.name=Nom
echobase.common.noiseDesign=
echobase.common.notes=
echobase.common.numberSampled=
echobase.common.operation=
-echobase.common.operationGearMetadataValue=
+echobase.common.operationEvent=
echobase.common.operationMetadata=
echobase.common.operationMetadataValue=
echobase.common.operationType=
@@ -146,6 +149,7 @@
echobase.common.organisationLevelAcknowledgements=
echobase.common.organisationReferences=
echobase.common.password=Mot de passe
+echobase.common.percentAtAge=
echobase.common.pingDutyCycle=
echobase.common.platform=
echobase.common.positive=
@@ -169,6 +173,7 @@
echobase.common.sampleDataType=
echobase.common.sampleType=
echobase.common.sampleWeight=
+echobase.common.sampling=
echobase.common.scaleFactor=
echobase.common.seafloorSubstrate=
echobase.common.sexeCategory=
@@ -181,14 +186,10 @@
echobase.common.sqlQuery=requête SQL
echobase.common.standardName=
echobase.common.startDate=
-echobase.common.startLatitude=
echobase.common.startLocality=
-echobase.common.startLongitude=
echobase.common.startPort=
echobase.common.startTime=
-echobase.common.startTimeFillageEngin=
-echobase.common.startValidityDate=
-echobase.common.station=station
+echobase.common.strata=
echobase.common.taxonCode=
echobase.common.taxonFatherMemocode=
echobase.common.taxonSystematicLevel=
@@ -230,10 +231,13 @@
echobase.common.transectAbstract=
echobase.common.transit=transit
echobase.common.type=
+echobase.common.unit=
echobase.common.units=
echobase.common.validMax=
echobase.common.validMin=
+echobase.common.validSince=
echobase.common.vessel=Navire
echobase.common.vesselType=
echobase.common.voyage=Campagne
+echobase.common.weightLengthKey=
echobase.config.data.directory.description=Chemin de l'application
Modified: trunk/echobase-entities/src/main/xmi/echobase.zargo
===================================================================
(Binary files differ)
1
0