From 6bdb55161d991334a4d104743f103b62e30b9bdd Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Thu, 25 May 2023 08:02:22 +0200 Subject: [PATCH] SSDM-13672: V3 API extension: Flag codeBeatsAutoGeneratedCode added to SampleCreation. This allows to specify sample code even though sample type has autoGeneratedCode set --- .../asapi/v3/dto/sample/create/SampleCreation.java | 12 ++++++++++++ .../src/v3/as/dto/sample/create/SampleCreation.js | 7 +++++++ .../v3/executor/sample/CreateSampleExecutor.java | 4 +++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/api-openbis-java/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java b/api-openbis-java/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java index 808b41f2279..3000bb1ce98 100644 --- a/api-openbis-java/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java +++ b/api-openbis-java/source/java/ch/ethz/sis/openbis/generic/asapi/v3/dto/sample/create/SampleCreation.java @@ -60,6 +60,8 @@ public class SampleCreation implements ICreation, ICreationIdHolder, IProperties private boolean autoGeneratedCode; + private boolean codeBeatsAutoGeneratedCode; + private List<? extends ITagId> tagIds; private Map<String, String> properties = new HashMap<String, String>(); @@ -139,6 +141,16 @@ public class SampleCreation implements ICreation, ICreationIdHolder, IProperties this.autoGeneratedCode = autoGeneratedCode; } + public boolean isCodeBeatsAutoGeneratedCode() + { + return codeBeatsAutoGeneratedCode; + } + + public void setCodeBeatsAutoGeneratedCode(boolean codeBeatsAutoGeneratedCode) + { + this.codeBeatsAutoGeneratedCode = codeBeatsAutoGeneratedCode; + } + public List<? extends ITagId> getTagIds() { return tagIds; diff --git a/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js b/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js index 61e717b3f8e..daeb9d993a6 100644 --- a/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js +++ b/api-openbis-javascript/src/v3/as/dto/sample/create/SampleCreation.js @@ -24,6 +24,7 @@ define([ "stjs", "as/dto/common/Relationship" ], function(stjs, Relationship) { prototype.attachments = null; prototype.creationId = null; prototype.autoGeneratedCode = null; + prototype.codeBeatsAutoGeneratedCode = null; prototype.getTypeId = function() { return this.typeId; }; @@ -60,6 +61,12 @@ define([ "stjs", "as/dto/common/Relationship" ], function(stjs, Relationship) { prototype.setAutoGeneratedCode = function(autoGeneratedCode) { this.autoGeneratedCode = autoGeneratedCode; }; + prototype.isCodeBeatsAutoGeneratedCode = function() { + return this.codeBeatsAutoGeneratedCode; + } + prototype.setCodeBeatsAutoGeneratedCode = function(codeBeatsAutoGeneratedCode) { + this.codeBeatsAutoGeneratedCode = codeBeatsAutoGeneratedCode; + }; prototype.getTagIds = function() { return this.tagIds; }; diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/CreateSampleExecutor.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/CreateSampleExecutor.java index e7776a26606..73b1f7f94f8 100644 --- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/CreateSampleExecutor.java +++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/sample/CreateSampleExecutor.java @@ -191,7 +191,9 @@ public class CreateSampleExecutor extends AbstractCreateEntityExecutor<SampleCre } else if (type == null) { throw new ObjectNotFoundException(creation.getTypeId()); - } else if (false == StringUtils.isEmpty(creation.getCode()) && (type.isAutoGeneratedCode() || creation.isAutoGeneratedCode())) + } else if (false == StringUtils.isEmpty(creation.getCode()) + && (type.isAutoGeneratedCode() || creation.isAutoGeneratedCode()) + && creation.isCodeBeatsAutoGeneratedCode() == false) { throw new UserFailureException("Code should be empty when auto generated code is selected."); } else if (StringUtils.isEmpty(creation.getCode()) && false == type.isAutoGeneratedCode() -- GitLab