branch develop updated (f5bb858 -> c269a50)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git from f5bb858 Livrable #8181 Merge branch 'feature/8181' into develop new 1756a1b Ajout d'un parser formatter de String avec valeur NA new e72336a Ajout d'une colonne *label* dans l'import acoustic pour y mettre le numéro de radiale (See #8222) new 5c24c97 Mise à jour du test d'import acoustic pour intégrer la nouvelle colonne *label* (See #8222) new c269a50 Livrable #8222 Merge branch 'feature/8222' into develop The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit c269a505620c9d990fd4668469c5045756d6cb33 Merge: f5bb858 5c24c97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:22:02 2016 +0200 Livrable #8222 Merge branch 'feature/8222' into develop commit 5c24c971c6b4e1c23aad4e63f71ed8d3513884e8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:21:34 2016 +0200 Mise à jour du test d'import acoustic pour intégrer la nouvelle colonne *label* (See #8222) commit e72336a61f11ae4ce75b6aa5425506f0019150d8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:21:02 2016 +0200 Ajout d'une colonne *label* dans l'import acoustic pour y mettre le numéro de radiale (See #8222) commit 1756a1b88bb9f2b8252aeef471324b1bfcf42830 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:20:26 2016 +0200 Ajout d'un parser formatter de String avec valeur NA Summary of changes: .../entities/references/DataMetadataImpl.java | 2 + .../echobase/services/csv/EchoBaseCsvUtil.java | 18 +++++++++ .../actions/VoyageAcousticsImportAction.java | 33 ++++++++++++++-- .../csv/VoyageAcousticImportExportModel.java | 6 ++- .../importdata/csv/VoyageAcousticImportRow.java | 43 ++++++++++++++++++--- .../importdata/AbstractImportDataServiceIT.java | 20 ++++++++++ .../importdata/VoyageAcousticImportServiceIT.java | 12 ++++-- .../import-data/acoustic/movies_small.csv.gz | Bin 6128 -> 6972 bytes 8 files changed, 119 insertions(+), 15 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit e72336a61f11ae4ce75b6aa5425506f0019150d8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:21:02 2016 +0200 Ajout d'une colonne *label* dans l'import acoustic pour y mettre le numéro de radiale (See #8222) --- .../entities/references/DataMetadataImpl.java | 2 + .../actions/VoyageAcousticsImportAction.java | 33 +++++++++++++++-- .../csv/VoyageAcousticImportExportModel.java | 6 ++- .../importdata/csv/VoyageAcousticImportRow.java | 43 +++++++++++++++++++--- 4 files changed, 72 insertions(+), 12 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/DataMetadataImpl.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/DataMetadataImpl.java index 51215f4..e0671f3 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/DataMetadataImpl.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/references/DataMetadataImpl.java @@ -41,6 +41,8 @@ public class DataMetadataImpl extends DataMetadataAbstract { public static final String GRID_DEPTH_LAG = "GridDepthLag"; + public static final String RADIAL_NUMBER = "RadialNumber"; + private static final long serialVersionUID = 1L; @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java index 6d574a1..3cec007 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageAcousticsImportAction.java @@ -40,6 +40,7 @@ import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.AcousticInstruments; import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.entities.references.DataMetadata; +import fr.ifremer.echobase.entities.references.DataMetadataImpl; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.entities.references.Vessel; import fr.ifremer.echobase.io.InputFile; @@ -417,7 +418,10 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction Preconditions.checkNotNull(dataAcquisition); Preconditions.checkNotNull(dataProcessing); - VoyageAcousticImportRow esduRow = VoyageAcousticImportRow.ofEsduCell(processingTemplate, dataAcquisition, dataProcessing, esduCell); + DataMetadata radialNumberDataMetadata = dataMetadataProvider.getRadialNumberDataMetadata(); + Preconditions.checkNotNull(radialNumberDataMetadata); + + VoyageAcousticImportRow esduRow = VoyageAcousticImportRow.ofEsduCell(processingTemplate, dataAcquisition, dataProcessing, esduCell, radialNumberDataMetadata); ImmutableMap<DataMetadata, Data> esduCellDataByMeta = Maps.uniqueIndex(esduCell.getData(), Datas.TO_DATA_METADATA); @@ -484,7 +488,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction for (Cell elementaryCell : elementaryCells) { - VoyageAcousticImportRow elementaryRow = VoyageAcousticImportRow.ofElementaryCell(processingTemplate, dataAcquisition, dataProcessing, elementaryCell); + VoyageAcousticImportRow elementaryRow = VoyageAcousticImportRow.ofElementaryCell(processingTemplate, dataAcquisition, dataProcessing, elementaryCell, radialNumberDataMetadata); ImmutableMap<DataMetadata, Data> elementaryCellDataByMeta = Maps.uniqueIndex(elementaryCell.getData(), Datas.TO_DATA_METADATA); @@ -588,7 +592,8 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction private void createEsduCellData(Cell cell, VoyageAcousticImportRow row, DataQuality dataQuality, - ImportDataFileResult importResult, int rowNumber) { + ImportDataFileResult importResult, + int rowNumber) { String dataValue; @@ -642,13 +647,20 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction createCellData(cell, dataMetadataProvider.getNumberOfSamplesEchoIntegratedDataMetadata(), dataValue, dataQuality, importResult, false, rowNumber); } + // create RadialNumber data + if (row.getLabel() != null) { + dataValue = row.getLabel(); + createCellData(cell, dataMetadataProvider.getRadialNumberDataMetadata(), dataValue, dataQuality, importResult, false, rowNumber); + } + } private void createElementaryCellData(Cell cell, boolean surface, VoyageAcousticImportRow row, DataQuality dataQuality, - ImportDataFileResult importResult, int rowNumber) { + ImportDataFileResult importResult, + int rowNumber) { String dataValue; @@ -696,6 +708,13 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction dataValue = String.valueOf(row.getCellNumberOfSamplesEchoIntegrated()); createCellData(cell, dataMetadataProvider.getNumberOfSamplesEchoIntegratedDataMetadata(), dataValue, dataQuality, importResult, false, rowNumber); } + + // create RadialNumber data + if (row.getLabel() != null) { + dataValue = row.getLabel(); + createCellData(cell, dataMetadataProvider.getRadialNumberDataMetadata(), dataValue, dataQuality, importResult, false, rowNumber); + } + } private DataAcquisition createDataAcquisition(AcousticInstrument instrument, @@ -816,6 +835,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction public static class DataMetadataProvider { + private final DataMetadata radialNumberDataMetadata; private final DataMetadata latitudeDataMetadata; private final DataMetadata longitudeDataMetadata; private final DataMetadata esduStartDepthDataMetadata; @@ -834,6 +854,7 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction public DataMetadataProvider(VoyageAcousticsImportDataContext importDataContext) { String suffix = importDataContext.getConfiguration().getCellPositionReference().getMetadataNameSuffix(); Map<String, DataMetadata> dataMetadatasByName = importDataContext.getDataMetadatasByName(); + radialNumberDataMetadata= dataMetadatasByName.get(DataMetadataImpl.RADIAL_NUMBER); latitudeDataMetadata = dataMetadatasByName.get("Latitude" + suffix); longitudeDataMetadata = dataMetadatasByName.get("Longitude" + suffix); esduStartDepthDataMetadata = dataMetadatasByName.get("ESDUstartDepth"); @@ -850,6 +871,10 @@ public class VoyageAcousticsImportAction extends VoyageAcousticsImportDataAction depthRefBottomEndDataMetadata = dataMetadatasByName.get("DepthRefBottomEnd"); } + public DataMetadata getRadialNumberDataMetadata() { + return radialNumberDataMetadata; + } + public DataMetadata getLatitudeDataMetadata() { return latitudeDataMetadata; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportExportModel.java index 389b8c2..c3b4a93 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportExportModel.java @@ -124,7 +124,8 @@ public class VoyageAcousticImportExportModel extends EchoBaseImportExportModelSu model.newIgnoredColumn("MOVIES_EILayer\\boterr\\ni");//BU model.newMandatoryColumn("MOVIES_EILayer\\sndset\\soundcelerity", VoyageAcousticImportRow.PROPERTY_SOUND_CELERITY);//BV - model.newForeignKeyColumn(VoyageAcousticImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); //E + model.newForeignKeyColumn(VoyageAcousticImportRow.PROPERTY_DATA_QUALITY, DataQuality.class, DataQuality.PROPERTY_QUALITY_DATA_FLAG_VALUES, importDataContext.getDataQualitiesByName()); //BW + model.newMandatoryColumn(VoyageAcousticImportRow.PROPERTY_LABEL, EchoBaseCsvUtil.NA_TO_STRING_PARSER_FORMATTER); //BX return model; } @@ -211,7 +212,8 @@ public class VoyageAcousticImportExportModel extends EchoBaseImportExportModelSu // model.newIgnoredColumn("MOVIES_EILayer\\boterr\\ni");//BU model.newColumnForExport("MOVIES_EILayer\\sndset\\soundcelerity", VoyageAcousticImportRow.PROPERTY_SOUND_CELERITY);//BV - model.newColumnForExport(VoyageAcousticImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); //E + model.newColumnForExport(VoyageAcousticImportRow.PROPERTY_DATA_QUALITY, EchoBaseCsvUtil.DATA_QUALITY_FORMATTER); //BW + model.newColumnForExport(VoyageAcousticImportRow.PROPERTY_LABEL, EchoBaseCsvUtil.NA_TO_STRING_PARSER_FORMATTER); //BX return model; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java index c1480c0..cd526a8 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageAcousticImportRow.java @@ -21,13 +21,17 @@ package fr.ifremer.echobase.services.service.importdata.csv; 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.references.AcousticInstrument; +import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.entities.references.DataQuality; import org.apache.commons.lang3.StringUtils; +import java.util.Collection; import java.util.Date; +import java.util.Optional; /** * Bean of a row for {@link VoyageAcousticImportExportModel} import. @@ -93,6 +97,8 @@ public class VoyageAcousticImportRow { public static final String PROPERTY_DATA_QUALITY = "dataQuality"; + public static final String PROPERTY_LABEL = "label"; + protected String eiLayer; protected String esduCellDataDepth; @@ -149,12 +155,20 @@ public class VoyageAcousticImportRow { protected AcousticInstrument acousticInstrument; + /** + * Radial number data (See https://forge.codelutin.com/issues/8222) + * + * @since 4.0 + */ + protected String label; + public static VoyageAcousticImportRow ofEsduCell(String processingTemplate, DataAcquisition dataAcquisition, DataProcessing dataProcessing, - Cell esduCell) { + Cell esduCell, + DataMetadata radialNumberDataMetadata) { - VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, esduCell); + VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, esduCell, radialNumberDataMetadata); // esdu cell row.setCellType(4); @@ -166,8 +180,9 @@ public class VoyageAcousticImportRow { public static VoyageAcousticImportRow ofElementaryCell(String processingTemplate, DataAcquisition dataAcquisition, DataProcessing dataProcessing, - Cell elementaryCell) { - VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, elementaryCell); + Cell elementaryCell, + DataMetadata radialNumberDataMetadata) { + VoyageAcousticImportRow row = of(processingTemplate, dataAcquisition, dataProcessing, elementaryCell, radialNumberDataMetadata); // elementary cell String elementaryCellName = elementaryCell.getName(); @@ -193,7 +208,8 @@ public class VoyageAcousticImportRow { private static VoyageAcousticImportRow of(String processingTemplate, DataAcquisition dataAcquisition, DataProcessing dataProcessing, - Cell cell) { + Cell cell, + DataMetadata radialNumberDataMetadata) { VoyageAcousticImportRow row = new VoyageAcousticImportRow(); row.setAcousticInstrument(dataAcquisition.getAcousticInstrument()); row.setDataQuality(cell.getDataQuality()); @@ -222,9 +238,16 @@ public class VoyageAcousticImportRow { row.setTransducerAcquisitionBeamAngleAlongship(dataProcessing.getTransducerProcessingBeamAngleAlongship()); String dataProcessingId = dataProcessing.getId(); - row.setEiLayer(StringUtils.substring(dataProcessingId,0, - processingTemplate.length())); + row.setEiLayer(StringUtils.substring(dataProcessingId, 0, -processingTemplate.length())); row.setSoundCelerity(dataProcessing.getEchosounderSoundSpeed()); + Collection<Data> cellData = cell.getData(); + Optional<Data> optionalRadialNumberData = cellData.stream().filter(data -> data.getDataMetadata().equals(radialNumberDataMetadata)).findFirst(); + if (optionalRadialNumberData.isPresent()) { + Data data = optionalRadialNumberData.get(); + String dataValue = data.getDataValue(); + row.setLabel(dataValue); + } return row; } @@ -244,6 +267,14 @@ public class VoyageAcousticImportRow { this.acousticInstrument = acousticInstrument; } + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + public Date getCellDateStart() { return cellDateStart; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 5c24c971c6b4e1c23aad4e63f71ed8d3513884e8 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:21:34 2016 +0200 Mise à jour du test d'import acoustic pour intégrer la nouvelle colonne *label* (See #8222) --- .../importdata/AbstractImportDataServiceIT.java | 20 ++++++++++++++++++++ .../importdata/VoyageAcousticImportServiceIT.java | 12 +++++++++--- .../import-data/acoustic/movies_small.csv.gz | Bin 6128 -> 6972 bytes 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java index 828b657..ed84605 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/AbstractImportDataServiceIT.java @@ -21,12 +21,14 @@ package fr.ifremer.echobase.services.service.importdata; import com.google.common.base.Charsets; +import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseTechnicalException; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Cells; import fr.ifremer.echobase.entities.data.DataAcquisition; @@ -38,6 +40,7 @@ import fr.ifremer.echobase.entities.data.TransitImpl; import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.CellType; +import fr.ifremer.echobase.entities.references.DataMetadata; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; @@ -325,4 +328,21 @@ public abstract class AbstractImportDataServiceIT<C extends ImportDataConfigurat return dataProcessing.getTopiaId(); } + protected void addMissingDataMetadata(String dataMetadataName) { + + EchoBaseUserPersistenceContext persistenceContext = this.serviceContext.getEchoBaseUserPersistenceContext(); + + Optional<DataMetadata> optionalSampleDataType = persistenceContext.getDataMetadataDao().forNameEquals(dataMetadataName).tryFindUnique(); + if (!optionalSampleDataType.isPresent()) { + + if (log.isInfoEnabled()) { + log.info("Add dataMetadata " +dataMetadataName); + } + persistenceContext.getDataMetadataDao().create(DataMetadata.PROPERTY_NAME,dataMetadataName); + + persistenceContext.commit(); + } + + } + } diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageAcousticImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageAcousticImportServiceIT.java index abcc88f..8146b3a 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageAcousticImportServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/VoyageAcousticImportServiceIT.java @@ -25,6 +25,7 @@ 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.references.DataMetadataImpl; import fr.ifremer.echobase.services.ImportDataFixtures; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageAcousticsImportConfiguration; @@ -81,6 +82,13 @@ public class VoyageAcousticImportServiceIT extends AbstractImportDataServiceIT<V } @Override + protected void assertBeforeImport() { + super.assertBeforeImport(); + + addMissingDataMetadata(DataMetadataImpl.RADIAL_NUMBER); + } + + @Override protected void assertAfertImport(ImportDataResult<VoyageAcousticsImportConfiguration> result) throws IOException { int nbDataAcquisition = fixtures.NB_DATA_ACQUISITION(); @@ -89,8 +97,7 @@ public class VoyageAcousticImportServiceIT extends AbstractImportDataServiceIT<V // int nbData = fixtures.NB_DATA(); int nbCell = 289; - int nbData = 2621; - + int nbData = 2885; ImportDataFileResult importDataFileResult = Iterables.get(result.getImportResults(), 0); @@ -101,7 +108,6 @@ public class VoyageAcousticImportServiceIT extends AbstractImportDataServiceIT<V assertCsvImportResultPerEntity(importDataFileResult, Cell.class, nbCell, 0, nbCell); assertCsvImportResultPerEntity(importDataFileResult, Data.class, nbData, 0, nbData); - } } diff --git a/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz b/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz index c046435..62e9e22 100644 Binary files a/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz and b/echobase-services/src/test/resources/import-data/acoustic/movies_small.csv.gz differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit c269a505620c9d990fd4668469c5045756d6cb33 Merge: f5bb858 5c24c97 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat May 14 12:22:02 2016 +0200 Livrable #8222 Merge branch 'feature/8222' into develop .../entities/references/DataMetadataImpl.java | 2 + .../echobase/services/csv/EchoBaseCsvUtil.java | 18 +++++++++ .../actions/VoyageAcousticsImportAction.java | 33 ++++++++++++++-- .../csv/VoyageAcousticImportExportModel.java | 6 ++- .../importdata/csv/VoyageAcousticImportRow.java | 43 ++++++++++++++++++--- .../importdata/AbstractImportDataServiceIT.java | 20 ++++++++++ .../importdata/VoyageAcousticImportServiceIT.java | 12 ++++-- .../import-data/acoustic/movies_small.csv.gz | Bin 6128 -> 6972 bytes 8 files changed, 119 insertions(+), 15 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm