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 d764874d317307213af038a51cc8d98de5d38232..9119b4b7a8daf9f1e20a055b5f63a8ca6811c331 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 2422a75ad26a5a649041ae957df4848cc9480d91..5d2010353a8ff010702b230ec0488210e9fc564d 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 afa66871e107800f46e9569d05a759416756b0b0..07be925aab168383e31f39c23096b853393e0711 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 69b73ad5c77a218bc4b19187134aa76334b4419b..ca1a9523636bab07e44ed37e3b7796f00d835cde 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 7acc7067642bf6898c96431f01451f1033d38493..aa1e9e945b46904ae0507c8c5b8425ba3fb55ede 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 a6bf0de5e81f22e6de2eba903242d72c14ae320e..2ec93006b45fbc1af0b3e1cc111e85a3d987fd9d 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 44fe1042bcb82a9a7b2ebaf4936c4abaf6dcfd0c..eb0091af2a5af0368c01def3fc3989a252a1b4a3 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 b640b691093927c909e7197a5c7bd652cb8584f7..ca2baa27865f12142fbe20c7b136c3c7f338d0c8 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 09b131d12ac098a3832c975d6c4432a7feeb145b..40a494b8320ed1141583dcb0cd7cc543227dd7ec 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 c0b0fae72ef8a9f4d24fc86101b7884e68e88513..92bfcf1877939b17dd5eef043c719077b940404d 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 8f8c97e9b6ed69c9727f1878a751b7df0db9ffcf..a90196e01c3a5dcdd90ff43d419fe99601722ca8 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 06f8e7d2602f1d89e8719c6f64cd8568fd0bcf38..23e27f149bba4f78091d7a8f023ce3000215d750 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 0000000000000000000000000000000000000000..850d6f58c83a882f9564311e2cbdcb7e24635ef7 --- /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 c5b41d0db3305a748fd02042c642dae4b49db416..d25d14fa640b504e3be78043a7905478521919f0 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 a57f44ea901b0ab77a94cd852912510b7497a626..3e7bf9d81d0e7cbcaf37830a9d5a88e1acc129a2 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 9bf85de4e79ff531e2297b6a5cfe7e858c6dbef6..27254569856b21b9bc751f54ef380fe7d1ca70e0 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 eba15de05f2565ff67692db9888d94b2aef7bf40..37eef13b576d1ea3e28418ad761b395c757f313a 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 eb9dace1f415bb731c28c08aa2addba22e52e67f..b7120ce25c02987587982b77dd4d11f85e9f23b9 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() {