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

LMS-1196 add properties

SVN: 13098
parent 7c96c5ef
No related branches found
No related tags found
No related merge requests found
...@@ -50,6 +50,7 @@ import ch.systemsx.cisd.common.utilities.TokenGenerator; ...@@ -50,6 +50,7 @@ import ch.systemsx.cisd.common.utilities.TokenGenerator;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Group; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Group;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
...@@ -122,56 +123,83 @@ class UploadingCommand implements IDataSetCommand ...@@ -122,56 +123,83 @@ class UploadingCommand implements IDataSetCommand
private static final class MetaDataBuilder private static final class MetaDataBuilder
{ {
private static final String DATA_SET = "data_set";
private static final String SAMPLE = "sample";
private static final String EXPERIMENT = "experiment";
private static final char DELIM = '\t'; private static final char DELIM = '\t';
private static final DateFormat DATE_FORMAT_PATTERN = private static final DateFormat DATE_FORMAT_PATTERN =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
private final StringBuilder builder = new StringBuilder(); private final StringBuilder builder = new StringBuilder();
void dataSetProperties(List<IEntityProperty> properties)
{
addProperties(DATA_SET, properties);
}
void sampleProperties(List<IEntityProperty> properties)
{
addProperties(SAMPLE, properties);
}
void experimentProperties(List<IEntityProperty> properties)
{
addProperties(EXPERIMENT, properties);
}
void addProperties(String category, List<IEntityProperty> properties)
{
for (IEntityProperty property : properties)
{
addRow(category, property.getPropertyType().getCode(), property.getValue());
}
}
void dataSet(String key, String value) void dataSet(String key, String value)
{ {
addRow("data_set", key, value); addRow(DATA_SET, key, value);
} }
void dataSet(String key, Date date) void dataSet(String key, Date date)
{ {
addRow("data_set", key, date); addRow(DATA_SET, key, date);
} }
void dataSet(String key, boolean flag) void dataSet(String key, boolean flag)
{ {
addRow("data_set", key, flag); addRow(DATA_SET, key, flag);
} }
void sample(String key, String value) void sample(String key, String value)
{ {
addRow("sample", key, value); addRow(SAMPLE, key, value);
} }
void sample(String key, Person person) void sample(String key, Person person)
{ {
addRow("sample", key, person); addRow(SAMPLE, key, person);
} }
void sample(String key, Date date) void sample(String key, Date date)
{ {
addRow("sample", key, date); addRow(SAMPLE, key, date);
} }
void experiment(String key, String value) void experiment(String key, String value)
{ {
addRow("experiment", key, value); addRow(EXPERIMENT, key, value);
} }
void experiment(String key, Person person) void experiment(String key, Person person)
{ {
addRow("experiment", key, person); addRow(EXPERIMENT, key, person);
} }
void experiment(String key, Date date) void experiment(String key, Date date)
{ {
addRow("experiment", key, date); addRow(EXPERIMENT, key, date);
} }
private void addRow(String category, String key, Person person) private void addRow(String category, String key, Person person)
...@@ -362,6 +390,7 @@ class UploadingCommand implements IDataSetCommand ...@@ -362,6 +390,7 @@ class UploadingCommand implements IDataSetCommand
builder.dataSet("data_set_type", dataSet.getDataSetType().getCode()); builder.dataSet("data_set_type", dataSet.getDataSetType().getCode());
builder.dataSet("is_measured", dataSet.isDerived() == false); builder.dataSet("is_measured", dataSet.isDerived() == false);
builder.dataSet("is_complete", BooleanOrUnknown.T.equals(dataSet.getComplete())); builder.dataSet("is_complete", BooleanOrUnknown.T.equals(dataSet.getComplete()));
builder.dataSetProperties(dataSet.getProperties());
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
Collection<ExternalData> parents = dataSet.getParents(); Collection<ExternalData> parents = dataSet.getParents();
...@@ -386,6 +415,7 @@ class UploadingCommand implements IDataSetCommand ...@@ -386,6 +415,7 @@ class UploadingCommand implements IDataSetCommand
builder.sample("group_code", group == null ? "(shared)" : group.getCode()); builder.sample("group_code", group == null ? "(shared)" : group.getCode());
builder.sample("registration_timestamp", sample.getRegistrationDate()); builder.sample("registration_timestamp", sample.getRegistrationDate());
builder.sample("registrator", sample.getRegistrator()); builder.sample("registrator", sample.getRegistrator());
builder.sampleProperties(sample.getProperties());
} }
Experiment experiment = dataSet.getExperiment(); Experiment experiment = dataSet.getExperiment();
Project project = experiment.getProject(); Project project = experiment.getProject();
...@@ -395,6 +425,7 @@ class UploadingCommand implements IDataSetCommand ...@@ -395,6 +425,7 @@ class UploadingCommand implements IDataSetCommand
builder.experiment("experiment_type_code", experiment.getExperimentType().getCode()); builder.experiment("experiment_type_code", experiment.getExperimentType().getCode());
builder.experiment("registration_timestamp", experiment.getRegistrationDate()); builder.experiment("registration_timestamp", experiment.getRegistrationDate());
builder.experiment("registrator", experiment.getRegistrator()); builder.experiment("registrator", experiment.getRegistrator());
builder.experimentProperties(experiment.getProperties());
return builder.toString(); return builder.toString();
} }
......
...@@ -24,6 +24,7 @@ import java.util.Arrays; ...@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;
...@@ -52,12 +53,14 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE; ...@@ -52,12 +53,14 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetTypePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext; import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetUploadContext;
import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE; import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.EntityPropertyPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentTypePE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.GroupPE; import ch.systemsx.cisd.openbis.generic.shared.dto.GroupPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE; import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator;
import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator;
/** /**
...@@ -152,11 +155,14 @@ public class UploadingCommandTest extends AssertJUnit ...@@ -152,11 +155,14 @@ public class UploadingCommandTest extends AssertJUnit
createTestData(LOCATION1); createTestData(LOCATION1);
ds2 = createTestData(LOCATION2); ds2 = createTestData(LOCATION2);
ExternalData dataSet1 = ExternalData dataSet1 =
ExternalDataTranslator.translate(createDataSet("1", LOCATION1), "?", "?"); ExternalDataTranslator.translate(createDataSet("1", LOCATION1), "?", "?",
ExperimentTranslator.LoadableFields.PROPERTIES);
System.out.println("ds1:" + dataSet1.getExperiment().getProperties());
ExternalData dataSet2 = ExternalData dataSet2 =
ExternalDataTranslator.translate(createDataSet("2", LOCATION2), "?", "?"); ExternalDataTranslator.translate(createDataSet("2", LOCATION2), "?", "?",
ExperimentTranslator.LoadableFields.PROPERTIES);
List<ExternalData> dataSets = Arrays.<ExternalData> asList(dataSet1, dataSet2); List<ExternalData> dataSets = Arrays.<ExternalData> asList(dataSet1, dataSet2);
command = new UploadingCommand(factory, mailClientParameters, dataSets, uploadContext); command = new UploadingCommand(factory, mailClientParameters, dataSets, uploadContext);
command.deleteAfterUploading = false; command.deleteAfterUploading = false;
} }
...@@ -208,6 +214,8 @@ public class UploadingCommandTest extends AssertJUnit ...@@ -208,6 +214,8 @@ public class UploadingCommandTest extends AssertJUnit
group.setDatabaseInstance(instance); group.setDatabaseInstance(instance);
project.setGroup(group); project.setGroup(group);
experiment.setProject(project); experiment.setProject(project);
LinkedHashSet<EntityPropertyPE> properties = new LinkedHashSet<EntityPropertyPE>();
experiment.setProperties(properties);
return experiment; return experiment;
} }
......
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