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

bug (ORTS ticket 1015408) fixed.

SVN: 23189
parent 59de00a9
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
......@@ -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>();
......
......@@ -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();
......
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