From 3921ff16e30d7886f6122a110871a13c9ce08a88 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 1 Dec 2010 08:17:07 +0000 Subject: [PATCH] LMS-1883 bug fixed SVN: 18944 --- .../CsvFeatureVectorMigrator.java | 3 +-- .../CsvToCanonicalFeatureVector.java | 24 +++++++++++++++---- .../FeatureVectorStorageProcessor.java | 3 +-- ...reVectorStorageProcessorConfiguration.java | 14 +++++++++++ 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java index a7dd36f72da..1ebcb450341 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvFeatureVectorMigrator.java @@ -49,8 +49,7 @@ public class CsvFeatureVectorMigrator extends AbstractFeatureVectorMigrator this.configuration = new FeatureVectorStorageProcessorConfiguration(properties); convertorConfig = - new CsvToCanonicalFeatureVectorConfiguration(configuration.getWellRow(), - configuration.getWellColumn()); + new CsvToCanonicalFeatureVectorConfiguration(configuration); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java index fff41bff674..e79cb1d878d 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/CsvToCanonicalFeatureVector.java @@ -52,10 +52,23 @@ public class CsvToCanonicalFeatureVector private final boolean isSplit; + private final Set<String> columnsToBeIgnored; + + public CsvToCanonicalFeatureVectorConfiguration(FeatureVectorStorageProcessorConfiguration config) + { + this(config.getWellRow(), config.getWellColumn(), config.getColumnsToBeIgnored()); + } + public CsvToCanonicalFeatureVectorConfiguration(String wellRow, String wellColumn) + { + this(wellRow, wellColumn, Collections.<String> emptySet()); + } + + public CsvToCanonicalFeatureVectorConfiguration(String wellRow, String wellColumn, Set<String> columnsToBeIgnored) { this.wellRowColumn = wellRow; this.wellColumnColumn = wellColumn; + this.columnsToBeIgnored = columnsToBeIgnored; isSplit = (false == wellRow.equals(wellColumn)); } @@ -74,6 +87,11 @@ public class CsvToCanonicalFeatureVector { return isSplit; } + + public boolean shouldColumnBeIgnored(String column) + { + return columnsToBeIgnored.contains(column); + } } private final CsvToCanonicalFeatureVectorConfiguration configuration; @@ -257,16 +275,14 @@ public class CsvToCanonicalFeatureVector for (int i = 0; i < header.length; ++i) { String headerName = header[i]; - boolean isWellName; + boolean isWellName = true; if (configuration.getWellRowColumn().equals(headerName)) { xColumn = i; - isWellName = true; } else if (configuration.getWellColumnColumn().equals(headerName)) { yColumn = i; - isWellName = true; - } else + } else if (configuration.shouldColumnBeIgnored(headerName) == false) { isWellName = false; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java index f4506727b96..326cd5db600 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessor.java @@ -67,8 +67,7 @@ public class FeatureVectorStorageProcessor extends AbstractDelegatingStorageProc super(properties); this.configuration = new FeatureVectorStorageProcessorConfiguration(properties); convertorConfig = - new CsvToCanonicalFeatureVectorConfiguration(configuration.getWellRow(), - configuration.getWellColumn()); + new CsvToCanonicalFeatureVectorConfiguration(configuration); this.dataSource = ServiceProvider.getDataSourceProvider().getDataSource(properties); this.openBisService = ServiceProvider.getOpenBISService(); } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessorConfiguration.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessorConfiguration.java index 1c443f6c6a3..d6780668f84 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessorConfiguration.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/featurevector/FeatureVectorStorageProcessorConfiguration.java @@ -16,7 +16,10 @@ package ch.systemsx.cisd.openbis.dss.etl.featurevector; +import java.util.Arrays; +import java.util.HashSet; import java.util.Properties; +import java.util.Set; import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.utils.CsvFileReaderHelper.ICsvFileReaderConfiguration; @@ -48,6 +51,8 @@ class FeatureVectorStorageProcessorConfiguration implements private final String wellColumn; + private final Set<String> columnsToBeIgnored; + FeatureVectorStorageProcessorConfiguration(Properties properties) { comment = '#'; @@ -60,6 +65,10 @@ class FeatureVectorStorageProcessorConfiguration implements this.wellRow = properties.getProperty(WELL_NAME_ROW_PROPERTY_KEY, DEFAULT_WELL_ROW); this.wellColumn = properties.getProperty(WELL_NAME_COL_PROPERTY_KEY, DEFAULT_WELL_COL); + + columnsToBeIgnored = + new HashSet<String>(Arrays.asList(properties.getProperty("columns-to-be-ignored", + "barcode").split(", *"))); } public char getColumnDelimiter() @@ -91,4 +100,9 @@ class FeatureVectorStorageProcessorConfiguration implements { return wellColumn; } + + public final Set<String> getColumnsToBeIgnored() + { + return columnsToBeIgnored; + } } \ No newline at end of file -- GitLab