Skip to content
Snippets Groups Projects
Commit ee08711c authored by felmer's avatar felmer
Browse files

LMS-335 add instance code

SVN: 5656
parent 47bdc8fc
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,8 @@ import ch.systemsx.cisd.bds.storage.IDirectory;
public class ExperimentIdentifier implements IStorable
{
static final String FOLDER = "experiment_identifier";
static final String INSTANCE_CODE = "instance_code";
static final String GROUP_CODE = "group_code";
......@@ -43,12 +45,15 @@ public class ExperimentIdentifier implements IStorable
final static ExperimentIdentifier loadFrom(final IDirectory directory)
{
final IDirectory idFolder = Utilities.getSubDirectory(directory, FOLDER);
final String instanceCode = Utilities.getTrimmedString(idFolder, INSTANCE_CODE);
final String groupCode = Utilities.getTrimmedString(idFolder, GROUP_CODE);
final String projectCode = Utilities.getTrimmedString(idFolder, PROJECT_CODE);
final String experimentCode = Utilities.getTrimmedString(idFolder, EXPERIMENT_CODE);
return new ExperimentIdentifier(groupCode, projectCode, experimentCode);
return new ExperimentIdentifier(instanceCode, groupCode, projectCode, experimentCode);
}
private final String instanceCode;
private final String groupCode;
private final String projectCode;
......@@ -58,13 +63,16 @@ public class ExperimentIdentifier implements IStorable
/**
* Creates an instance for the specified codes of group, project, and experiment.
*
* @param instanceCode A non-empty string of the instance code.
* @param groupCode A non-empty string of the group code.
* @param projectCode A non-empty string of the project code.
* @param experimentCode A non-empty string of the experiment code.
*/
public ExperimentIdentifier(final String groupCode, final String projectCode,
public ExperimentIdentifier(final String instanceCode, final String groupCode, final String projectCode,
final String experimentCode)
{
assert StringUtils.isEmpty(instanceCode) == false : "Undefined instance code";
this.instanceCode = instanceCode;
assert StringUtils.isEmpty(groupCode) == false : "Undefined group code";
this.groupCode = groupCode;
assert StringUtils.isEmpty(projectCode) == false : "Undefined project code";
......@@ -73,6 +81,14 @@ public class ExperimentIdentifier implements IStorable
this.experimentCode = experimentCode;
}
/**
* Returns the instance code;
*/
public final String getInstanceCode()
{
return instanceCode;
}
/**
* Returns the group code;
*/
......@@ -107,6 +123,7 @@ public class ExperimentIdentifier implements IStorable
public final void saveTo(final IDirectory directory)
{
final IDirectory folder = directory.makeDirectory(FOLDER);
folder.addKeyValuePair(INSTANCE_CODE, instanceCode);
folder.addKeyValuePair(GROUP_CODE, groupCode);
folder.addKeyValuePair(PROJECT_CODE, projectCode);
folder.addKeyValuePair(EXPERIMENT_CODE, experimentCode);
......@@ -128,14 +145,15 @@ public class ExperimentIdentifier implements IStorable
return false;
}
final ExperimentIdentifier id = (ExperimentIdentifier) obj;
return id.groupCode.equals(groupCode) && id.projectCode.equals(projectCode)
&& id.experimentCode.equals(experimentCode);
return id.instanceCode.equals(instanceCode) && id.groupCode.equals(groupCode)
&& id.projectCode.equals(projectCode) && id.experimentCode.equals(experimentCode);
}
@Override
public final int hashCode()
{
int result = 17;
result = 37 * result + instanceCode.hashCode();
result = 37 * result + groupCode.hashCode();
result = 37 * result + projectCode.hashCode();
result = 37 * result + experimentCode.hashCode();
......@@ -145,8 +163,8 @@ public class ExperimentIdentifier implements IStorable
@Override
public final String toString()
{
return "[group:" + groupCode + ",project:" + projectCode + ",experiment:" + experimentCode
+ "]";
return "[instance:" + instanceCode + ",group:" + groupCode + ",project:" + projectCode
+ ",experiment:" + experimentCode + "]";
}
}
......@@ -45,7 +45,7 @@ public final class DataStructureLoaderTest extends AbstractFileSystemTestCase
dataStructure.create();
dataStructure.getOriginalData().addKeyValuePair("answer", "42");
dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
final ExperimentIdentifier experimentIdentifier = new ExperimentIdentifier("g", "p", "e");
final ExperimentIdentifier experimentIdentifier = new ExperimentIdentifier("i", "g", "p", "e");
dataStructure.setExperimentIdentifier(experimentIdentifier);
final ExperimentRegistrator experimentRegistrator =
new ExperimentRegistrator("john", "doe", "j@doe");
......
......@@ -106,11 +106,12 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
public void testSetExperimentIdentifier()
{
dataStructure.create();
final ExperimentIdentifier id = new ExperimentIdentifier("g", "p", "e");
final ExperimentIdentifier id = new ExperimentIdentifier("i", "g", "p", "e");
dataStructure.setExperimentIdentifier(id);
final IDirectory root = storage.getRoot();
final IDirectory metaData = Utilities.getSubDirectory(root, DataStructureV1_0.DIR_METADATA);
final IDirectory idDir = Utilities.getSubDirectory(metaData, ExperimentIdentifier.FOLDER);
assertEquals("i\n", Utilities.getString(idDir, ExperimentIdentifier.INSTANCE_CODE));
assertEquals("g\n", Utilities.getString(idDir, ExperimentIdentifier.GROUP_CODE));
assertEquals("p\n", Utilities.getString(idDir, ExperimentIdentifier.PROJECT_CODE));
assertEquals("e\n", Utilities.getString(idDir, ExperimentIdentifier.EXPERIMENT_CODE));
......@@ -120,12 +121,13 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
public void testSetExperimentIdentifierTwice()
{
dataStructure.create();
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("a", "b", "c"));
final ExperimentIdentifier id = new ExperimentIdentifier("g", "p", "e");
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("0", "a", "b", "c"));
final ExperimentIdentifier id = new ExperimentIdentifier("i", "g", "p", "e");
dataStructure.setExperimentIdentifier(id);
final IDirectory root = storage.getRoot();
final IDirectory metaData = Utilities.getSubDirectory(root, DataStructureV1_0.DIR_METADATA);
final IDirectory idDir = Utilities.getSubDirectory(metaData, ExperimentIdentifier.FOLDER);
assertEquals("i\n", Utilities.getString(idDir, ExperimentIdentifier.INSTANCE_CODE));
assertEquals("g\n", Utilities.getString(idDir, ExperimentIdentifier.GROUP_CODE));
assertEquals("p\n", Utilities.getString(idDir, ExperimentIdentifier.PROJECT_CODE));
assertEquals("e\n", Utilities.getString(idDir, ExperimentIdentifier.EXPERIMENT_CODE));
......@@ -149,7 +151,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
public void testGetExperimentIdentifier()
{
dataStructure.create();
final ExperimentIdentifier id = new ExperimentIdentifier("g", "p", "e");
final ExperimentIdentifier id = new ExperimentIdentifier("i", "g", "p", "e");
dataStructure.setExperimentIdentifier(id);
assertEquals(id, dataStructure.getExperimentIdentifier());
}
......@@ -240,7 +242,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
dataStructure.create();
dataStructure.getOriginalData().addKeyValuePair("answer", "42");
dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("g", "p", "e"));
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("i", "g", "p", "e"));
dataStructure.setExperimentRegistrationTimestamp(new ExperimentRegistrationTimestamp(
new Date(0)));
try
......@@ -259,7 +261,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
dataStructure.create();
dataStructure.getOriginalData().addKeyValuePair("answer", "42");
dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("g", "p", "e"));
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("i", "g", "p", "e"));
dataStructure.setExperimentRegistrator(new ExperimentRegistrator("g", "p", "g@p"));
try
{
......@@ -277,7 +279,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
dataStructure.create();
dataStructure.getOriginalData().addKeyValuePair("answer", "42");
dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("g", "p", "e"));
dataStructure.setExperimentIdentifier(new ExperimentIdentifier("i", "g", "p", "e"));
dataStructure.setExperimentRegistrator(new ExperimentRegistrator("g", "p", "g@p"));
dataStructure.setExperimentRegistrationTimestamp(new ExperimentRegistrationTimestamp(
new Date(0)));
......@@ -297,7 +299,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
dataStructure.create();
dataStructure.getOriginalData().addKeyValuePair("answer", "42");
dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
final ExperimentIdentifier experimentIdentifier = new ExperimentIdentifier("g", "p", "e");
final ExperimentIdentifier experimentIdentifier = new ExperimentIdentifier("i", "g", "p", "e");
dataStructure.setExperimentIdentifier(experimentIdentifier);
final ExperimentRegistrationTimestamp experimentRegistratorDate =
new ExperimentRegistrationTimestamp(new Date(4711L * 4711000L));
......@@ -486,7 +488,7 @@ public final class DataStructureTestV1_0 extends AbstractFileSystemTestCase
final IDirectory metaData = root.makeDirectory(DataStructureV1_0.DIR_METADATA);
new Format(UnknownFormatV1_0.UNKNOWN_1_0.getCode(), new Version(2, 0), null)
.saveTo(metaData);
new ExperimentIdentifier("g", "p", "e").saveTo(metaData);
new ExperimentIdentifier("i", "g", "p", "e").saveTo(metaData);
new ExperimentRegistrationTimestamp(new Date(0)).saveTo(metaData);
new ExperimentRegistrator("john", "doe", "j@doe").saveTo(metaData);
new Sample("a", "CELL_PLATE", "b").saveTo(metaData);
......
......@@ -33,12 +33,12 @@ public final class ExperimentIdentifierTest extends EqualsHashCodeTestCase<Exper
@Override
protected final ExperimentIdentifier createInstance() throws Exception
{
return new ExperimentIdentifier("group", "project", "experiment1");
return new ExperimentIdentifier("instance", "group", "project", "experiment1");
}
@Override
protected final ExperimentIdentifier createNotEqualInstance() throws Exception
{
return new ExperimentIdentifier("group", "project", "experiment2");
return new ExperimentIdentifier("instance", "group", "project", "experiment2");
}
}
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