diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java index 270196c547e63cc600763aba58069e8db93afb95..9555a0247cc32674c759b0bc06734f2fedfa0de5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExtractableData.java @@ -18,7 +18,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.ArrayList; import java.util.Date; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import ch.systemsx.cisd.common.annotation.CollectionMapping; import ch.systemsx.cisd.openbis.generic.shared.IServer; @@ -38,8 +40,8 @@ public class ExtractableData extends Code<ExtractableData> private Date productionDate; private String dataProducerCode; - - private String parentDataSetCode; + + private Set<String> parentDataSetCodes = new LinkedHashSet<String>(); private List<NewProperty> dataSetProperties = new ArrayList<NewProperty>(); @@ -83,14 +85,26 @@ public class ExtractableData extends Code<ExtractableData> this.dataProducerCode = dataProducerCode; } + @Deprecated public final String getParentDataSetCode() { - return parentDataSetCode; + return parentDataSetCodes.isEmpty() ? null : parentDataSetCodes.iterator().next(); } + @Deprecated public final void setParentDataSetCode(String parentDataSetCode) { - this.parentDataSetCode = parentDataSetCode; + parentDataSetCodes.add(parentDataSetCode); + } + + public final Set<String> getParentDataSetCodes() + { + return parentDataSetCodes; + } + + public final void setParentDataSetCodes(Set<String> parentDataSetCodes) + { + this.parentDataSetCodes = parentDataSetCodes; } @CollectionMapping(collectionClass = ArrayList.class, elementClass = NewProperty.class) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java index 31a56819cd71f37adc547fe7b9295b59a1d1b953..5b06b0dafd82d297e6231f20040e88246afc9cdf 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExternalDataBOTest.java @@ -591,7 +591,10 @@ public class ExternalDataBOTest extends AbstractBOTest { NewExternalData data = new NewExternalData(); data.setCode(DATA_SET_CODE); - data.setParentDataSetCode(parentDataSetCodeOrNull); + if (parentDataSetCodeOrNull != null) + { + data.setParentDataSetCodes(Collections.singleton(parentDataSetCodeOrNull)); + } data.setDataProducerCode(DATA_PRODUCER_CODE); data.setProductionDate(PRODUCTION_DATE); data.setComplete(BooleanOrUnknown.U);