diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/ApplicationServerApi.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/ApplicationServerApi.java index 2f6b2d96bc57da58cec522fb4cabefa0b0e9cd4e..4bb91ddda4d3e1b9254dbaff9d132e020331e919 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/ApplicationServerApi.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/ApplicationServerApi.java @@ -331,7 +331,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> Map<IExperimentId, ExperimentPE> map = mapExperimentByIdExecutor.map(context, experimentIds); return new MapTranslator<IExperimentId, IExperimentId, ExperimentPE, Experiment>().translate(map, new IdentityTranslator<IExperimentId>(), - new ExperimentTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, + new ExperimentTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions)); } @@ -347,7 +347,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> Map<ISampleId, SamplePE> map = mapSampleByIdExecutor.map(context, sampleIds); return new MapTranslator<ISampleId, ISampleId, SamplePE, Sample>().translate(map, new IdentityTranslator<ISampleId>(), - new SampleTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, + new SampleTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions)); } @@ -362,7 +362,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> Map<IDataSetId, DataPE> map = mapDataSetByIdExecutor.map(context, dataSetIds); return new MapTranslator<IDataSetId, IDataSetId, DataPE, DataSet>().translate(map, new IdentityTranslator<IDataSetId>(), - new DataSetTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, + new DataSetTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions)); } @@ -380,7 +380,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> List<ExperimentPE> experiments = searchExperimentExecutor.search(context, searchCriterion); Map<ExperimentPE, Experiment> translatedMap = - new ExperimentTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, fetchOptions).translate(experiments); + new ExperimentTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions).translate(experiments); return new ArrayList<Experiment>(translatedMap.values()); } catch (Throwable t) { @@ -401,7 +401,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> List<SamplePE> samples = searchSampleExecutor.search(context, searchCriterion); Map<SamplePE, Sample> translatedMap = - new SampleTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, fetchOptions).translate(samples); + new SampleTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions).translate(samples); return new ArrayList<Sample>(translatedMap.values()); } catch (Throwable t) { @@ -422,7 +422,7 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> List<DataPE> dataSets = searchDataSetExecutor.search(context, searchCriterion); Map<DataPE, DataSet> translatedMap = - new DataSetTranslator(new TranslationContext(session), managedPropertyEvaluatorFactory, fetchOptions).translate(dataSets); + new DataSetTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions).translate(dataSets); return new ArrayList<DataSet>(translatedMap.values()); } catch (Throwable t) { @@ -504,9 +504,9 @@ public class ApplicationServerApi extends AbstractServer<IApplicationServerApi> try { List<ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion> deletions = listDeletionExecutor.list(context, fetchOptions); - Map<ch.systemsx.cisd.openbis.generic.shared.basic.dto.Deletion, Deletion> translatedMap = - new DeletionTranslator(new TranslationContext(session), fetchOptions, getDAOFactory()).translate(deletions); + new DeletionTranslator(new TranslationContext(session, managedPropertyEvaluatorFactory), fetchOptions, getDAOFactory()) + .translate(deletions); return new ArrayList<Deletion>(translatedMap.values()); } catch (Throwable t) { diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/TranslationContext.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/TranslationContext.java index db5170bdcfb8a9853cf5a50e2add01eb7b1dcf0a..ce57ae8f1428ef5711bc32bceb33e9c34326f26b 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/TranslationContext.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/TranslationContext.java @@ -2,16 +2,19 @@ package ch.ethz.sis.openbis.generic.server.api.v3.translator; import ch.ethz.sis.openbis.generic.server.api.v3.context.Context; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; public class TranslationContext extends Context { - private final TranslationCache translationCache; - public TranslationContext(Session session) + private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; + + public TranslationContext(Session session, IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory) { super(session); this.translationCache = new TranslationCache(); + this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } public TranslationCache getTranslationCache() @@ -19,4 +22,9 @@ public class TranslationContext extends Context return translationCache; } + public IManagedPropertyEvaluatorFactory getManagedPropertyEvaluatorFactory() + { + return managedPropertyEvaluatorFactory; + } + } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java index dfc71830e2d70738aaeb3ba44a7d04c9d0caf637..72951f4f2aa06fdaca1eca80b238aa7c4083fe6e 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/dataset/DataSetTranslator.java @@ -40,20 +40,16 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.dataset.DataSetPermId; import ch.systemsx.cisd.openbis.generic.server.authorization.validator.DataSetPEByExperimentOrSampleIdentifierValidator; import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; /** * @author Jakub Straszewski */ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet, DataSetFetchOptions> { - private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; - public DataSetTranslator(TranslationContext translationContext, IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory, - DataSetFetchOptions fetchOptions) + public DataSetTranslator(TranslationContext translationContext, DataSetFetchOptions fetchOptions) { super(translationContext, fetchOptions); - this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } @Override @@ -85,7 +81,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet { List<DataSet> children = new ListTranslator().translate(dataPe.getChildren(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withChildren())); result.setChildren(children); result.getFetchOptions().withChildrenUsing(getFetchOptions().withChildren()); @@ -95,7 +91,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet { List<DataSet> parents = new ListTranslator().translate(dataPe.getParents(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withParents())); result.setParents(parents); result.getFetchOptions().withParentsUsing(getFetchOptions().withParents()); @@ -105,7 +101,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet { List<DataSet> contained = new ListTranslator().translate(dataPe.getContainedDataSets(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withContained())); result.setContained(contained); result.getFetchOptions().withContainedUsing(getFetchOptions().withContained()); @@ -115,7 +111,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet { List<DataSet> containers = new ListTranslator().translate(dataPe.getContainers(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withContainers())); result.setContainers(containers); result.getFetchOptions().withContainersUsing(getFetchOptions().withContainers()); @@ -124,7 +120,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet if (getFetchOptions().hasExperiment() && dataPe.getExperiment() != null) { Experiment experiment = - new ExperimentTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withExperiment()) + new ExperimentTranslator(getTranslationContext(), getFetchOptions().withExperiment()) .translate(dataPe.getExperiment()); result.setExperiment(experiment); result.getFetchOptions().withExperimentUsing(getFetchOptions().withExperiment()); @@ -135,7 +131,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet if (dataPe.tryGetSample() != null) { Sample sample = - new SampleTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withSample()) + new SampleTranslator(getTranslationContext(), getFetchOptions().withSample()) .translate(dataPe.tryGetSample()); result.setSample(sample); } @@ -144,7 +140,7 @@ public class DataSetTranslator extends AbstractCachingTranslator<DataPE, DataSet if (getFetchOptions().hasProperties()) { - result.setProperties(new PropertyTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withProperties()) + result.setProperties(new PropertyTranslator(getTranslationContext(), getFetchOptions().withProperties()) .translate(dataPe)); result.getFetchOptions().withPropertiesUsing(getFetchOptions().withProperties()); } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/experiment/ExperimentTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/experiment/ExperimentTranslator.java index 0b9f179cd241fae70ca2390fafb2afcd0a8f676e..46afef598cffa9f306822e63eb53f0fdca64b295 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/experiment/ExperimentTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/experiment/ExperimentTranslator.java @@ -39,7 +39,6 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentIde import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.experiment.ExperimentPermId; import ch.systemsx.cisd.openbis.generic.server.authorization.validator.ExperimentByIdentiferValidator; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; /** * @author pkupczyk @@ -47,13 +46,9 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedProperty public class ExperimentTranslator extends AbstractCachingTranslator<ExperimentPE, Experiment, ExperimentFetchOptions> { - private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; - - public ExperimentTranslator(TranslationContext translationContext, IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory, - ExperimentFetchOptions fetchOptions) + public ExperimentTranslator(TranslationContext translationContext, ExperimentFetchOptions fetchOptions) { super(translationContext, fetchOptions); - this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } @Override @@ -91,7 +86,7 @@ public class ExperimentTranslator extends AbstractCachingTranslator<ExperimentPE if (getFetchOptions().hasProperties()) { Map<String, String> properties = - new PropertyTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withProperties()) + new PropertyTranslator(getTranslationContext(), getFetchOptions().withProperties()) .translate(experiment); result.setProperties(properties); result.getFetchOptions().withPropertiesUsing(getFetchOptions().withProperties()); @@ -99,21 +94,22 @@ public class ExperimentTranslator extends AbstractCachingTranslator<ExperimentPE if (getFetchOptions().hasProject()) { - result.setProject(new ProjectTranslator(getTranslationContext(), getFetchOptions().withProject()).translate(experiment.getProject())); + result.setProject(new ProjectTranslator(getTranslationContext(), getFetchOptions().withProject()) + .translate(experiment.getProject())); result.getFetchOptions().withProjectUsing(getFetchOptions().withProject()); } if (getFetchOptions().hasSamples()) { result.setSamples(new ListTranslator().translate(experiment.getSamples(), new SampleTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions().withSamples()))); + getFetchOptions().withSamples()))); result.getFetchOptions().withSamplesUsing(getFetchOptions().withSamples()); } if (getFetchOptions().hasDataSets()) { result.setDataSets(new ListTranslator().translate(experiment.getDataSets(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions().withDataSets()))); + getFetchOptions().withDataSets()))); result.getFetchOptions().withDataSetsUsing(getFetchOptions().withDataSets()); } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/person/PersonTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/person/PersonTranslator.java index cca40e93ce94cb83f6757a7b8594e1796551ceb9..bdb64236be70b2266fa4c975198bf8bcacf2e0b0 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/person/PersonTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/person/PersonTranslator.java @@ -55,14 +55,16 @@ public class PersonTranslator extends AbstractCachingTranslator<PersonPE, Person { if (getFetchOptions().hasSpace()) { - result.setSpace(new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()).translate(person.getHomeSpace())); + result.setSpace(new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()) + .translate(person.getHomeSpace())); result.getFetchOptions().withSpaceUsing(getFetchOptions().withSpace()); } if (getFetchOptions().hasRegistrator()) { - result.setRegistrator(new PersonTranslator(getTranslationContext(), getFetchOptions().withRegistrator()).translate(person - .getRegistrator())); + result.setRegistrator(new PersonTranslator(getTranslationContext(), getFetchOptions().withRegistrator()) + .translate(person + .getRegistrator())); result.getFetchOptions().withRegistratorUsing(getFetchOptions().withRegistrator()); } } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/project/ProjectTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/project/ProjectTranslator.java index af9efb318ffb5b9986eee3828aa2633c339727df..f18b8072b145aae4c19238207b155788f4afaebe 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/project/ProjectTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/project/ProjectTranslator.java @@ -16,11 +16,16 @@ package ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.project; +import java.util.List; + import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.common.ListTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.experiment.ExperimentTranslator; import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.person.PersonTranslator; import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.space.SpaceTranslator; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.experiment.Experiment; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.project.Project; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.project.ProjectFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.project.ProjectIdentifier; @@ -33,7 +38,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE; */ public class ProjectTranslator extends AbstractCachingTranslator<ProjectPE, Project, ProjectFetchOptions> { - public ProjectTranslator(TranslationContext translationContext, ProjectFetchOptions fetchOptions) { super(translationContext, fetchOptions); @@ -66,7 +70,8 @@ public class ProjectTranslator extends AbstractCachingTranslator<ProjectPE, Proj { if (getFetchOptions().hasSpace()) { - result.setSpace(new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()).translate(project.getSpace())); + result.setSpace(new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()) + .translate(project.getSpace())); result.getFetchOptions().withSpaceUsing(getFetchOptions().withSpace()); } @@ -84,6 +89,13 @@ public class ProjectTranslator extends AbstractCachingTranslator<ProjectPE, Proj result.getFetchOptions().withModifierUsing(getFetchOptions().withModifier()); } + if (getFetchOptions().hasExperiments()) + { + List<Experiment> experiments = + new ListTranslator().translate(project.getExperiments(), new ExperimentTranslator(getTranslationContext(), + getFetchOptions().withExperiments())); + result.setExperiments(experiments); + result.getFetchOptions().withExperimentsUsing(getFetchOptions().withExperiments()); + } } - } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/property/PropertyTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/property/PropertyTranslator.java index e5cae57db0a9013a2a719fa49f8222b4a5858369..bd11295fdccb46b61e60b45ad593773b0571974e 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/property/PropertyTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/property/PropertyTranslator.java @@ -28,7 +28,6 @@ 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.dto.IEntityPropertiesHolder; import ch.systemsx.cisd.openbis.generic.shared.dto.PropertyTypePE; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslator; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; @@ -38,13 +37,9 @@ import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; public class PropertyTranslator extends AbstractCachingTranslator<IEntityPropertiesHolder, Map<String, String>, PropertyFetchOptions> { - private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; - - public PropertyTranslator(TranslationContext translationContext, IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory, - PropertyFetchOptions fetchOptions) + public PropertyTranslator(TranslationContext translationContext, PropertyFetchOptions fetchOptions) { super(translationContext, fetchOptions); - this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } @Override @@ -60,7 +55,7 @@ public class PropertyTranslator extends AbstractCachingTranslator<IEntityPropert List<IEntityProperty> propertiesPE = EntityPropertyTranslator .translate(entity.getProperties(), new HashMap<PropertyTypePE, PropertyType>(), - managedPropertyEvaluatorFactory); + getTranslationContext().getManagedPropertyEvaluatorFactory()); for (IEntityProperty iEntityProperty : propertiesPE) { diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java index c6d5a51fee4889088471eefe2874c5b084567aae..5bccd4e7cd0311d589fcc2c7ca468e10b263e269 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/sample/SampleTranslator.java @@ -36,18 +36,13 @@ import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.sample.SamplePermId; import ch.systemsx.cisd.openbis.generic.server.authorization.validator.SampleByIdentiferValidator; import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IManagedPropertyEvaluatorFactory; public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample, SampleFetchOptions> { - private IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory; - - public SampleTranslator(TranslationContext translationContext, IManagedPropertyEvaluatorFactory managedPropertyEvaluatorFactory, - SampleFetchOptions fetchOptions) + public SampleTranslator(TranslationContext translationContext, SampleFetchOptions fetchOptions) { super(translationContext, fetchOptions); - this.managedPropertyEvaluatorFactory = managedPropertyEvaluatorFactory; } @Override @@ -99,15 +94,16 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample if (getFetchOptions().hasSpace()) { - Space space = new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()).translate(samplePe - .getSpace()); + Space space = + new SpaceTranslator(getTranslationContext(), getFetchOptions().withSpace()).translate(samplePe + .getSpace()); result.setSpace(space); result.getFetchOptions().withSpaceUsing(getFetchOptions().withSpace()); } if (getFetchOptions().hasProperties()) { - result.setProperties(new PropertyTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withProperties()) + result.setProperties(new PropertyTranslator(getTranslationContext(), getFetchOptions().withProperties()) .translate(samplePe)); result.getFetchOptions().withPropertiesUsing(getFetchOptions().withProperties()); } @@ -122,7 +118,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample { List<Sample> children = new ListTranslator().translate(samplePe.getChildren(), new SampleTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withChildren())); result.setChildren(children); result.getFetchOptions().withChildrenUsing(getFetchOptions().withChildren()); @@ -131,7 +127,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample if (getFetchOptions().hasContainer()) { Sample container = - new SampleTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions().withContainer()) + new SampleTranslator(getTranslationContext(), getFetchOptions().withContainer()) .translate(samplePe.getContainer()); result.setContainer(container); result.getFetchOptions().withContainerUsing(getFetchOptions().withContainer()); @@ -141,7 +137,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample { List<Sample> contained = new ListTranslator().translate(samplePe.getContained(), new SampleTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions() + getFetchOptions() .withContained())); result.setContained(contained); result.getFetchOptions().withContainedUsing(getFetchOptions().withContained()); @@ -151,7 +147,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample { List<DataSet> dataSets = new ListTranslator().translate(samplePe.getDatasets(), new DataSetTranslator(getTranslationContext(), - managedPropertyEvaluatorFactory, getFetchOptions().withDataSets())); + getFetchOptions().withDataSets())); result.setDataSets(dataSets); result.getFetchOptions().withDataSetsUsing(getFetchOptions().withDataSets()); } @@ -223,7 +219,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample @Override protected Map<ExperimentPE, Experiment> getTranslatedMap(Collection<ExperimentPE> originalCollection) { - return new ExperimentTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions() + return new ExperimentTranslator(getTranslationContext(), getFetchOptions() .withExperiment()).translate(originalCollection); } @@ -264,7 +260,7 @@ public class SampleTranslator extends AbstractCachingTranslator<SamplePE, Sample @Override protected Map<SamplePE, Sample> getTranslatedMap(Collection<SamplePE> originalCollection) { - return new SampleTranslator(getTranslationContext(), managedPropertyEvaluatorFactory, getFetchOptions() + return new SampleTranslator(getTranslationContext(), getFetchOptions() .withParents()).translate(originalCollection); } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/space/SpaceTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/space/SpaceTranslator.java index 861c66088fc055d559d3a92528ee2e1605808a5b..f1d3368a5ded4e0a89d330260956b781c42b034f 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/space/SpaceTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/translator/entity/space/SpaceTranslator.java @@ -16,10 +16,15 @@ package ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.space; +import java.util.List; + import ch.ethz.sis.openbis.generic.server.api.v3.translator.AbstractCachingTranslator; import ch.ethz.sis.openbis.generic.server.api.v3.translator.Relations; import ch.ethz.sis.openbis.generic.server.api.v3.translator.TranslationContext; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.common.ListTranslator; import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.person.PersonTranslator; +import ch.ethz.sis.openbis.generic.server.api.v3.translator.entity.project.ProjectTranslator; +import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.project.Project; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.entity.space.Space; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.fetchoptions.space.SpaceFetchOptions; import ch.ethz.sis.openbis.generic.shared.api.v3.dto.id.space.SpacePermId; @@ -30,7 +35,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE; */ public class SpaceTranslator extends AbstractCachingTranslator<SpacePE, Space, SpaceFetchOptions> { - public SpaceTranslator(TranslationContext translationContext, SpaceFetchOptions fetchOptions) { super(translationContext, fetchOptions); @@ -59,6 +63,15 @@ public class SpaceTranslator extends AbstractCachingTranslator<SpacePE, Space, S .getRegistrator())); result.getFetchOptions().withRegistratorUsing(getFetchOptions().withRegistrator()); } + + if (getFetchOptions().hasProjects()) + { + List<Project> projects = + new ListTranslator().translate(space.getProjects(), new ProjectTranslator(getTranslationContext(), + getFetchOptions().withProjects())); + result.setProjects(projects); + result.getFetchOptions().withProjectsUsing(getFetchOptions().withProjects()); + } } }