From 311c6ceb91fc8ec8c33a233ca6a24d8cd02fcedc Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Fri, 28 Aug 2009 16:12:29 +0000 Subject: [PATCH] add: support for providing the parent data set code as column 'parent' in the index.tsv file SVN: 12316 --- .../yeastx/etl/BatchDataSetInfoExtractor.java | 1 + .../yeastx/etl/DataSetMappingInformation.java | 16 +++++++++++ .../etl/DataSetInformationParserTest.java | 27 ++++++++++++++++--- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/BatchDataSetInfoExtractor.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/BatchDataSetInfoExtractor.java index f3ff856934c..95bc8ff912e 100644 --- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/BatchDataSetInfoExtractor.java +++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/BatchDataSetInfoExtractor.java @@ -58,6 +58,7 @@ public class BatchDataSetInfoExtractor implements IDataSetInfoExtractor info.setGroupCode(plainInfo.getGroupCode()); MLConversionType conversion = getConversion(plainInfo.getConversion()); info.setConversion(conversion); + info.setParentDataSetCode(plainInfo.getParentDataSetCode()); fileNameDecorator.enrich(info, incomingDataSetPath); return info; } else diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DataSetMappingInformation.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DataSetMappingInformation.java index 1dc4b89f3bc..675949f5652 100644 --- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DataSetMappingInformation.java +++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/DataSetMappingInformation.java @@ -42,6 +42,8 @@ public class DataSetMappingInformation private String groupCode; private String conversion; + + private String parentDataSetCode; private List<NewProperty> properties; @@ -67,6 +69,20 @@ public class DataSetMappingInformation this.sampleCodeOrLabel = StringUtils.trimToNull(sampleCodeOrLabel); } + /** + * Returns the code of the parent data set, if any. + */ + public final String getParentDataSetCode() + { + return parentDataSetCode; + } + + @BeanProperty(label="parent", optional = true) + public final void setParentDataSetCode(String parentCode) + { + this.parentDataSetCode = parentCode; + } + public String getExperimentName() { return experimentName; diff --git a/rtd_yeastx/sourceTest/java/ch/systemsx/cisd/yeastx/etl/DataSetInformationParserTest.java b/rtd_yeastx/sourceTest/java/ch/systemsx/cisd/yeastx/etl/DataSetInformationParserTest.java index 443f1ad36a2..97275e3a8b7 100644 --- a/rtd_yeastx/sourceTest/java/ch/systemsx/cisd/yeastx/etl/DataSetInformationParserTest.java +++ b/rtd_yeastx/sourceTest/java/ch/systemsx/cisd/yeastx/etl/DataSetInformationParserTest.java @@ -36,9 +36,11 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.NewProperty; */ public class DataSetInformationParserTest extends AbstractFileSystemTestCase { + private static final String MANDATORY_HEADER = "file_name sample group\n"; + private static final String HEADER = // "# user@gmail.com\n+"+ - "file_name sample group experiment conversion dataset_property_1 dataset_property_2\n"; + "file_name sample parent group experiment project conversion dataset_property_1 dataset_property_2\n"; private static final String TAB = "\t"; @@ -46,23 +48,42 @@ public class DataSetInformationParserTest extends AbstractFileSystemTestCase public void testLoadIndexFile() { File indexFile = - writeMappingFile(HEADER + "data.txt sample1 group1 experiment1 fiaML v1 v2"); + writeMappingFile(HEADER + + "data.txt sample1 parentCode group1 experiment1 project1 fiaML v1 v2"); List<DataSetMappingInformation> list = tryParse(indexFile); AssertJUnit.assertEquals(1, list.size()); DataSetMappingInformation elem = list.get(0); AssertJUnit.assertEquals("group1", elem.getGroupCode()); + AssertJUnit.assertEquals("parentCode", elem.getParentDataSetCode()); + AssertJUnit.assertEquals("sample1", elem.getSampleCodeOrLabel()); AssertJUnit.assertEquals("data.txt", elem.getFileName()); + AssertJUnit.assertEquals("experiment1", elem.getExperimentName()); + AssertJUnit.assertEquals("project1", elem.getProjectCode()); AssertJUnit.assertEquals(2, elem.getProperties().size()); NewProperty prop1 = elem.getProperties().get(0); AssertJUnit.assertEquals("v1", prop1.getValue()); AssertJUnit.assertEquals("dataset_property_1", prop1.getPropertyCode()); } + @Test + public void testLoadIndexFileMandatoryColumnsOnly() + { + File indexFile = + writeMappingFile(MANDATORY_HEADER + + "data2.txt sample2 group2"); + List<DataSetMappingInformation> list = tryParse(indexFile); + AssertJUnit.assertEquals(1, list.size()); + DataSetMappingInformation elem = list.get(0); + AssertJUnit.assertEquals("group2", elem.getGroupCode()); + AssertJUnit.assertEquals("sample2", elem.getSampleCodeOrLabel()); + AssertJUnit.assertEquals("data2.txt", elem.getFileName()); + } + @Test public void testLoadIndexFileWithMissingFieldValueFails() throws FileNotFoundException, IOException { - File indexFile = writeMappingFile(HEADER + TAB + TAB + TAB + TAB + TAB + TAB); + File indexFile = writeMappingFile(HEADER + TAB + TAB + TAB + TAB + TAB + TAB + TAB + TAB); List<DataSetMappingInformation> result = tryParse(indexFile); AssertJUnit.assertNull("error during parsing expected", result); List<String> logLines = readLogFile(); -- GitLab