Skip to content
Snippets Groups Projects
Commit 741e7506 authored by cramakri's avatar cramakri
Browse files

LMS-1811 The bundle metadata should link to all its children.

SVN: 18345
parent 00535a98
No related branches found
No related tags found
No related merge requests found
...@@ -69,20 +69,23 @@ public class GridPreparationRegistrator extends BundleDataSetHelper ...@@ -69,20 +69,23 @@ public class GridPreparationRegistrator extends BundleDataSetHelper
public void register() public void register()
{ {
retrieveOrCreateGridPrepSample(); retrieveOrCreateGridPrepSample();
// Register the bundle metadata data set
DataSetInformation metadataDataSetInfo = createDataSetInformation();
File metadataFile = new File(dataSet, BundleStructureConstants.BUNDLE_METADATA_FILE_NAME);
List<DataSetInformation> registeredBundleMetadataDataSets =
registerDataSet(metadataFile, metadataDataSetInfo);
DataSetInformation registeredBundleMetadataDataSet =
registeredBundleMetadataDataSets.get(0);
for (ReplicaMetadataExtractor replicaMetadataExtractor : bundleMetadataExtractor for (ReplicaMetadataExtractor replicaMetadataExtractor : bundleMetadataExtractor
.getReplicaMetadataExtractors()) .getReplicaMetadataExtractors())
{ {
List<DataSetInformation> childRegisteredDataSets = List<DataSetInformation> childRegisteredDataSets =
new ReplicaRegistrator(globalState, replicaMetadataExtractor, gridPrepSample, new ReplicaRegistrator(globalState, replicaMetadataExtractor, gridPrepSample,
gridPrepSampleId, dataSet).register(); gridPrepSampleId, registeredBundleMetadataDataSet, dataSet).register();
getDataSetInformation().addAll(childRegisteredDataSets); getDataSetInformation().addAll(childRegisteredDataSets);
} }
// Create a DataSetInformation
DataSetInformation metadataDataSetInfo = createDataSetInformation();
File metadataFile = new File(dataSet, BundleStructureConstants.BUNDLE_METADATA_FILE_NAME);
registerDataSet(metadataFile, metadataDataSetInfo);
} }
private void retrieveOrCreateGridPrepSample() private void retrieveOrCreateGridPrepSample()
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package ch.systemsx.cisd.cina.dss.bundle.registrators; package ch.systemsx.cisd.cina.dss.bundle.registrators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.cina.shared.metadata.ImageMetadataExtractor; import ch.systemsx.cisd.cina.shared.metadata.ImageMetadataExtractor;
...@@ -37,6 +38,8 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper ...@@ -37,6 +38,8 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper
private final SampleIdentifier replicaSampleId; private final SampleIdentifier replicaSampleId;
private final DataSetInformation bundleMetadataDataSetInformation;
/** /**
* Constructor. * Constructor.
* *
...@@ -45,14 +48,16 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper ...@@ -45,14 +48,16 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper
* in the store * in the store
* @param replicaSample The owning sample of the data set * @param replicaSample The owning sample of the data set
* @param replicaSampleId The owning sample id * @param replicaSampleId The owning sample id
* @param bundleMetadataDataSetInformation
*/ */
ReplicaAnnotatedImagesRegistrator(BundleRegistrationState globalState, ReplicaAnnotatedImagesRegistrator(BundleRegistrationState globalState,
ImageMetadataExtractor imageMetadataExtractor, Sample replicaSample, ImageMetadataExtractor imageMetadataExtractor, Sample replicaSample,
SampleIdentifier replicaSampleId) SampleIdentifier replicaSampleId, DataSetInformation bundleMetadataDataSetInformation)
{ {
super(globalState, imageMetadataExtractor.getFolder()); super(globalState, imageMetadataExtractor.getFolder());
this.imageMetadataExtractor = imageMetadataExtractor; this.imageMetadataExtractor = imageMetadataExtractor;
this.replicaSampleId = replicaSampleId; this.replicaSampleId = replicaSampleId;
this.bundleMetadataDataSetInformation = bundleMetadataDataSetInformation;
} }
public List<DataSetInformation> register() public List<DataSetInformation> register()
...@@ -76,6 +81,9 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper ...@@ -76,6 +81,9 @@ public class ReplicaAnnotatedImagesRegistrator extends BundleDataSetHelper
metadataDataSetInfo.setInstanceCode(replicaSampleId.getSpaceLevel() metadataDataSetInfo.setInstanceCode(replicaSampleId.getSpaceLevel()
.getDatabaseInstanceCode()); .getDatabaseInstanceCode());
metadataDataSetInfo.setDataSetType(globalState.getImageDataSetType().getDataSetType()); metadataDataSetInfo.setDataSetType(globalState.getImageDataSetType().getDataSetType());
List<String> parentDataSetCodes =
Collections.singletonList(bundleMetadataDataSetInformation.getDataSetCode());
metadataDataSetInfo.setParentDataSetCodes(parentDataSetCodes);
return metadataDataSetInfo; return metadataDataSetInfo;
} }
} }
...@@ -18,6 +18,7 @@ package ch.systemsx.cisd.cina.dss.bundle.registrators; ...@@ -18,6 +18,7 @@ package ch.systemsx.cisd.cina.dss.bundle.registrators;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import ch.systemsx.cisd.cina.shared.metadata.ReplicaMetadataExtractor; import ch.systemsx.cisd.cina.shared.metadata.ReplicaMetadataExtractor;
...@@ -38,15 +39,18 @@ public class ReplicaMetadataRegistrator extends BundleDataSetHelper ...@@ -38,15 +39,18 @@ public class ReplicaMetadataRegistrator extends BundleDataSetHelper
private final SampleIdentifier replicaSampleId; private final SampleIdentifier replicaSampleId;
private final DataSetInformation bundleMetadataDataSetInformation;
private File metadataDataSetFile = null; private File metadataDataSetFile = null;
ReplicaMetadataRegistrator(BundleRegistrationState globalState, ReplicaMetadataRegistrator(BundleRegistrationState globalState,
ReplicaMetadataExtractor replicaMetadataExtractor, Sample replicaSample, ReplicaMetadataExtractor replicaMetadataExtractor, Sample replicaSample,
SampleIdentifier replicaSampleId) SampleIdentifier replicaSampleId, DataSetInformation bundleMetadataDataSetInformation)
{ {
super(globalState, replicaMetadataExtractor.getFolder()); super(globalState, replicaMetadataExtractor.getFolder());
this.replicaMetadataExtractor = replicaMetadataExtractor; this.replicaMetadataExtractor = replicaMetadataExtractor;
this.replicaSampleId = replicaSampleId; this.replicaSampleId = replicaSampleId;
this.bundleMetadataDataSetInformation = bundleMetadataDataSetInformation;
} }
/** /**
...@@ -85,6 +89,9 @@ public class ReplicaMetadataRegistrator extends BundleDataSetHelper ...@@ -85,6 +89,9 @@ public class ReplicaMetadataRegistrator extends BundleDataSetHelper
metadataDataSetInfo.setInstanceCode(replicaSampleId.getSpaceLevel() metadataDataSetInfo.setInstanceCode(replicaSampleId.getSpaceLevel()
.getDatabaseInstanceCode()); .getDatabaseInstanceCode());
metadataDataSetInfo.setDataSetType(globalState.getMetadataDataSetType().getDataSetType()); metadataDataSetInfo.setDataSetType(globalState.getMetadataDataSetType().getDataSetType());
List<String> parentDataSetCodes =
Collections.singletonList(bundleMetadataDataSetInformation.getDataSetCode());
metadataDataSetInfo.setParentDataSetCodes(parentDataSetCodes);
return metadataDataSetInfo; return metadataDataSetInfo;
} }
......
...@@ -43,6 +43,8 @@ public class ReplicaRegistrator extends BundleDataSetHelper ...@@ -43,6 +43,8 @@ public class ReplicaRegistrator extends BundleDataSetHelper
private final SampleIdentifier gridPrepSampleId; private final SampleIdentifier gridPrepSampleId;
private final DataSetInformation bundleMetadataDataSetInformation;
// Processing State (gets set during the execution of registration) // Processing State (gets set during the execution of registration)
private SampleIdentifier replicaSampleId; private SampleIdentifier replicaSampleId;
...@@ -52,13 +54,15 @@ public class ReplicaRegistrator extends BundleDataSetHelper ...@@ -52,13 +54,15 @@ public class ReplicaRegistrator extends BundleDataSetHelper
ReplicaRegistrator(BundleRegistrationState globalState, ReplicaRegistrator(BundleRegistrationState globalState,
ReplicaMetadataExtractor replicaMetadataExtractor, Sample gridPrepSample, ReplicaMetadataExtractor replicaMetadataExtractor, Sample gridPrepSample,
SampleIdentifier gridPrepSampleId, File dataSet) SampleIdentifier gridPrepSampleId, DataSetInformation bundleMetadataDataSetInformation,
File dataSet)
{ {
super(globalState, dataSet); super(globalState, dataSet);
this.replicaMetadataExtractor = replicaMetadataExtractor; this.replicaMetadataExtractor = replicaMetadataExtractor;
this.gridPrepSample = gridPrepSample; this.gridPrepSample = gridPrepSample;
this.gridPrepSampleId = gridPrepSampleId; this.gridPrepSampleId = gridPrepSampleId;
this.bundleMetadataDataSetInformation = bundleMetadataDataSetInformation;
} }
/** /**
...@@ -126,7 +130,7 @@ public class ReplicaRegistrator extends BundleDataSetHelper ...@@ -126,7 +130,7 @@ public class ReplicaRegistrator extends BundleDataSetHelper
{ {
ReplicaMetadataRegistrator registrator = ReplicaMetadataRegistrator registrator =
new ReplicaMetadataRegistrator(globalState, replicaMetadataExtractor, new ReplicaMetadataRegistrator(globalState, replicaMetadataExtractor,
replicaSample, replicaSampleId); replicaSample, replicaSampleId, bundleMetadataDataSetInformation);
List<DataSetInformation> registeredDataSetInfos = registrator.register(); List<DataSetInformation> registeredDataSetInfos = registrator.register();
getDataSetInformation().addAll(registeredDataSetInfos); getDataSetInformation().addAll(registeredDataSetInfos);
return registrator.getMetadataDataSetFile(); return registrator.getMetadataDataSetFile();
...@@ -145,7 +149,7 @@ public class ReplicaRegistrator extends BundleDataSetHelper ...@@ -145,7 +149,7 @@ public class ReplicaRegistrator extends BundleDataSetHelper
{ {
ReplicaAnnotatedImagesRegistrator registrator = ReplicaAnnotatedImagesRegistrator registrator =
new ReplicaAnnotatedImagesRegistrator(globalState, imageMetadataExtractor, new ReplicaAnnotatedImagesRegistrator(globalState, imageMetadataExtractor,
replicaSample, replicaSampleId); replicaSample, replicaSampleId, bundleMetadataDataSetInformation);
List<DataSetInformation> registeredDataSetInfos = registrator.register(); List<DataSetInformation> registeredDataSetInfos = registrator.register();
getDataSetInformation().addAll(registeredDataSetInfos); getDataSetInformation().addAll(registeredDataSetInfos);
} }
......
...@@ -74,7 +74,7 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC ...@@ -74,7 +74,7 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC
protected static final String REPLICA_SAMPLE_IDENTIFIER = DB_CODE + ":/" + SPACE_CODE + "/" protected static final String REPLICA_SAMPLE_IDENTIFIER = DB_CODE + ":/" + SPACE_CODE + "/"
+ REPLICA_SAMPLE_CODE; + REPLICA_SAMPLE_CODE;
private static final String BUNDLE_METADATA_DATA_SET_CODE = null; private static final String BUNDLE_METADATA_DATA_SET_CODE = "BUNDLE_METADATA";
public static abstract class MatcherNoDesc<T> extends BaseMatcher<T> public static abstract class MatcherNoDesc<T> extends BaseMatcher<T>
{ {
...@@ -292,6 +292,8 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC ...@@ -292,6 +292,8 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC
dataSetInfo.getDataSetType()); dataSetInfo.getDataSetType());
assertEquals(REPLICA_SAMPLE_CODE, assertEquals(REPLICA_SAMPLE_CODE,
dataSetInfo.getSampleCode()); dataSetInfo.getSampleCode());
assertEquals(BUNDLE_METADATA_DATA_SET_CODE, dataSetInfo
.getParentDataSetCodes().get(0));
return true; return true;
} }
return false; return false;
...@@ -321,6 +323,8 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC ...@@ -321,6 +323,8 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC
dataSetInfo.getDataSetType()); dataSetInfo.getDataSetType());
assertEquals(REPLICA_SAMPLE_CODE, assertEquals(REPLICA_SAMPLE_CODE,
dataSetInfo.getSampleCode()); dataSetInfo.getSampleCode());
assertEquals(BUNDLE_METADATA_DATA_SET_CODE, dataSetInfo
.getParentDataSetCodes().get(0));
return true; return true;
} }
return false; return false;
...@@ -418,7 +422,7 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC ...@@ -418,7 +422,7 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC
with(new SampleIdentifierFactory(GRID_SAMPLE_IDENTIFIER) with(new SampleIdentifierFactory(GRID_SAMPLE_IDENTIFIER)
.createIdentifier())); .createIdentifier()));
will(returnValue(null)); will(returnValue(null));
// Create the Grid Prep // Create the Grid Prep
one(openbisService).registerSample(with(new BaseMatcher<NewSample>() one(openbisService).registerSample(with(new BaseMatcher<NewSample>()
{ {
...@@ -435,19 +439,19 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC ...@@ -435,19 +439,19 @@ public abstract class CinaBundleRegistrationTest extends AbstractFileSystemTestC
} }
return false; return false;
} }
public void describeTo(Description description) public void describeTo(Description description)
{ {
} }
}), with(TEST_USER_NAME)); }), with(TEST_USER_NAME));
will(returnValue(new Long(1))); will(returnValue(new Long(1)));
// The Replica does not yet exist // The Replica does not yet exist
one(openbisService).tryGetSampleWithExperiment( one(openbisService).tryGetSampleWithExperiment(
with(new SampleIdentifierFactory(REPLICA_SAMPLE_IDENTIFIER) with(new SampleIdentifierFactory(REPLICA_SAMPLE_IDENTIFIER)
.createIdentifier())); .createIdentifier()));
will(returnValue(null)); will(returnValue(null));
// Create the Replica // Create the Replica
one(openbisService).registerSample(with(new MatcherNoDesc<NewSample>() one(openbisService).registerSample(with(new MatcherNoDesc<NewSample>()
{ {
......
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