From d04e374de31b1db689215cda7d211b6373287db1 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Mon, 9 Aug 2010 13:04:47 +0000 Subject: [PATCH] [LMS-1676] changes in new sample (only for single sample registration and update) SVN: 17370 --- .../client/web/client/dto/SampleUpdates.java | 7 +-- .../openbis/generic/server/ETLService.java | 7 +-- .../bo/AbstractSampleBusinessObject.java | 29 ++++++++++-- .../shared/basic/dto/BasicSampleUpdates.java | 5 ++- .../generic/shared/basic/dto/NewSample.java | 44 ++++++++++++++++--- .../shared/basic/dto/UpdatedSample.java | 7 ++- .../shared/dto/SampleBatchUpdatesDTO.java | 2 +- .../generic/shared/dto/SampleUpdatesDTO.java | 7 +-- ...AbstractGenericSampleRegisterEditForm.java | 2 +- .../sample/GenericSampleEditForm.java | 8 ++-- .../sample/GenericSampleRegistrationForm.java | 19 ++++++-- .../web/server/GenericClientService.java | 3 +- .../server/business/bo/SampleBOTest.java | 20 ++++----- .../predicate/NewSamplePredicateTest.java | 15 ++++--- .../NewSamplesWithTypePredicateTest.java | 15 ++++--- .../generic/server/GenericServerTest.java | 2 +- .../dss/bundle/BundleDataSetHelperRpc.java | 4 +- .../DataSetInfoExtractorForMSInjection.java | 21 ++++++--- 18 files changed, 153 insertions(+), 64 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleUpdates.java index de8b59062b2..eb92858099f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleUpdates.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/dto/SampleUpdates.java @@ -56,10 +56,11 @@ public class SampleUpdates extends BasicSampleUpdates public SampleUpdates(String sessionKey, TechId sampleId, List<IEntityProperty> properties, List<NewAttachment> attachments, ExperimentIdentifier experimentIdentifierOrNull, - Date version, String sampleIdentifier, String parentIdentifierOrNull, - String containerIdentifierOrNull) + Date version, String sampleIdentifier, String containerIdentifierOrNull, + String parentIdentifierOrNull, String[] parents) { - super(sampleId, properties, version, parentIdentifierOrNull, containerIdentifierOrNull); + super(sampleId, properties, version, containerIdentifierOrNull, parentIdentifierOrNull, + parents); this.sessionKey = sessionKey; this.attachments = attachments; this.experimentIdentifierOrNull = experimentIdentifierOrNull; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index e88a045cd55..3ca33f98281 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -601,7 +601,8 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET { Session session = getSession(sessionToken); IExternalDataDAO externalDataDAO = getDAOFactory().getExternalDataDAO(); - ExternalDataPE dataSet = externalDataDAO.tryToFindFullDataSetByCode(dataSetCode, false, false); + ExternalDataPE dataSet = + externalDataDAO.tryToFindFullDataSetByCode(dataSetCode, false, false); if (dataSet != null) { DataSetTypePE dataSetType = dataSet.getDataSetType(); @@ -768,8 +769,8 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET String groupPrefix = container.getGroup() != null ? ("/" + container.getGroup().getCode() + "/") : "/"; - newSamples.add(new NewSample(groupPrefix + code, SampleTypeTranslator.translate( - sampleTypePE, null), null, container.getIdentifier())); + newSamples.add(NewSample.createWithParent(groupPrefix + code, SampleTypeTranslator + .translate(sampleTypePE, null), null, container.getIdentifier())); } getSampleTypeSlaveServerPlugin(sampleTypePE).registerSamples(session, newSamples); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java index f7f40c9d9d7..d2797f354d9 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractSampleBusinessObject.java @@ -16,6 +16,7 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo; +import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -45,6 +46,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE; import ch.systemsx.cisd.openbis.generic.shared.dto.Session; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.IdentifierHelper; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFactory; @@ -130,7 +132,23 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi samplePE.setDatabaseInstance(sampleOwner.tryGetDatabaseInstance()); defineSampleProperties(samplePE, newSample.getProperties()); String parentIdentifier = newSample.getParentIdentifier(); - setGeneratedFrom(sampleIdentifier, samplePE, parentIdentifier); + if (parentIdentifier != null) + { + setGeneratedFrom(sampleIdentifier, samplePE, parentIdentifier); + } else if (newSample.getParents() != null) + { + final String[] parents = newSample.getParents(); + final List<SampleIdentifier> parentIdentifiers = + IdentifierHelper.extractSampleIdentifiers(parents); + if (sampleIdentifier.isSpaceLevel()) + { + final String spaceCode = sampleIdentifier.getSpaceLevel().getSpaceCode(); + for (SampleIdentifier si : parentIdentifiers) + { + IdentifierHelper.fillAndCheckGroup(si, spaceCode); + } + } + } String containerIdentifier = newSample.getContainerIdentifier(); setContainer(sampleIdentifier, samplePE, containerIdentifier); samplePE.setPermId(getPermIdDAO().createPermId()); @@ -214,14 +232,19 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi private void removeParents(SamplePE child) { + List<SampleRelationshipPE> parents = new ArrayList<SampleRelationshipPE>(); for (SampleRelationshipPE r : child.getParentRelationships()) { if (r.getRelationship().getCode().equals( BasicConstant.PARENT_CHILD_INTERNAL_RELATIONSHIP)) { - child.removeParentRelationship(r); + parents.add(r); } } + for (SampleRelationshipPE r : parents) + { + child.removeParentRelationship(r); + } } // ineffective for adding a collection of parents @@ -244,7 +267,7 @@ abstract class AbstractSampleBusinessObject extends AbstractSampleIdentifierBusi RelationshipTypePE relationshipType) { final SampleRelationshipPE relationship = - new SampleRelationshipPE(child, parent, relationshipType); + new SampleRelationshipPE(parent, child, relationshipType); child.addParentRelationship(relationship); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java index 84552fab3aa..4fff987b9ab 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/BasicSampleUpdates.java @@ -76,13 +76,14 @@ public class BasicSampleUpdates implements IsSerializable, Serializable } public BasicSampleUpdates(TechId sampleId, List<IEntityProperty> properties, Date version, - String parentIdentifierOrNull, String containerIdentifierOrNull) + String containerIdentifierOrNull, String parentIdentifierOrNull, String[] parents) { this.sampleIdOrNull = sampleId; this.properties = properties; this.version = version; - this.parentIdentifierOrNull = parentIdentifierOrNull; this.containerIdentifierOrNull = containerIdentifierOrNull; + this.parentIdentifierOrNull = parentIdentifierOrNull; + this.modifiedParentCodesOrNull = parents; } public TechId getSampleIdOrNull() diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSample.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSample.java index 12d7cabf22c..4fd95b58100 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSample.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/NewSample.java @@ -46,8 +46,14 @@ public class NewSample extends Identifier<NewSample> implements Comparable<NewSa /** * The parent identifier. */ + // TODO 2010-08-09, Piotr Buczek: remove private String parentIdentifier; + // Set of parent sample codes or identifiers. It will be assumed that + // all the samples belong to the same group as the child sample. + // If equals to null then parentIdentifier should be used. + private String[] parentsOrNull; + /** * The container identifier. */ @@ -66,20 +72,36 @@ public class NewSample extends Identifier<NewSample> implements Comparable<NewSa { } - public NewSample(final String identifier, final SampleType sampleType, - final String parentIdentifier, final String containerIdentifier) + private NewSample(final String identifier, final SampleType sampleType, + final String containerIdentifier) { setIdentifier(identifier); setSampleType(sampleType); - setParentIdentifier(parentIdentifier); setContainerIdentifier(containerIdentifier); } - public NewSample(final String identifier, SampleType sampleType, String parentIdentifier, - String containerIdentifier, String experimentIdentifier, IEntityProperty[] properties, + public static NewSample createWithParent(final String identifier, final SampleType sampleType, + final String containerIdentifier, final String parentIdentifier) + { + NewSample result = new NewSample(identifier, sampleType, containerIdentifier); + result.setParentIdentifier(parentIdentifier); + return result; + } + + public static NewSample createWithParents(final String identifier, final SampleType sampleType, + final String containerIdentifier, final String[] parents) + { + NewSample result = new NewSample(identifier, sampleType, containerIdentifier); + result.setParents(parents); + return result; + } + + public NewSample(final String identifier, SampleType sampleType, String containerIdentifier, + String parentIdentifier, String experimentIdentifier, IEntityProperty[] properties, List<NewAttachment> attachments) { - this(identifier, sampleType, parentIdentifier, containerIdentifier); + this(identifier, sampleType, containerIdentifier); + this.parentIdentifier = parentIdentifier; this.experimentIdentifier = experimentIdentifier; this.properties = properties; this.attachments = attachments; @@ -105,6 +127,16 @@ public class NewSample extends Identifier<NewSample> implements Comparable<NewSa this.sampleType = sampleType; } + public String[] getParents() + { + return parentsOrNull; + } + + public void setParents(String[] parents) + { + this.parentsOrNull = parents; + } + public final String getParentIdentifier() { return parentIdentifier; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/UpdatedSample.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/UpdatedSample.java index 7a2686fda1c..e1cfb3838d2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/UpdatedSample.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/UpdatedSample.java @@ -39,10 +39,9 @@ public final class UpdatedSample extends NewSample public UpdatedSample(NewSample newSample, SampleBatchUpdateDetails batchUpdateDetails) { - super(newSample.getIdentifier(), newSample.getSampleType(), - newSample.getParentIdentifier(), newSample.getContainerIdentifier(), newSample - .getExperimentIdentifier(), newSample.getProperties(), newSample - .getAttachments()); + super(newSample.getIdentifier(), newSample.getSampleType(), newSample + .getContainerIdentifier(), newSample.getParentIdentifier(), newSample + .getExperimentIdentifier(), newSample.getProperties(), newSample.getAttachments()); this.batchUpdateDetails = batchUpdateDetails; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleBatchUpdatesDTO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleBatchUpdatesDTO.java index 33e78a97898..f366c194ba2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleBatchUpdatesDTO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleBatchUpdatesDTO.java @@ -41,7 +41,7 @@ public class SampleBatchUpdatesDTO extends SampleUpdatesDTO String containerIdentifierOrNull, SampleBatchUpdateDetails details) { super(null, properties, experimentIdentifierOrNull, null, null, sampleIdentifier, - parentIdentifierOrNull, containerIdentifierOrNull); + containerIdentifierOrNull, parentIdentifierOrNull, null); this.oldSampleIdentifierOrNull = oldSampleIdentifier; this.details = details; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleUpdatesDTO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleUpdatesDTO.java index 0a82f0e2d99..1c0d740fe4b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleUpdatesDTO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleUpdatesDTO.java @@ -43,10 +43,11 @@ public class SampleUpdatesDTO extends BasicSampleUpdates public SampleUpdatesDTO(TechId sampleId, List<IEntityProperty> properties, ExperimentIdentifier experimentIdentifierOrNull, Collection<NewAttachment> attachments, - Date version, SampleIdentifier sampleIdentifier, String parentIdentifierOrNull, - String containerIdentifierOrNull) + Date version, SampleIdentifier sampleIdentifier, String containerIdentifierOrNull, + String parentIdentifierOrNull, String[] parentsOrNull) { - super(sampleId, properties, version, parentIdentifierOrNull, containerIdentifierOrNull); + super(sampleId, properties, version, containerIdentifierOrNull, parentIdentifierOrNull, + parentsOrNull); this.experimentIdentifierOrNull = experimentIdentifierOrNull; this.attachments = attachments; this.sampleIdentifier = sampleIdentifier; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java index 3a1504a4ad5..e7ab575cc8e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/AbstractGenericSampleRegisterEditForm.java @@ -270,7 +270,7 @@ abstract public class AbstractGenericSampleRegisterEditForm extends return sampleType.getCode(); } - protected String[] getSamples() + protected String[] getParents() { return parentsArea.tryGetSampleCodes(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java index dc62f5740f3..11cf3cf3143 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleEditForm.java @@ -64,13 +64,15 @@ public final class GenericSampleEditForm extends AbstractGenericSampleRegisterEd { final List<IEntityProperty> properties = extractProperties(); final List<NewAttachment> attachments = attachmentsManager.extractAttachments(); - ExperimentIdentifier experimentIdent = + final ExperimentIdentifier experimentIdent = experimentField != null ? experimentField.tryToGetValue() : null; + final String containerOrNull = StringUtils.trimToNull(container.getValue()); + final String parentOrNull = StringUtils.trimToNull(parent.getValue()); + final String[] parents = getParents(); viewContext.getService().updateSample( new SampleUpdates(attachmentsSessionKey, techIdOrNull, properties, attachments, experimentIdent, originalSample.getModificationDate(), - createSampleIdentifier(), StringUtils.trimToNull(parent.getValue()), - StringUtils.trimToNull(container.getValue())), + createSampleIdentifier(), containerOrNull, parentOrNull, parents), new UpdateSampleCallback(viewContext)); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java index 97d9f97694e..29549e423d9 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationForm.java @@ -97,9 +97,22 @@ public final class GenericSampleRegistrationForm extends AbstractGenericSampleRe (experimentField != null && experimentField.tryToGetValue() != null) ? experimentField .tryToGetValue().getIdentifier() : null; - final NewSample newSample = - new NewSample(createSampleIdentifier(), sampleType, StringUtils.trimToNull(parent - .getValue()), StringUtils.trimToNull(container.getValue())); + + final String containerOrNull = StringUtils.trimToNull(container.getValue()); + final String parentOrNull = StringUtils.trimToNull(parent.getValue()); + final NewSample newSample; + if (parentOrNull == null) + { + final String[] parents = getParents(); + newSample = + NewSample.createWithParents(createSampleIdentifier(), sampleType, + containerOrNull, parents); + } else + { + newSample = + NewSample.createWithParent(createSampleIdentifier(), sampleType, + containerOrNull, parentOrNull); + } final List<IEntityProperty> properties = extractProperties(); newSample.setProperties(properties.toArray(IEntityProperty.EMPTY_ARRAY)); newSample.setAttachments(attachmentsManager.extractAttachments()); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java index 7ccdaa4edc3..5ac80ef2c05 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/server/GenericClientService.java @@ -350,8 +350,9 @@ public class GenericClientService extends AbstractClientService implements IGene .getSampleIdOrNull(), updates.getProperties(), convExperimentIdentifierOrNull, attachments, updates .getVersion(), sampleOwner, updates + .getContainerIdentifierOrNull(), updates .getParentIdentifierOrNull(), updates - .getContainerIdentifierOrNull())); + .getModifiedParentCodesOrNull())); result.copyFrom(updateResult); } }.process(updates.getSessionKey(), getHttpSession(), updates.getAttachments()); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java index 5590b9218f5..9561416b7bf 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/SampleBOTest.java @@ -409,7 +409,7 @@ public final class SampleBOTest extends AbstractBOTest }); createSampleBO().update( new SampleUpdatesDTO(SAMPLE_TECH_ID, null, experimentIdentifier, Collections - .<NewAttachment> emptyList(), now, null, null, null)); + .<NewAttachment> emptyList(), now, null, null, null, null)); assertEquals(experimentToAttach, sample.getExperiment()); context.assertIsSatisfied(); @@ -445,7 +445,7 @@ public final class SampleBOTest extends AbstractBOTest createSampleBO().update( new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections .<NewAttachment> emptyList(), now, SampleIdentifierFactory - .parse(newSampleIdentifierWithoutDb), null, null)); + .parse(newSampleIdentifierWithoutDb), null, null, null)); String newSampleIdentWithDb = EXAMPLE_DATABASE_INSTANCE.getCode() + ":" + newSampleIdentifierWithoutDb; assertEquals(newSampleIdentWithDb, sample.getSampleIdentifier().toString()); @@ -505,7 +505,7 @@ public final class SampleBOTest extends AbstractBOTest assertNull(sample.getGeneratedFrom()); createSampleBO().update( new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections - .<NewAttachment> emptyList(), now, null, parent.getSampleIdentifier() + .<NewAttachment> emptyList(), now, null, null, parent.getSampleIdentifier() .toString(), null)); SamplePE newParent = sample.getGeneratedFrom(); assertNotNull(newParent); @@ -557,8 +557,8 @@ public final class SampleBOTest extends AbstractBOTest assertNull(sample.getContainer()); createSampleBO().update( new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections - .<NewAttachment> emptyList(), now, null, null, container - .getSampleIdentifier().toString())); + .<NewAttachment> emptyList(), now, null, container.getSampleIdentifier() + .toString(), null, null)); assertNotNull(sample.getContainer()); assertEquals(container, sample.getContainer()); context.assertIsSatisfied(); @@ -611,8 +611,8 @@ public final class SampleBOTest extends AbstractBOTest assertNull(sample.getContainer()); SampleBO bo = createSampleBO(); bo.update(new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections - .<NewAttachment> emptyList(), now, null, null, container.getSampleIdentifier() - .toString())); + .<NewAttachment> emptyList(), now, null, + container.getSampleIdentifier().toString(), null, null)); bo.save(); context.assertIsSatisfied(); } @@ -643,7 +643,7 @@ public final class SampleBOTest extends AbstractBOTest { createSampleBO().update( new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections - .<NewAttachment> emptyList(), now, null, null, null)); + .<NewAttachment> emptyList(), now, null, null, null, null)); } catch (UserFailureException ex) { exceptionThrown = true; @@ -671,7 +671,7 @@ public final class SampleBOTest extends AbstractBOTest { SampleUpdatesDTO updates = new SampleUpdatesDTO(SAMPLE_TECH_ID, null, null, Collections - .<NewAttachment> emptyList(), now, null, null, null); + .<NewAttachment> emptyList(), now, null, null, null, null); createSampleBO().update(updates); } catch (UserFailureException e) { @@ -993,6 +993,6 @@ public final class SampleBOTest extends AbstractBOTest createSampleBO().update( new SampleUpdatesDTO(sampleId, null, experimentIdentifier, Collections .<NewAttachment> emptyList(), sample.getModificationDate(), null, null, - null)); + null, null)); } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplePredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplePredicateTest.java index eca0a008ca2..808855c9bf1 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplePredicateTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplePredicateTest.java @@ -43,7 +43,8 @@ public class NewSamplePredicateTest extends AuthorizationTestCase SampleIdentifier sampleIdentifier = new SampleIdentifier(new DatabaseInstanceIdentifier(ANOTHER_INSTANCE_CODE), "s1"); NewSample sample = - new NewSample(sampleIdentifier.toString(), sampleType, "parent", "container"); + NewSample.createWithParent(sampleIdentifier.toString(), sampleType, "parent", + "container"); prepareProvider(ANOTHER_INSTANCE_CODE, createAnotherDatabaseInstance(), createGroups()); predicate.init(provider); @@ -61,7 +62,8 @@ public class NewSamplePredicateTest extends AuthorizationTestCase SampleIdentifier sampleIdentifier = new SampleIdentifier(new DatabaseInstanceIdentifier(INSTANCE_CODE), "s1"); NewSample sample = - new NewSample(sampleIdentifier.toString(), sampleType, "parent", "container"); + NewSample.createWithParent(sampleIdentifier.toString(), sampleType, "parent", + "container"); prepareProvider(INSTANCE_CODE, createDatabaseInstance(), createGroups()); predicate.init(provider); @@ -81,7 +83,8 @@ public class NewSamplePredicateTest extends AuthorizationTestCase SampleIdentifier sampleIdentifier = new SampleIdentifier(new GroupIdentifier(INSTANCE_CODE, SPACE_CODE), "s1"); NewSample sample = - new NewSample(sampleIdentifier.toString(), sampleType, "parent", "container"); + NewSample.createWithParent(sampleIdentifier.toString(), sampleType, "parent", + "container"); prepareProvider(INSTANCE_CODE, createDatabaseInstance(), createGroups()); predicate.init(provider); @@ -99,7 +102,8 @@ public class NewSamplePredicateTest extends AuthorizationTestCase GroupIdentifier groupIdentifier = new GroupIdentifier(INSTANCE_CODE, ANOTHER_GROUP_CODE); SampleIdentifier sampleIdentifier = new SampleIdentifier(groupIdentifier, "s1"); NewSample sample = - new NewSample(sampleIdentifier.toString(), sampleType, "parent", "container"); + NewSample.createWithParent(sampleIdentifier.toString(), sampleType, "parent", + "container"); List<GroupPE> groups = Arrays.asList(createGroup(groupIdentifier)); prepareProvider(INSTANCE_CODE, createDatabaseInstance(), groups); predicate.init(provider); @@ -107,7 +111,8 @@ public class NewSamplePredicateTest extends AuthorizationTestCase Status status = predicate.evaluate(createPerson(), createRoles(false), sample); assertEquals(true, status.isError()); - assertEquals("User 'megapixel' does not have enough privileges.", status.tryGetErrorMessage()); + assertEquals("User 'megapixel' does not have enough privileges.", status + .tryGetErrorMessage()); context.assertIsSatisfied(); } } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplesWithTypePredicateTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplesWithTypePredicateTest.java index 18d60a6fb3b..55c47a9d3b7 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplesWithTypePredicateTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/authorization/predicate/NewSamplesWithTypePredicateTest.java @@ -88,8 +88,9 @@ public class NewSamplesWithTypePredicateTest extends AuthorizationTestCase predicate.init(provider); Status status = predicate.evaluate(person, roles, new NewSamplesWithTypes(new SampleType(), Arrays - .asList(new NewSample(sampleIdentifier1.toString(), null, null, null), - new NewSample(sampleIdentifier2.toString(), null, null, null)))); + .asList(NewSample.createWithParent(sampleIdentifier1.toString(), null, + null, null), NewSample.createWithParent(sampleIdentifier2 + .toString(), null, null, null)))); assertEquals(false, status.isError()); context.assertIsSatisfied(); } @@ -116,8 +117,9 @@ public class NewSamplesWithTypePredicateTest extends AuthorizationTestCase predicate.init(provider); Status status = predicate.evaluate(person, roles, new NewSamplesWithTypes(new SampleType(), Arrays - .asList(new NewSample(sampleIdentifier1.toString(), null, null, null), - new NewSample(sampleIdentifier2.toString(), null, null, null)))); + .asList(NewSample.createWithParent(sampleIdentifier1.toString(), null, + null, null), NewSample.createWithParent(sampleIdentifier2 + .toString(), null, null, null)))); assertEquals(true, status.isError()); context.assertIsSatisfied(); } @@ -146,8 +148,9 @@ public class NewSamplesWithTypePredicateTest extends AuthorizationTestCase predicate.init(provider); Status status = predicate.evaluate(person, roles, new NewSamplesWithTypes(new SampleType(), Arrays - .asList(new NewSample(sampleIdentifier1.toString(), null, null, null), - new NewSample(sampleIdentifier2.toString(), null, null, null)))); + .asList(NewSample.createWithParent(sampleIdentifier1.toString(), null, + null, null), NewSample.createWithParent(sampleIdentifier2 + .toString(), null, null, null)))); assertEquals(true, status.isError()); context.assertIsSatisfied(); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java index dc0ffee8f85..6e11b24efa1 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServerTest.java @@ -437,7 +437,7 @@ public final class GenericServerTest extends AbstractServerTestCase sample.setModificationDate(newModificationDate); final SampleUpdatesDTO updates = new SampleUpdatesDTO(sampleId, properties, null, attachments, version, null, null, - null); + null, null); context.checking(new Expectations() { { diff --git a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/bundle/BundleDataSetHelperRpc.java b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/bundle/BundleDataSetHelperRpc.java index 67a81ba60c3..9223893e704 100644 --- a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/bundle/BundleDataSetHelperRpc.java +++ b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/bundle/BundleDataSetHelperRpc.java @@ -130,7 +130,7 @@ class BundleDataSetHelperRpc extends BundleDataSetHelper Sample parentSample = getOpenbisService().tryGetSampleWithExperiment(parentIdOrNull); sampleId = new SampleIdentifier(parentIdOrNull.getSpaceLevel(), sampleCode); sample = - new NewSample(sampleId.toString(), replicaSampleType, + NewSample.createWithParent(sampleId.toString(), replicaSampleType, parentIdOrNull.toString(), null); sample.setExperimentIdentifier(parentSample.getExperiment().getIdentifier()); } else if (experimentIdOrNull != null) @@ -140,7 +140,7 @@ class BundleDataSetHelperRpc extends BundleDataSetHelper new SpaceIdentifier(experimentIdOrNull.getDatabaseInstanceCode(), experimentIdOrNull.getSpaceCode()); sampleId = new SampleIdentifier(spaceId, sampleCode); - sample = new NewSample(sampleId.toString(), replicaSampleType, null, null); + sample = NewSample.createWithParent(sampleId.toString(), replicaSampleType, null, null); sample.setExperimentIdentifier(experimentIdOrNull.toString()); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java index 873097a3060..9200822ad05 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/DataSetInfoExtractorForMSInjection.java @@ -56,22 +56,27 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; public class DataSetInfoExtractorForMSInjection extends AbstractDataSetInfoExtractorWithService { static final String MS_INJECTION_PROPERTIES_FILE = "ms-injection.properties"; + static final String DATA_SET_PROPERTIES_FILE = "data-set.properties"; static final String PROJECT_CODE_KEY = "PROJECT_CODE"; + static final String EXPERIMENT_CODE_KEY = "EXPERIMENT_CODE"; + static final String SAMPLE_CODE_KEY = "SAMPLE_CODE"; + static final String USER_KEY = "USER"; - + static final String DATA_SET_TYPE_KEY = "DATA_SET_TYPE"; + static final String FILE_TYPE_KEY = "FILE_TYPE"; + static final String PARENT_TYPE_KEY = "PARENT_TYPE"; - + static final String EXPERIMENT_TYPE_CODE = "MS_INJECT"; static final String SAMPLE_TYPE_CODE = "MS_INJECTION"; - public DataSetInfoExtractorForMSInjection(Properties properties) { this(ServiceProvider.getOpenBISService()); @@ -95,11 +100,13 @@ public class DataSetInfoExtractorForMSInjection extends AbstractDataSetInfoExtra ExperimentIdentifier experimentIdentifier = getExperimentIdentifier(sampleProperties); getOrCreateExperiment(experimentIdentifier); info.setExperimentIdentifier(experimentIdentifier); - long sampleID = registerOrUpdateSample(sampleIdentifier, experimentIdentifier, sampleProperties); - + long sampleID = + registerOrUpdateSample(sampleIdentifier, experimentIdentifier, sampleProperties); + Properties dataSetProperties = Util.loadPropertiesFile(incomingDataSetPath, DATA_SET_PROPERTIES_FILE); - String dataSetTypeCode = PropertyUtils.getMandatoryProperty(dataSetProperties, DATA_SET_TYPE_KEY); + String dataSetTypeCode = + PropertyUtils.getMandatoryProperty(dataSetProperties, DATA_SET_TYPE_KEY); String parentTypeOrNull = dataSetProperties.getProperty(PARENT_TYPE_KEY); dataSetProperties.remove(DATA_SET_TYPE_KEY); dataSetProperties.remove(FILE_TYPE_KEY); @@ -150,7 +157,7 @@ public class DataSetInfoExtractorForMSInjection extends AbstractDataSetInfoExtra Set<NewAttachment> emptySet = Collections.<NewAttachment> emptySet(); Date version = sample.getModificationDate(); service.updateSample(new SampleUpdatesDTO(sampleID, propertiesList, - experimentIdentifier, emptySet, version, sampleIdentifier, null, null)); + experimentIdentifier, emptySet, version, sampleIdentifier, null, null, null)); return sample.getId(); } } -- GitLab