diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 33e40a70a91755aa7a38b99cda53cecef77f38d8..d0e4efb959cffb0a5f13ca84855f74172f81ae82 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -1998,8 +1998,12 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt sampleBO.enrichWithAttachments(); sampleBO.enrichWithPropertyTypes(); final SamplePE sample = sampleBO.getSample(); + Collection<MetaprojectPE> metaprojectPEs = + getDAOFactory().getMetaprojectDAO().listMetaprojectsForEntity( + session.tryGetPerson(), sample); return SampleTranslator.translate(getSampleTypeSlaveServerPlugin(sample.getSampleType()) - .getSampleInfo(session, sample), session.getBaseIndexURL()); + .getSampleInfo(session, sample), session.getBaseIndexURL(), MetaprojectTranslator + .translate(metaprojectPEs)); } @Override @@ -2335,8 +2339,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServerForInt { List<EntityTypePE> types = new ArrayList<EntityTypePE>(); if ((entityKind.equals(EntityKind.SAMPLE) || entityKind.equals(EntityKind.DATA_SET) || entityKind - .equals(EntityKind.MATERIAL)) - && EntityType.isDefinedInFileEntityTypeCode(type)) + .equals(EntityKind.MATERIAL)) && EntityType.isDefinedInFileEntityTypeCode(type)) { types.addAll(getDAOFactory().getEntityTypeDAO( DtoConverters.convertEntityKind(entityKind)).listEntityTypes()); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java index 3c5bf2774d983b3306684412102301a73a329a97..23e1e4930b10b6940b7f07f569e0e3c15326d948 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/SampleTranslator.java @@ -197,23 +197,18 @@ public final class SampleTranslator } public final static SampleParentWithDerived translate( - final SampleParentWithDerivedDTO sampleGenerationDTO, String baseIndexURL) + final SampleParentWithDerivedDTO sampleGenerationDTO, String baseIndexURL, + Collection<Metaproject> metaprojects) { final SampleParentWithDerived sampleGeneration = new SampleParentWithDerived(); - Collection<Metaproject> parentMetaprojects = - MetaprojectTranslator.translate(sampleGenerationDTO.getParent().getMetaprojects()); - sampleGeneration.setParent(SampleTranslator.translate(sampleGenerationDTO.getParent(), - baseIndexURL, parentMetaprojects)); + baseIndexURL, metaprojects)); final List<Sample> generated = new ArrayList<Sample>(); for (SamplePE samplePE : sampleGenerationDTO.getDerived()) { - Collection<Metaproject> derivedMetaprojects = - MetaprojectTranslator.translate(samplePE.getMetaprojects()); - generated.add(SampleTranslator.translate(samplePE, baseIndexURL, false, false, - derivedMetaprojects)); + generated.add(SampleTranslator.translate(samplePE, baseIndexURL, false, false, null)); } sampleGeneration.setDerived(generated.toArray(new Sample[generated.size()])); return sampleGeneration; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/server/DemoServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/server/DemoServer.java index 5f99ea2f628d3a185dbdc1f75282f0546a7c5742..1d485837a8be74aecdb802ef5f30616f9c798ac0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/server/DemoServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/server/DemoServer.java @@ -42,10 +42,12 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; +import ch.systemsx.cisd.openbis.generic.shared.dto.MetaprojectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.SampleParentWithDerivedDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.translator.MetaprojectTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator; import ch.systemsx.cisd.openbis.plugin.demo.shared.IDemoServer; import ch.systemsx.cisd.openbis.plugin.demo.shared.ResourceNames; @@ -122,7 +124,11 @@ public final class DemoServer extends AbstractServer<IDemoServer> implements IDe ISampleTypeSlaveServerPlugin plugin = getSampleTypeSlaveServerPlugin(sample.getSampleType()); SampleParentWithDerivedDTO sampleInfo = plugin.getSampleInfo(session, sample); - return SampleTranslator.translate(sampleInfo, session.getBaseIndexURL()); + Collection<MetaprojectPE> metaprojectPEs = + getDAOFactory().getMetaprojectDAO().listMetaprojectsForEntity( + session.tryGetPerson(), sample); + return SampleTranslator.translate(sampleInfo, session.getBaseIndexURL(), + MetaprojectTranslator.translate(metaprojectPEs)); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java index df497c386deb0bd38b65fd0c7a499eab7784e401..b9f35aacdfa473e6ba900b54662363a4ef37a678 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java @@ -186,8 +186,12 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen sampleBO.enrichWithAttachments(); sampleBO.enrichWithPropertyTypes(); final SamplePE sample = sampleBO.getSample(); + Collection<MetaprojectPE> metaprojectPEs = + getDAOFactory().getMetaprojectDAO().listMetaprojectsForEntity( + session.tryGetPerson(), sample); return SampleTranslator.translate(getSampleTypeSlaveServerPlugin(sample.getSampleType()) - .getSampleInfo(session, sample), session.getBaseIndexURL()); + .getSampleInfo(session, sample), session.getBaseIndexURL(), MetaprojectTranslator + .translate(metaprojectPEs)); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java index 9750ba7c29127601e4d89e581f8878554e08c857..98639ad83f33b9cad4edd3f6bce2db671d6865be 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java @@ -65,11 +65,13 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Vocabulary; +import ch.systemsx.cisd.openbis.generic.shared.dto.MetaprojectPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.VocabularyPE; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.translator.MetaprojectTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTranslator; import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer; @@ -188,13 +190,13 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl { setAnalysisSettings(new AnalysisSettings(configurer.getResolvedProps())); } - + @Override public void setAnalysisSettings(AnalysisSettings analysisSettings) { this.analysisSettings = analysisSettings; } - + // // IInvocationLoggerFactory // @@ -222,8 +224,12 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl final ISampleBO sampleBO = businessObjectFactory.createSampleBO(session); sampleBO.loadDataByTechId(sampleId); final SamplePE sample = sampleBO.getSample(); + Collection<MetaprojectPE> metaprojectPEs = + getDAOFactory().getMetaprojectDAO().listMetaprojectsForEntity( + session.tryGetPerson(), sample); return SampleTranslator.translate(getSampleTypeSlaveServerPlugin(sample.getSampleType()) - .getSampleInfo(session, sample), session.getBaseIndexURL()); + .getSampleInfo(session, sample), session.getBaseIndexURL(), MetaprojectTranslator + .translate(metaprojectPEs)); } @Override @@ -400,8 +406,8 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl { materialIds.add(id); } - return commonServer - .listMaterials(sessionToken, ListMaterialCriteria.createFromMaterialIds(materialIds), true); + return commonServer.listMaterials(sessionToken, + ListMaterialCriteria.createFromMaterialIds(materialIds), true); } @Override @@ -486,40 +492,36 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<FeatureVectorDatasetReference> listFeatureVectorDatasets( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plates) - throws IllegalArgumentException + public List<FeatureVectorDatasetReference> listFeatureVectorDatasets(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plates) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).listFeatureVectorDatasets(plates); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<ImageDatasetReference> listImageDatasets( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plates) - throws IllegalArgumentException + public List<ImageDatasetReference> listImageDatasets(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plates) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).listImageDatasets(plates); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<ImageDatasetReference> listRawImageDatasets( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plates) - throws IllegalArgumentException + public List<ImageDatasetReference> listRawImageDatasets(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plates) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).listRawImageDatasets(plates); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<ImageDatasetReference> listSegmentationImageDatasets( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plates) - throws IllegalArgumentException + public List<ImageDatasetReference> listSegmentationImageDatasets(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plates) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).listSegmentationImageDatasets(plates); } @@ -548,27 +550,27 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<WellIdentifier> listPlateWells( - String sessionToken, - @AuthorizationGuard(guardClass = PlateIdentifierPredicate.class) PlateIdentifier plateIdentifier) + public List<WellIdentifier> listPlateWells(String sessionToken, + @AuthorizationGuard(guardClass = PlateIdentifierPredicate.class) + PlateIdentifier plateIdentifier) { return createScreeningApiImpl(sessionToken).listPlateWells(plateIdentifier); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public Sample getWellSample( - String sessionToken, - @AuthorizationGuard(guardClass = WellIdentifierPredicate.class) WellIdentifier wellIdentifier) + public Sample getWellSample(String sessionToken, + @AuthorizationGuard(guardClass = WellIdentifierPredicate.class) + WellIdentifier wellIdentifier) { return createScreeningApiImpl(sessionToken).getWellSample(wellIdentifier, true); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public Sample getPlateSample( - String sessionToken, - @AuthorizationGuard(guardClass = PlateIdentifierPredicate.class) PlateIdentifier plateIdentifier) + public Sample getPlateSample(String sessionToken, + @AuthorizationGuard(guardClass = PlateIdentifierPredicate.class) + PlateIdentifier plateIdentifier) { return createScreeningApiImpl(sessionToken).getPlateSample(plateIdentifier); } @@ -583,10 +585,9 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<Plate> listPlates( - String sessionToken, - @AuthorizationGuard(guardClass = ExperimentIdentifierPredicate.class) ExperimentIdentifier experiment) - throws IllegalArgumentException + public List<Plate> listPlates(String sessionToken, + @AuthorizationGuard(guardClass = ExperimentIdentifierPredicate.class) + ExperimentIdentifier experiment) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).listPlates(experiment); } @@ -608,9 +609,9 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<IDatasetIdentifier> getDatasetIdentifiers( - String sessionToken, - @AuthorizationGuard(guardClass = DataSetCodeCollectionPredicate.class) List<String> datasetCodes) + public List<IDatasetIdentifier> getDatasetIdentifiers(String sessionToken, + @AuthorizationGuard(guardClass = DataSetCodeCollectionPredicate.class) + List<String> datasetCodes) { return createScreeningApiImpl(sessionToken).getDatasetIdentifiers(datasetCodes); } @@ -642,9 +643,9 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<PlateWellMaterialMapping> listPlateMaterialMapping( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plates, + public List<PlateWellMaterialMapping> listPlateMaterialMapping(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plates, MaterialTypeIdentifier materialTypeIdentifierOrNull) { return createScreeningApiImpl(sessionToken).listPlateMaterialMapping(plates, @@ -696,19 +697,18 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public List<PlateMetadata> getPlateMetadataList( - String sessionToken, - @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) List<? extends PlateIdentifier> plateIdentifiers) - throws IllegalArgumentException + public List<PlateMetadata> getPlateMetadataList(String sessionToken, + @AuthorizationGuard(guardClass = ScreeningPlateListReadOnlyPredicate.class) + List<? extends PlateIdentifier> plateIdentifiers) throws IllegalArgumentException { return createScreeningApiImpl(sessionToken).getPlateMetadata(plateIdentifiers); } @Override @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) - public ExperimentImageMetadata getExperimentImageMetadata( - String sessionToken, - @AuthorizationGuard(guardClass = ExperimentIdentifierPredicate.class) ExperimentIdentifier experimentIdentifer) + public ExperimentImageMetadata getExperimentImageMetadata(String sessionToken, + @AuthorizationGuard(guardClass = ExperimentIdentifierPredicate.class) + ExperimentIdentifier experimentIdentifer) { checkSession(sessionToken); return createScreeningApiImpl(sessionToken).getExperimentImageMetadata(experimentIdentifer);