From 0cdb9eb9cb71b9701dd377979954eb76b5e3f60d Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Mon, 5 Sep 2016 12:46:57 +0000 Subject: [PATCH] SSDM-3750: re-enable project samples SVN: 37031 --- .../executor/sample/FullSampleIdentifier.java | 6 +- .../sample/SetSampleProjectExecutor.java | 4 +- .../sample/UpdateSampleProjectExecutor.java | 4 +- .../executor/sample/VerifySampleExecutor.java | 8 +- .../asapi/v3/helper/generators/Generator.java | 8 +- .../entity/project/ProjectTranslator.java | 26 +++--- .../entity/sample/SampleTranslator.java | 30 +++--- .../ProjectSearchCriteriaTranslator.java | 14 ++- .../server/dataaccess/db/DAOFactory.java | 8 +- .../sample/FullSampleIdentifierTest.java | 13 +-- .../generic/asapi/v3/dto/project/Project.java | 59 ++++++++---- .../fetchoptions/ProjectFetchOptions.java | 32 ++++++- .../search/NoProjectSearchCriteria.java | 37 ++++++++ .../generic/asapi/v3/dto/sample/Sample.java | 92 ++++++++++--------- .../v3/dto/sample/create/SampleCreation.java | 13 +++ .../fetchoptions/SampleFetchOptions.java | 35 ++++++- .../v3/dto/sample/id/SampleIdentifier.java | 13 ++- .../v3/dto/sample/update/SampleUpdate.java | 16 ++++ 18 files changed, 276 insertions(+), 142 deletions(-) create mode 100644 openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/search/NoProjectSearchCriteria.java diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifier.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifier.java index d764874d317..9119b4b7a8d 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifier.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifier.java @@ -172,12 +172,8 @@ public class FullSampleIdentifier @Override public String toString() { - // TODO: project samples - // return new SampleIdentifier(sampleIdentifierParts.getSpaceCodeOrNull(), - // sampleIdentifierParts.getProjectCodeOrNull(), sampleIdentifierParts.getContainerCodeOrNull(), - // sampleCode).toString(); return new SampleIdentifier(sampleIdentifierParts.getSpaceCodeOrNull(), - sampleIdentifierParts.getContainerCodeOrNull(), + sampleIdentifierParts.getProjectCodeOrNull(), sampleIdentifierParts.getContainerCodeOrNull(), sampleCode).toString(); } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/SetSampleProjectExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/SetSampleProjectExecutor.java index 2422a75ad26..5d2010353a8 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/SetSampleProjectExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/SetSampleProjectExecutor.java @@ -51,9 +51,7 @@ public class SetSampleProjectExecutor extends AbstractSetEntityToOneRelationExec @Override protected IProjectId getRelatedId(SampleCreation creation) { - // TODO: project samples - // return creation.getProjectId(); - return null; + return creation.getProjectId(); } @Override diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/UpdateSampleProjectExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/UpdateSampleProjectExecutor.java index afa66871e10..07be925aab1 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/UpdateSampleProjectExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/UpdateSampleProjectExecutor.java @@ -65,9 +65,7 @@ public class UpdateSampleProjectExecutor extends AbstractUpdateEntityToOneRelati @Override protected FieldUpdateValue<IProjectId> getRelatedUpdate(SampleUpdate update) { - // TODO: project samples - // return update.getProjectId(); - return null; + return update.getProjectId(); } @Override diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/VerifySampleExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/VerifySampleExecutor.java index 69b73ad5c77..ca1a9523636 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/VerifySampleExecutor.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/VerifySampleExecutor.java @@ -34,9 +34,8 @@ public class VerifySampleExecutor implements IVerifySampleExecutor @Autowired private IVerifyEntityPropertyExecutor verifyEntityPropertyExecutor; - // TODO: project samples - // @Autowired - // private IVerifySampleProjectExecutor verifySampleProjectExecutor; + @Autowired + private IVerifySampleProjectExecutor verifySampleProjectExecutor; @Autowired private IVerifySampleExperimentExecutor verifySampleExperimentExecutor; @@ -52,8 +51,7 @@ public class VerifySampleExecutor implements IVerifySampleExecutor { verifyEntityPropertyExecutor.verify(context, batch); verifySampleExperimentExecutor.verify(context, batch); - // TODO: project samples - // verifySampleProjectExecutor.verify(context, samples); + verifySampleProjectExecutor.verify(context, batch); verifySampleContainerExecutor.verify(context, batch); verifySampleParentsExecutor.verify(context, batch); } diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/generators/Generator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/generators/Generator.java index 7acc7067642..aa1e9e945b4 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/generators/Generator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/helper/generators/Generator.java @@ -104,8 +104,7 @@ public class Generator extends AbstractGenerator addModificationDate(gen); gen.addFetchedField(SampleType.class, "type", "Sample type", SampleTypeFetchOptions.class); - // TODO: project samples - // gen.addFetchedField(Project.class, "project", "Project", ProjectFetchOptions.class); + gen.addFetchedField(Project.class, "project", "Project", ProjectFetchOptions.class); addSpace(gen); addExperiment(gen); addProperties(gen); @@ -445,9 +444,8 @@ public class Generator extends AbstractGenerator gen.addPluralFetchedField("List<Experiment>", List.class.getName(), "experiments", "Experiments", ExperimentFetchOptions.class) .withInterface(IExperimentsHolder.class); gen.addClassForImport(Experiment.class); - // TODO: project samples - // gen.addPluralFetchedField("List<Sample>", List.class.getName(), "samples", "Samples", SampleFetchOptions.class); - // gen.addClassForImport(Sample.class); + gen.addPluralFetchedField("List<Sample>", List.class.getName(), "samples", "Samples", SampleFetchOptions.class); + gen.addClassForImport(Sample.class); gen.addPluralFetchedField("List<HistoryEntry>", List.class.getName(), "history", "History", HistoryEntryFetchOptions.class); gen.addClassForImport(HistoryEntry.class); diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/project/ProjectTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/project/ProjectTranslator.java index a6bf0de5e81..2ec93006b45 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/project/ProjectTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/project/ProjectTranslator.java @@ -29,6 +29,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.Project; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.fetchoptions.ProjectFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectIdentifier; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectPermId; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample; import ch.ethz.sis.openbis.generic.server.asapi.v3.translator.AbstractCachingTranslator; import ch.ethz.sis.openbis.generic.server.asapi.v3.translator.TranslationContext; import ch.ethz.sis.openbis.generic.server.asapi.v3.translator.TranslationResults; @@ -52,9 +53,8 @@ public class ProjectTranslator extends AbstractCachingTranslator<Long, Project, @Autowired private IProjectExperimentTranslator experimentTranslator; - // TODO : project samples - // @Autowired - // private IProjectSampleTranslator sampleTranslator; + @Autowired + private IProjectSampleTranslator sampleTranslator; @Autowired private IProjectRegistratorTranslator registratorTranslator; @@ -102,11 +102,10 @@ public class ProjectTranslator extends AbstractCachingTranslator<Long, Project, relations.put(IProjectExperimentTranslator.class, experimentTranslator.translate(context, projectIds, fetchOptions.withExperiments())); } - // TODO: project samples - // if (fetchOptions.hasSamples()) - // { - // relations.put(IProjectSampleTranslator.class, sampleTranslator.translate(context, projectIds, fetchOptions.withSamples())); - // } + if (fetchOptions.hasSamples()) + { + relations.put(IProjectSampleTranslator.class, sampleTranslator.translate(context, projectIds, fetchOptions.withSamples())); + } if (fetchOptions.hasRegistrator()) { @@ -162,12 +161,11 @@ public class ProjectTranslator extends AbstractCachingTranslator<Long, Project, result.getFetchOptions().withExperimentsUsing(fetchOptions.withExperiments()); } - // TODO: project samples - // if (fetchOptions.hasSamples()) - // { - // result.setSamples((List<Sample>) relations.get(IProjectSampleTranslator.class, projectId)); - // result.getFetchOptions().withSamplesUsing(fetchOptions.withSamples()); - // } + if (fetchOptions.hasSamples()) + { + result.setSamples((List<Sample>) relations.get(IProjectSampleTranslator.class, projectId)); + result.getFetchOptions().withSamplesUsing(fetchOptions.withSamples()); + } if (fetchOptions.hasRegistrator()) { diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/sample/SampleTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/sample/SampleTranslator.java index 44fe1042bcb..eb0091af2a5 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/sample/SampleTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/entity/sample/SampleTranslator.java @@ -53,9 +53,8 @@ public class SampleTranslator extends AbstractCachingTranslator<Long, Sample, Sa @Autowired private ISampleSpaceTranslator spaceTranslator; - // TODO: project samples - // @Autowired - // private ISampleProjectTranslator projectTranslator; + @Autowired + private ISampleProjectTranslator projectTranslator; @Autowired private ISamplePropertyTranslator propertyTranslator; @@ -127,11 +126,10 @@ public class SampleTranslator extends AbstractCachingTranslator<Long, Sample, Sa relations.put(ISampleSpaceTranslator.class, spaceTranslator.translate(context, sampleIds, fetchOptions.withSpace())); } - // TODO: project samples - // if (fetchOptions.hasProject()) - // { - // relations.put(ISampleProjectTranslator.class, projectTranslator.translate(context, sampleIds, fetchOptions.withProject())); - // } + if (fetchOptions.hasProject()) + { + relations.put(ISampleProjectTranslator.class, projectTranslator.translate(context, sampleIds, fetchOptions.withProject())); + } if (fetchOptions.hasProperties()) { @@ -210,10 +208,7 @@ public class SampleTranslator extends AbstractCachingTranslator<Long, Sample, Sa result.setPermId(new SamplePermId(baseRecord.permId)); result.setCode(baseRecord.code); - // TODO: project samples - // result.setIdentifier(new SampleIdentifier(baseRecord.spaceCode, baseRecord.projectCode, - // baseRecord.containerCode, baseRecord.code)); - result.setIdentifier(new SampleIdentifier(baseRecord.spaceCode, + result.setIdentifier(new SampleIdentifier(baseRecord.spaceCode, baseRecord.projectCode, baseRecord.containerCode, baseRecord.code)); result.setModificationDate(baseRecord.modificationDate); result.setRegistrationDate(baseRecord.registrationDate); @@ -230,12 +225,11 @@ public class SampleTranslator extends AbstractCachingTranslator<Long, Sample, Sa result.getFetchOptions().withSpaceUsing(fetchOptions.withSpace()); } - // TODO: project samples - // if (fetchOptions.hasProject()) - // { - // result.setProject(relations.get(ISampleProjectTranslator.class, sampleId)); - // result.getFetchOptions().withProjectUsing(fetchOptions.withProject()); - // } + if (fetchOptions.hasProject()) + { + result.setProject(relations.get(ISampleProjectTranslator.class, sampleId)); + result.getFetchOptions().withProjectUsing(fetchOptions.withProject()); + } if (fetchOptions.hasProperties()) { diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/search/ProjectSearchCriteriaTranslator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/search/ProjectSearchCriteriaTranslator.java index b640b691093..ca2baa27865 100644 --- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/search/ProjectSearchCriteriaTranslator.java +++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/translator/search/ProjectSearchCriteriaTranslator.java @@ -23,6 +23,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.AbstractCompositeS import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.CodeSearchCriteria; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.ISearchCriteria; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.PermIdSearchCriteria; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.search.NoProjectSearchCriteria; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.search.ProjectSearchCriteria; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.search.SpaceSearchCriteria; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; @@ -51,9 +52,7 @@ public class ProjectSearchCriteriaTranslator extends AbstractFieldFromCompositeS @Override protected boolean doAccepts(ISearchCriteria criteria) { - // TODO: project samples - // return criteria instanceof NoProjectSearchCriteria || criteria instanceof ProjectSearchCriteria; - return criteria instanceof ProjectSearchCriteria; + return criteria instanceof NoProjectSearchCriteria || criteria instanceof ProjectSearchCriteria; } @Override @@ -64,11 +63,10 @@ public class ProjectSearchCriteriaTranslator extends AbstractFieldFromCompositeS throw new IllegalArgumentException("Project criteria can be used only in experiment or sample criteria, " + "but was used in: " + context.peekObjectKind() + " context."); } - // TODO: project samples - // if (criteria instanceof NoProjectSearchCriteria) - // { - // return new SearchCriteriaTranslationResult(new DetailedSearchCriterion(PROJECT_ID_FIELD, NullBridge.NULL)); - // } + if (criteria instanceof NoProjectSearchCriteria) + { + return new SearchCriteriaTranslationResult(new DetailedSearchCriterion(PROJECT_ID_FIELD, NullBridge.NULL)); + } AbstractCompositeSearchCriteria compositeCriteria = (AbstractCompositeSearchCriteria) criteria; Collection<ISearchCriteria> subCriteria = compositeCriteria.getCriteria(); if (subCriteria.isEmpty()) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java index 09b131d12ac..40a494b8320 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DAOFactory.java @@ -22,6 +22,7 @@ import java.sql.Statement; import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.Properties; import javax.annotation.Resource; @@ -32,6 +33,7 @@ import org.springframework.beans.factory.InitializingBean; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.properties.PropertyUtils; import ch.systemsx.cisd.common.spring.ExposablePropertyPlaceholderConfigurer; import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; import ch.systemsx.cisd.openbis.common.spring.SpringEoDSQLExceptionTranslator; @@ -343,10 +345,8 @@ public final class DAOFactory extends AuthorizationDAOFactory implements IDAOFac @Override public void afterPropertiesSet() throws Exception { - // TODO: project samples - // Properties serviceProperties = configurer.getResolvedProps(); - // boolean projectSamplesEnabled = PropertyUtils.getBoolean(serviceProperties, Constants.PROJECT_SAMPLES_ENABLED_KEY, false); - boolean projectSamplesEnabled = false; + Properties serviceProperties = configurer.getResolvedProps(); + boolean projectSamplesEnabled = PropertyUtils.getBoolean(serviceProperties, Constants.PROJECT_SAMPLES_ENABLED_KEY, false); Connection connection = null; try { diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifierTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifierTest.java index c0b0fae72ef..92bfcf18779 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifierTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/FullSampleIdentifierTest.java @@ -21,8 +21,6 @@ import static junit.framework.Assert.fail; import org.testng.annotations.Test; -import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.sample.FullSampleIdentifier; - /** * @author Franz-Josef Elmer */ @@ -36,14 +34,13 @@ public class FullSampleIdentifierTest assertSampId("/C1:S1"); assertSampId("/SPACE1/S2"); assertSampId("/SPACE1/S2:A02"); - // TODO: project samples - // assertSampId("/SPACE1/PROJECT1/S1"); - // assertSampId("/SPACE1/PROJECT1/S1:A02"); + assertSampId("/SPACE1/PROJECT1/S1"); + assertSampId("/SPACE1/PROJECT1/S1:A02"); assertSampIdWithHomeSpace("/HS/S1", "//s1", "HS"); assertSampIdWithHomeSpace("/HS/C1:S1", "//c1:s1", "HS"); - // assertSampIdWithHomeSpace("/HS/PROJECT1/S1", "//Project1/s1", "HS"); - // assertSampIdWithHomeSpace("/HS/PROJECT1/C1:S1", "//project1/c1:s1", "HS"); - // assertSampIdWithHomeSpace("/SP1/PROJECT1/C1:S1", "/sp1/project1/c1:s1", "HS"); + assertSampIdWithHomeSpace("/HS/PROJECT1/S1", "//Project1/s1", "HS"); + assertSampIdWithHomeSpace("/HS/PROJECT1/C1:S1", "//project1/c1:s1", "HS"); + assertSampIdWithHomeSpace("/SP1/PROJECT1/C1:S1", "/sp1/project1/c1:s1", "HS"); } @Test diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/Project.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/Project.java index 8f8c97e9b6e..a90196e01c3 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/Project.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/Project.java @@ -15,6 +15,13 @@ */ package ch.ethz.sis.openbis.generic.asapi.v3.dto.project; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + import ch.ethz.sis.openbis.generic.asapi.v3.dto.attachment.Attachment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IAttachmentsHolder; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.ICodeHolder; @@ -31,20 +38,17 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.Person; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.fetchoptions.ProjectFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectIdentifier; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectPermId; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.Space; import ch.ethz.sis.openbis.generic.asapi.v3.exceptions.NotFetchedException; import ch.systemsx.cisd.base.annotation.JsonObject; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.io.Serializable; -import java.util.Date; -import java.util.List; /* * Class automatically generated with DtoGenerator */ @JsonObject("as.dto.project.Project") -public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, IExperimentsHolder, IModificationDateHolder, IModifierHolder, IPermIdHolder, IRegistrationDateHolder, IRegistratorHolder, ISpaceHolder +public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, IExperimentsHolder, IModificationDateHolder, IModifierHolder, + IPermIdHolder, IRegistrationDateHolder, IRegistratorHolder, ISpaceHolder { private static final long serialVersionUID = 1L; @@ -72,6 +76,9 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I @JsonProperty private List<Experiment> experiments; + @JsonProperty + private List<Sample> samples; + @JsonProperty private List<HistoryEntry> history; @@ -193,8 +200,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasExperiments()) { return experiments; - } - else + } else { throw new NotFetchedException("Experiments have not been fetched."); } @@ -206,6 +212,25 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I this.experiments = experiments; } + // Method automatically generated with DtoGenerator + @JsonIgnore + public List<Sample> getSamples() + { + if (getFetchOptions().hasSamples()) + { + return samples; + } else + { + throw new NotFetchedException("Samples have not been fetched."); + } + } + + // Method automatically generated with DtoGenerator + public void setSamples(List<Sample> samples) + { + this.samples = samples; + } + // Method automatically generated with DtoGenerator @JsonIgnore public List<HistoryEntry> getHistory() @@ -213,8 +238,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasHistory()) { return history; - } - else + } else { throw new NotFetchedException("History have not been fetched."); } @@ -234,8 +258,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasSpace()) { return space; - } - else + } else { throw new NotFetchedException("Space has not been fetched."); } @@ -255,8 +278,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasRegistrator()) { return registrator; - } - else + } else { throw new NotFetchedException("Registrator has not been fetched."); } @@ -276,8 +298,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasModifier()) { return modifier; - } - else + } else { throw new NotFetchedException("Modifier has not been fetched."); } @@ -296,8 +317,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasLeader()) { return leader; - } - else + } else { throw new NotFetchedException("Leader has not been fetched."); } @@ -317,8 +337,7 @@ public class Project implements Serializable, IAttachmentsHolder, ICodeHolder, I if (getFetchOptions() != null && getFetchOptions().hasAttachments()) { return attachments; - } - else + } else { throw new NotFetchedException("Attachments have not been fetched."); } diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/fetchoptions/ProjectFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/fetchoptions/ProjectFetchOptions.java index 06f8e7d2602..23e27f149bb 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/fetchoptions/ProjectFetchOptions.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/fetchoptions/ProjectFetchOptions.java @@ -15,6 +15,10 @@ */ package ch.ethz.sis.openbis.generic.asapi.v3.dto.project.fetchoptions; +import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonProperty; + import ch.ethz.sis.openbis.generic.asapi.v3.dto.attachment.fetchoptions.AttachmentFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.fetchoptions.FetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.fetchoptions.FetchOptionsToStringBuilder; @@ -22,10 +26,9 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.fetchoptions.Experime import ch.ethz.sis.openbis.generic.asapi.v3.dto.history.fetchoptions.HistoryEntryFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.fetchoptions.PersonFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.Project; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.fetchoptions.SpaceFetchOptions; import ch.systemsx.cisd.base.annotation.JsonObject; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.io.Serializable; /* * Class automatically generated with DtoGenerator @@ -38,6 +41,9 @@ public class ProjectFetchOptions extends FetchOptions<Project> implements Serial @JsonProperty private ExperimentFetchOptions experiments; + @JsonProperty + private SampleFetchOptions samples; + @JsonProperty private HistoryEntryFetchOptions history; @@ -81,6 +87,27 @@ public class ProjectFetchOptions extends FetchOptions<Project> implements Serial return experiments != null; } + public SampleFetchOptions withSamples() + { + if (samples == null) + { + samples = new SampleFetchOptions(); + } + return samples; + } + + // Method automatically generated with DtoGenerator + public SampleFetchOptions withSamplesUsing(SampleFetchOptions fetchOptions) + { + return samples = fetchOptions; + } + + // Method automatically generated with DtoGenerator + public boolean hasSamples() + { + return samples != null; + } + // Method automatically generated with DtoGenerator public HistoryEntryFetchOptions withHistory() { @@ -230,6 +257,7 @@ public class ProjectFetchOptions extends FetchOptions<Project> implements Serial { return sort; } + @Override protected FetchOptionsToStringBuilder getFetchOptionsStringBuilder() { diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/search/NoProjectSearchCriteria.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/search/NoProjectSearchCriteria.java new file mode 100644 index 00000000000..850d6f58c83 --- /dev/null +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/project/search/NoProjectSearchCriteria.java @@ -0,0 +1,37 @@ +/* + * Copyright 2015 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.ethz.sis.openbis.generic.asapi.v3.dto.project.search; + +import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.ISearchCriteria; +import ch.systemsx.cisd.base.annotation.JsonObject; + +/** + * @author pkupczyk + */ +@JsonObject("as.dto.project.search.NoProjectSearchCriteria") +public class NoProjectSearchCriteria implements ISearchCriteria +{ + + private static final long serialVersionUID = 1L; + + @Override + public String toString() + { + return "without project"; + } + +} diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/Sample.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/Sample.java index c5b41d0db33..d25d14fa640 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/Sample.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/Sample.java @@ -15,6 +15,16 @@ */ package ch.ethz.sis.openbis.generic.asapi.v3.dto.sample; +import java.io.Serializable; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + import ch.ethz.sis.openbis.generic.asapi.v3.dto.attachment.Attachment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IAttachmentsHolder; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.ICodeHolder; @@ -35,8 +45,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.Experiment; import ch.ethz.sis.openbis.generic.asapi.v3.dto.history.HistoryEntry; import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.Material; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.Person; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.SampleType; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.Project; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.id.SampleIdentifier; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.id.SamplePermId; @@ -44,20 +53,14 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.Space; import ch.ethz.sis.openbis.generic.asapi.v3.dto.tag.Tag; import ch.ethz.sis.openbis.generic.asapi.v3.exceptions.NotFetchedException; import ch.systemsx.cisd.base.annotation.JsonObject; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.io.Serializable; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; /* * Class automatically generated with DtoGenerator */ @JsonObject("as.dto.sample.Sample") -public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, IDataSetsHolder, IExperimentHolder, IMaterialPropertiesHolder, IModificationDateHolder, IModifierHolder, IParentChildrenHolder<Sample>, IPermIdHolder, IPropertiesHolder, IRegistrationDateHolder, IRegistratorHolder, ISpaceHolder, ITagsHolder +public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, IDataSetsHolder, IExperimentHolder, IMaterialPropertiesHolder, + IModificationDateHolder, IModifierHolder, IParentChildrenHolder<Sample>, IPermIdHolder, IPropertiesHolder, IRegistrationDateHolder, + IRegistratorHolder, ISpaceHolder, ITagsHolder { private static final long serialVersionUID = 1L; @@ -82,6 +85,9 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID @JsonProperty private SampleType type; + @JsonProperty + private Project project; + @JsonProperty private Space space; @@ -213,8 +219,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasType()) { return type; - } - else + } else { throw new NotFetchedException("Sample type has not been fetched."); } @@ -226,6 +231,25 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID this.type = type; } + // Method automatically generated with DtoGenerator + @JsonIgnore + public Project getProject() + { + if (getFetchOptions().hasProject()) + { + return project; + } else + { + throw new NotFetchedException("Project has not been fetched."); + } + } + + // Method automatically generated with DtoGenerator + public void setProject(Project project) + { + this.project = project; + } + // Method automatically generated with DtoGenerator @JsonIgnore @Override @@ -234,8 +258,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasSpace()) { return space; - } - else + } else { throw new NotFetchedException("Space has not been fetched."); } @@ -255,8 +278,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasExperiment()) { return experiment; - } - else + } else { throw new NotFetchedException("Experiment has not been fetched."); } @@ -276,8 +298,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasProperties()) { return properties; - } - else + } else { throw new NotFetchedException("Properties have not been fetched."); } @@ -298,8 +319,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasMaterialProperties()) { return materialProperties; - } - else + } else { throw new NotFetchedException("Material Properties have not been fetched."); } @@ -320,8 +340,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasParents()) { return parents; - } - else + } else { throw new NotFetchedException("Parents have not been fetched."); } @@ -341,8 +360,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasChildren()) { return children; - } - else + } else { throw new NotFetchedException("Children have not been fetched."); } @@ -361,8 +379,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasContainer()) { return container; - } - else + } else { throw new NotFetchedException("Container sample has not been fetched."); } @@ -381,8 +398,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasComponents()) { return components; - } - else + } else { throw new NotFetchedException("Component samples have not been fetched."); } @@ -402,8 +418,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasDataSets()) { return dataSets; - } - else + } else { throw new NotFetchedException("Data sets have not been fetched."); } @@ -422,8 +437,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasHistory()) { return history; - } - else + } else { throw new NotFetchedException("History have not been fetched."); } @@ -443,8 +457,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasTags()) { return tags; - } - else + } else { throw new NotFetchedException("Tags have not been fetched."); } @@ -464,8 +477,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasRegistrator()) { return registrator; - } - else + } else { throw new NotFetchedException("Registrator has not been fetched."); } @@ -485,8 +497,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasModifier()) { return modifier; - } - else + } else { throw new NotFetchedException("Modifier has not been fetched."); } @@ -506,8 +517,7 @@ public class Sample implements Serializable, IAttachmentsHolder, ICodeHolder, ID if (getFetchOptions() != null && getFetchOptions().hasAttachments()) { return attachments; - } - else + } else { throw new NotFetchedException("Attachments have not been fetched."); } diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java index a57f44ea901..3e7bf9d81d0 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java @@ -27,6 +27,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.ICreationIdHol import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IPropertiesHolder; import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id.IEntityTypeId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.IExperimentId; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.IProjectId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.id.ISampleId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.id.ISpaceId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.tag.id.ITagId; @@ -44,6 +45,8 @@ public class SampleCreation implements ICreation, ICreationIdHolder, IProperties private IExperimentId experimentId; + private IProjectId projectId; + private ISpaceId spaceId; private String code; @@ -86,6 +89,16 @@ public class SampleCreation implements ICreation, ICreationIdHolder, IProperties this.experimentId = experimentId; } + public IProjectId getProjectId() + { + return projectId; + } + + public void setProjectId(IProjectId projectId) + { + this.projectId = projectId; + } + public ISpaceId getSpaceId() { return spaceId; diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/fetchoptions/SampleFetchOptions.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/fetchoptions/SampleFetchOptions.java index 9bf85de4e79..27254569856 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/fetchoptions/SampleFetchOptions.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/fetchoptions/SampleFetchOptions.java @@ -15,6 +15,10 @@ */ package ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions; +import java.io.Serializable; + +import com.fasterxml.jackson.annotation.JsonProperty; + import ch.ethz.sis.openbis.generic.asapi.v3.dto.attachment.fetchoptions.AttachmentFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.fetchoptions.FetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.fetchoptions.FetchOptionsToStringBuilder; @@ -23,15 +27,12 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.fetchoptions.Experime import ch.ethz.sis.openbis.generic.asapi.v3.dto.history.fetchoptions.HistoryEntryFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.material.fetchoptions.MaterialFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.fetchoptions.PersonFetchOptions; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.fetchoptions.ProjectFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.fetchoptions.PropertyFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleFetchOptions; -import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleTypeFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.fetchoptions.SpaceFetchOptions; import ch.ethz.sis.openbis.generic.asapi.v3.dto.tag.fetchoptions.TagFetchOptions; import ch.systemsx.cisd.base.annotation.JsonObject; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.io.Serializable; /* * Class automatically generated with DtoGenerator @@ -44,6 +45,9 @@ public class SampleFetchOptions extends FetchOptions<Sample> implements Serializ @JsonProperty private SampleTypeFetchOptions type; + @JsonProperty + private ProjectFetchOptions project; + @JsonProperty private SpaceFetchOptions space; @@ -111,6 +115,28 @@ public class SampleFetchOptions extends FetchOptions<Sample> implements Serializ return type != null; } + // Method automatically generated with DtoGenerator + public ProjectFetchOptions withProject() + { + if (project == null) + { + project = new ProjectFetchOptions(); + } + return project; + } + + // Method automatically generated with DtoGenerator + public ProjectFetchOptions withProjectUsing(ProjectFetchOptions fetchOptions) + { + return project = fetchOptions; + } + + // Method automatically generated with DtoGenerator + public boolean hasProject() + { + return project != null; + } + // Method automatically generated with DtoGenerator public SpaceFetchOptions withSpace() { @@ -436,6 +462,7 @@ public class SampleFetchOptions extends FetchOptions<Sample> implements Serializ { return sort; } + @Override protected FetchOptionsToStringBuilder getFetchOptionsStringBuilder() { diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/id/SampleIdentifier.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/id/SampleIdentifier.java index eba15de05f2..37eef13b576 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/id/SampleIdentifier.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/id/SampleIdentifier.java @@ -40,10 +40,15 @@ public class SampleIdentifier extends ObjectIdentifier implements ISampleId public SampleIdentifier(String spaceCodeOrNull, String containerCodeOrNull, String sampleCode) { - this(createIdentifier(spaceCodeOrNull, containerCodeOrNull, sampleCode)); + this(spaceCodeOrNull, null, containerCodeOrNull, sampleCode); } - private static String createIdentifier(String spaceCodeOrNull, + public SampleIdentifier(String spaceCodeOrNull, String projectCodeOrNull, String containerCodeOrNull, String sampleCode) + { + this(createIdentifier(spaceCodeOrNull, projectCodeOrNull, containerCodeOrNull, sampleCode)); + } + + private static String createIdentifier(String spaceCodeOrNull, String projectCodeOrNull, String containerCodeOrNull, String sampleCode) { StringBuilder builder = new StringBuilder("/"); @@ -51,6 +56,10 @@ public class SampleIdentifier extends ObjectIdentifier implements ISampleId { builder.append(spaceCodeOrNull).append("/"); } + if (projectCodeOrNull != null) + { + builder.append(projectCodeOrNull).append("/"); + } if (containerCodeOrNull != null) { builder.append(containerCodeOrNull).append(":"); diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/update/SampleUpdate.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/update/SampleUpdate.java index eb9dace1f41..b7120ce25c0 100644 --- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/update/SampleUpdate.java +++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/update/SampleUpdate.java @@ -30,6 +30,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.update.IUpdate; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.update.IdListUpdateValue; import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.update.ListUpdateValue.ListUpdateAction; import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.IExperimentId; +import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.IProjectId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.id.ISampleId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.space.id.ISpaceId; import ch.ethz.sis.openbis.generic.asapi.v3.dto.tag.id.ITagId; @@ -49,6 +50,9 @@ public class SampleUpdate implements IUpdate, IPropertiesHolder @JsonProperty private FieldUpdateValue<IExperimentId> experimentId = new FieldUpdateValue<IExperimentId>(); + @JsonProperty + private FieldUpdateValue<IProjectId> projectId = new FieldUpdateValue<IProjectId>(); + @JsonProperty private FieldUpdateValue<ISpaceId> spaceId = new FieldUpdateValue<ISpaceId>(); @@ -97,6 +101,18 @@ public class SampleUpdate implements IUpdate, IPropertiesHolder this.experimentId.setValue(experimentId); } + @JsonIgnore + public FieldUpdateValue<IProjectId> getProjectId() + { + return projectId; + } + + @JsonIgnore + public void setProjectId(IProjectId projectId) + { + this.projectId.setValue(projectId); + } + @JsonIgnore public FieldUpdateValue<ISpaceId> getSpaceId() { -- GitLab