Skip to content
Snippets Groups Projects
Commit 75ad8a71 authored by buczekp's avatar buczekp
Browse files

[SE-255] use subEntitySeparator for contained sample codes

SVN: 16290
parent 3cddb363
No related branches found
No related tags found
No related merge requests found
...@@ -323,7 +323,7 @@ public class DefaultDataSetInfoExtractor extends AbstractDataSetInfoExtractor ...@@ -323,7 +323,7 @@ public class DefaultDataSetInfoExtractor extends AbstractDataSetInfoExtractor
dataSetInformation.setExperimentIdentifier(experimentIdentifier); dataSetInformation.setExperimentIdentifier(experimentIdentifier);
if (experimentIdentifier == null) if (experimentIdentifier == null)
{ {
dataSetInformation.setSampleCode(entitiesProvider.getEntity(indexOfSampleCode)); dataSetInformation.setSampleCode(extractSampleCode(entitiesProvider));
} }
dataSetInformation.setParentDataSetCodes(getParentDataSetCodes(entitiesProvider)); dataSetInformation.setParentDataSetCodes(getParentDataSetCodes(entitiesProvider));
dataSetInformation.setProducerCode(tryGetDataProducerCode(entitiesProvider)); dataSetInformation.setProducerCode(tryGetDataProducerCode(entitiesProvider));
...@@ -358,6 +358,14 @@ public class DefaultDataSetInfoExtractor extends AbstractDataSetInfoExtractor ...@@ -358,6 +358,14 @@ public class DefaultDataSetInfoExtractor extends AbstractDataSetInfoExtractor
return identifier; return identifier;
} }
private String extractSampleCode(final DataSetNameEntitiesProvider entitiesProvider)
{
// subEntitySeparator can be used instead of ':' for contained sample code
// (':' is not an allowed char some OS and it is not achievable in Mac OS Finder)
String sampleCode = entitiesProvider.getEntity(indexOfSampleCode);
return sampleCode.replace(subEntitySeparator, ':');
}
private List<String> getParentDataSetCodes(final DataSetNameEntitiesProvider entitiesProvider) private List<String> getParentDataSetCodes(final DataSetNameEntitiesProvider entitiesProvider)
{ {
if (indexOfParentDataSetCodes.isUndefined()) if (indexOfParentDataSetCodes.isUndefined())
......
...@@ -54,6 +54,24 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas ...@@ -54,6 +54,24 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas
assertTrue(WORKING_DIRECTORY.mkdirs()); assertTrue(WORKING_DIRECTORY.mkdirs());
} }
@Test
public void testExtractContainedSampleIdentifier()
{
Properties properties = new Properties();
properties.setProperty(asPropertyName(GROUP_CODE), "my-group");
final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(properties);
final DataSetInformation dsInfo1 =
extractor.getDataSetInformation(new File("BOX_1&S_1"), null);
final DataSetInformation dsInfo2 =
extractor.getDataSetInformation(new File("BOX_1:S_1"), null);
assertEquals("BOX_1:S_1", dsInfo1.getSampleIdentifier().getSampleCode());
assertEquals("S_1", dsInfo1.getSampleIdentifier().getSampleSubCode());
assertEquals("BOX_1:S_1", dsInfo2.getSampleIdentifier().getSampleCode());
assertEquals("S_1", dsInfo2.getSampleIdentifier().getSampleSubCode());
}
@Test @Test
public void testExtractExperimentIdentifierWithoutGroup() public void testExtractExperimentIdentifierWithoutGroup()
{ {
...@@ -70,32 +88,32 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas ...@@ -70,32 +88,32 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas
assertEquals("123", dsInfo.getExperimentIdentifier().getExperimentCode()); assertEquals("123", dsInfo.getExperimentIdentifier().getExperimentCode());
assertEquals(null, dsInfo.getSampleIdentifier()); assertEquals(null, dsInfo.getSampleIdentifier());
} }
@Test @Test
public void testExtractExperimentIdentifierWithGroup() public void testExtractExperimentIdentifierWithGroup()
{ {
Properties properties = new Properties(); Properties properties = new Properties();
properties.setProperty(INDEX_OF_EXPERIMENT_IDENTIFIER, "1"); properties.setProperty(INDEX_OF_EXPERIMENT_IDENTIFIER, "1");
final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(properties); final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(properties);
final DataSetInformation dsInfo = final DataSetInformation dsInfo =
extractor.getDataSetInformation(new File("bla.abc&xy&123.bla"), null); extractor.getDataSetInformation(new File("bla.abc&xy&123.bla"), null);
assertEquals("ABC", dsInfo.getExperimentIdentifier().getSpaceCode()); assertEquals("ABC", dsInfo.getExperimentIdentifier().getSpaceCode());
assertEquals("XY", dsInfo.getExperimentIdentifier().getProjectCode()); assertEquals("XY", dsInfo.getExperimentIdentifier().getProjectCode());
assertEquals("123", dsInfo.getExperimentIdentifier().getExperimentCode()); assertEquals("123", dsInfo.getExperimentIdentifier().getExperimentCode());
assertEquals(null, dsInfo.getSampleIdentifier()); assertEquals(null, dsInfo.getSampleIdentifier());
} }
@Test @Test
public void testHappyCaseWithDefaultProperties() public void testHappyCaseWithDefaultProperties()
{ {
final String barcode = "XYZ123"; final String barcode = "XYZ123";
final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(new Properties()); final IDataSetInfoExtractor extractor = new DefaultDataSetInfoExtractor(new Properties());
final DataSetInformation dsInfo = final DataSetInformation dsInfo =
extractor.getDataSetInformation(new File("bla.bla." + barcode), null); extractor.getDataSetInformation(new File("bla.bla." + barcode), null);
assertNull(dsInfo.getExperimentIdentifier()); assertNull(dsInfo.getExperimentIdentifier());
assertEquals(barcode, dsInfo.getSampleIdentifier().getSampleCode()); assertEquals(barcode, dsInfo.getSampleIdentifier().getSampleCode());
assertEquals(0, dsInfo.getParentDataSetCodes().size()); assertEquals(0, dsInfo.getParentDataSetCodes().size());
...@@ -186,7 +204,7 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas ...@@ -186,7 +204,7 @@ public final class DefaultDataSetInfoExtractorTest extends CodeExtractortTestCas
final Properties properties = new Properties(); final Properties properties = new Properties();
final String separator = "="; final String separator = "=";
properties.setProperty(ENTITY_SEPARATOR, separator); properties.setProperty(ENTITY_SEPARATOR, separator);
String subSeparator = "%"; String subSeparator = "%";
properties.setProperty(SUB_ENTITY_SEPARATOR, subSeparator); properties.setProperty(SUB_ENTITY_SEPARATOR, subSeparator);
properties.setProperty(INDEX_OF_SAMPLE_CODE, "0"); properties.setProperty(INDEX_OF_SAMPLE_CODE, "0");
properties.setProperty(INDEX_OF_PARENT_DATA_SET_CODE, "1"); properties.setProperty(INDEX_OF_PARENT_DATA_SET_CODE, "1");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment