diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java index ac9e797784c1524793a240de6869dbbab6d13893..d83d4107b1139605187c29ab2d61623e8f1687a6 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java @@ -167,7 +167,7 @@ public class DataSetInfoExtractorForMSInjection extends AbstractDataSetInfoExtra { TechId sampleID = new TechId(sample.getId()); List<IEntityProperty> propertiesList = - Util.getUpdatedProperties(sample, sampleType, properties); + Util.getProperties(properties, sampleType, new ArrayList<String>()); Set<NewAttachment> emptySet = Collections.<NewAttachment> emptySet(); Date version = sample.getModificationDate(); service.updateSample(new SampleUpdatesDTO(sampleID, propertiesList, diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/Util.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/Util.java index 1edccd7f0f07b31a7f31b2013ad876abcf3fdce4..23f42c9f08d219bdeeb0f4afb7fc9a8da824a506 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/Util.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/Util.java @@ -18,9 +18,7 @@ package ch.systemsx.cisd.openbis.etlserver.phosphonetx; import java.io.File; import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Properties; import ch.systemsx.cisd.common.exceptions.UserFailureException; @@ -28,7 +26,6 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTypePropertyType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityPropertiesHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; @@ -43,32 +40,6 @@ class Util { } - /** - * Returns all updated properties of specified properties holder. - * - * @param entityType Entity type which knows all possible properties. Used to filter irrelevant - * properties of <code>properties</code>. - * @param properties Properties which might override properties provided by the properties - * holder. - */ - static List<IEntityProperty> getUpdatedProperties(IEntityPropertiesHolder propertiesHolder, - EntityType entityType, Properties properties) - { - Map<String, IEntityProperty> map = new LinkedHashMap<String, IEntityProperty>(); - List<IEntityProperty> props = propertiesHolder.getProperties(); - for (IEntityProperty property : props) - { - map.put(property.getPropertyType().getCode(), property); - } - List<IEntityProperty> sampleProperties = - getProperties(properties, entityType, new ArrayList<String>()); - for (IEntityProperty property : sampleProperties) - { - map.put(property.getPropertyType().getCode(), property); - } - return new ArrayList<IEntityProperty>(map.values()); - } - /** * Returns an array of all entity properties defined by the specified entity type for which * values are found in the specified {@link Properties} object. @@ -88,7 +59,12 @@ class Util return sampleProperties.toArray(new IEntityProperty[sampleProperties.size()]); } - private static List<IEntityProperty> getProperties(Properties properties, + /** + * Turns specified properties into a list of {@link IEntityProperty} instances in accordance to + * the property types assigned to the specified entity type. Keys of missing mandatory + * properties are added to the specified list. + */ + static List<IEntityProperty> getProperties(Properties properties, EntityType entityType, List<String> missingMandatoryProperties) { List<IEntityProperty> sampleProperties = new ArrayList<IEntityProperty>(); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/UtilTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/UtilTest.java index 81ca0f3aa7e0c7a870d41bdae7540bbd3546c739..96526ddff3c8efa9a3f75fd9a906c19d11d1b4b2 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/UtilTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/UtilTest.java @@ -17,17 +17,14 @@ package ch.systemsx.cisd.openbis.etlserver.phosphonetx; import java.util.Arrays; -import java.util.List; import java.util.Properties; import org.testng.AssertJUnit; import org.testng.annotations.Test; import ch.systemsx.cisd.common.exceptions.UserFailureException; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType; @@ -38,43 +35,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleTypePropertyType; */ public class UtilTest extends AssertJUnit { - @Test - public void testGetUpdatedPropertiesForNoEntityProperties() - { - Sample sample = new Sample(); - sample.setProperties(Arrays.<IEntityProperty>asList()); - Properties properties = new Properties(); - properties.setProperty("blabla", "blub"); - - List<IEntityProperty> props = Util.getUpdatedProperties(sample, new SampleType(), properties); - - assertEquals(0, props.size()); - } - - @Test - public void testGetUpdatedProperties() - { - Sample sample = new Sample(); - EntityProperty p1 = createProperty("name", "Albert"); - EntityProperty p2 = createProperty("age", "26"); - sample.setProperties(Arrays.<IEntityProperty>asList(p1, p2)); - SampleType entityType = new SampleType(); - SampleTypePropertyType etpt1 = createETPT("name", false); - SampleTypePropertyType etpt2 = createETPT("age", true); - entityType.setSampleTypePropertyTypes(Arrays.asList(etpt1, etpt2)); - Properties properties = new Properties(); - properties.setProperty("blabla", "blub"); - properties.setProperty("age", "76"); - - List<IEntityProperty> props = Util.getUpdatedProperties(sample, entityType, properties); - - assertEquals(2, props.size()); - assertEquals("name", props.get(0).getPropertyType().getCode()); - assertEquals("Albert", props.get(0).getValue()); - assertEquals("age", props.get(1).getPropertyType().getCode()); - assertEquals("76", props.get(1).getValue()); - } - @Test public void testGetAndCheckProperties() { @@ -113,16 +73,6 @@ public class UtilTest extends AssertJUnit } } - private EntityProperty createProperty(String name, String value) - { - EntityProperty entityProperty = new EntityProperty(); - PropertyType propertyType = new PropertyType(); - propertyType.setCode(name); - entityProperty.setPropertyType(propertyType); - entityProperty.setValue(value); - return entityProperty; - } - private SampleTypePropertyType createETPT(String code, boolean mandatory) { PropertyType propertyType = new PropertyType();