diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/authorization/ScreenerReadonlyPlatePredicate.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/authorization/ScreenerReadonlyPlatePredicate.java index dbb626ffdc59520d6229ff180e16d4fb164499d3..6a46a3c47500ae00699c430c80639e24d3cec942 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/authorization/ScreenerReadonlyPlatePredicate.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/api/authorization/ScreenerReadonlyPlatePredicate.java @@ -16,8 +16,12 @@ package ch.systemsx.cisd.openbis.plugin.screening.shared.api.authorization; +import java.util.ArrayList; +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.ShouldFlattenCollections; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.DelegatedPredicate; -import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.SampleOwnerIdentifierPredicate; +import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.SampleOwnerIdentifierCollectionPredicate; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.DatabaseInstanceIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleOwnerIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; @@ -26,20 +30,26 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.api.v1.dto.PlateIdentifi /** * @author Tomasz Pylak */ +@ShouldFlattenCollections(value = false) public class ScreenerReadonlyPlatePredicate extends - DelegatedPredicate<SampleOwnerIdentifier, PlateIdentifier> + DelegatedPredicate<List<SampleOwnerIdentifier>, List<PlateIdentifier>> { public ScreenerReadonlyPlatePredicate() { - super(new SampleOwnerIdentifierPredicate(true)); + super(new SampleOwnerIdentifierCollectionPredicate(true)); } @Override - public SampleOwnerIdentifier convert(PlateIdentifier value) + public List<SampleOwnerIdentifier> convert(List<PlateIdentifier> values) { - return new SampleOwnerIdentifier(new SpaceIdentifier(DatabaseInstanceIdentifier - .createHome(), value.tryGetSpaceCode())); + ArrayList<SampleOwnerIdentifier> soIds = new ArrayList<SampleOwnerIdentifier>(); + for (PlateIdentifier value : values) + { + soIds.add(new SampleOwnerIdentifier(new SpaceIdentifier(DatabaseInstanceIdentifier + .createHome(), value.tryGetSpaceCode()))); + } + return soIds; } @Override