From 6f49402ee7e056c2500b1c16b7f5449969643bb6 Mon Sep 17 00:00:00 2001
From: juanf <juanf@ethz.ch>
Date: Fri, 3 Mar 2023 11:56:55 +0100
Subject: [PATCH] SSDM-13447: Deleting labels and descriptions now require the
 delete markers

---
 .../helper/DatasetTypeImportHelper.java       | 12 ++++++++--
 .../helper/ExperimentTypeImportHelper.java    | 12 +++++++++-
 .../importer/helper/ProjectImportHelper.java  |  8 ++++++-
 .../helper/PropertyTypeImportHelper.java      | 22 ++++++++++++++++--
 .../helper/SampleTypeImportHelper.java        | 11 ++++++++-
 .../importer/helper/SpaceImportHelper.java    |  8 ++++++-
 .../helper/VocabularyImportHelper.java        | 11 ++++++++-
 .../helper/VocabularyTermImportHelper.java    | 23 ++++++++++++++++---
 8 files changed, 95 insertions(+), 12 deletions(-)

diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/DatasetTypeImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/DatasetTypeImportHelper.java
index 2ad599f8354..914541fef35 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/DatasetTypeImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/DatasetTypeImportHelper.java
@@ -129,8 +129,16 @@ public class DatasetTypeImportHelper extends BasicImportHelper
         DataSetTypeUpdate update = new DataSetTypeUpdate();
         EntityTypePermId permId = new EntityTypePermId(code);
         update.setTypeId(permId);
-        update.setDescription(description);
-
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
         if (validationScript != null && !validationScript.isEmpty())
         {
             update.setValidationPluginId(new PluginPermId(ImportUtils.getScriptName(code, validationScript)));
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ExperimentTypeImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ExperimentTypeImportHelper.java
index b13bee4e695..fd353909a61 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ExperimentTypeImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ExperimentTypeImportHelper.java
@@ -130,7 +130,17 @@ public class ExperimentTypeImportHelper extends BasicImportHelper
         ExperimentTypeUpdate update = new ExperimentTypeUpdate();
         EntityTypePermId permId = new EntityTypePermId(code);
         update.setTypeId(permId);
-        update.setDescription(description);
+
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
 
         if (validationScript != null && !validationScript.isEmpty())
         {
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ProjectImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ProjectImportHelper.java
index e86300d275a..0f6c65b4a65 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ProjectImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/ProjectImportHelper.java
@@ -119,7 +119,13 @@ public class ProjectImportHelper extends BasicImportHelper
         update.setProjectId(projectIdentifier);
         if (description != null)
         {
-            update.setDescription(description);
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
         }
 
         // Space is only needed to "MOVE" the project
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/PropertyTypeImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/PropertyTypeImportHelper.java
index 5eae9b65c2b..4ba863ad085 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/PropertyTypeImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/PropertyTypeImportHelper.java
@@ -204,8 +204,26 @@ public class PropertyTypeImportHelper extends BasicImportHelper
 
         PropertyTypeUpdate update = new PropertyTypeUpdate();
         update.setTypeId(propertyTypePermId);
-        update.setLabel(propertyLabel);
-        update.setDescription(description);
+        if (propertyLabel != null)
+        {
+            if (propertyLabel.equals("--DELETE--") || propertyLabel.equals("__DELETE__"))
+            {
+                update.setLabel("");
+            } else if (!propertyLabel.isEmpty())
+            {
+                update.setLabel(propertyLabel);
+            }
+        }
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
 
         PropertyTypeFetchOptions propertyTypeFetchOptions = new PropertyTypeFetchOptions();
         propertyTypeFetchOptions.withVocabulary();
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SampleTypeImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SampleTypeImportHelper.java
index 19f82d0f67d..7b85b96f7df 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SampleTypeImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SampleTypeImportHelper.java
@@ -141,7 +141,16 @@ public class SampleTypeImportHelper extends BasicImportHelper
         SampleTypeUpdate update = new SampleTypeUpdate();
         EntityTypePermId permId = new EntityTypePermId(code);
         update.setTypeId(permId);
-        update.setDescription(description);
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
         update.setAutoGeneratedCode(Boolean.parseBoolean(autoGenerateCodes));
         if (validationScript != null && !validationScript.isEmpty())
         {
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SpaceImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SpaceImportHelper.java
index 23bc56078d4..4bb071b894f 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SpaceImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/SpaceImportHelper.java
@@ -97,7 +97,13 @@ public class SpaceImportHelper extends BasicImportHelper
         update.setSpaceId(new SpacePermId(code));
         if (description != null)
         {
-            update.setDescription(description);
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
         }
 
         delayedExecutor.updateSpace(update);
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyImportHelper.java
index b9b8664c969..306fcdcfcbd 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyImportHelper.java
@@ -121,7 +121,16 @@ public class VocabularyImportHelper extends BasicImportHelper
 
         VocabularyUpdate update = new VocabularyUpdate();
         update.setVocabularyId(vocabularyPermId);
-        update.setDescription(description);
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
         delayedExecutor.updateVocabulary(update);
     }
 
diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyTermImportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyTermImportHelper.java
index a7548cc204f..3c1b1bc05cf 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyTermImportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/importer/helper/VocabularyTermImportHelper.java
@@ -141,9 +141,26 @@ public class VocabularyTermImportHelper extends BasicImportHelper
 
         VocabularyTermUpdate update = new VocabularyTermUpdate();
         update.setVocabularyTermId(termId);
-        update.setLabel(label);
-        update.setDescription(description);
-
+        if (label != null)
+        {
+            if (label.equals("--DELETE--") || label.equals("__DELETE__"))
+            {
+                update.setLabel("");
+            } else if (!label.isEmpty())
+            {
+                update.setLabel(label);
+            }
+        }
+        if (description != null)
+        {
+            if (description.equals("--DELETE--") || description.equals("__DELETE__"))
+            {
+                update.setDescription("");
+            } else if (!description.isEmpty())
+            {
+                update.setDescription(description);
+            }
+        }
         this.delayedExecutor.updateVocabularyTerm(update);
     }
 
-- 
GitLab