From bc2643aa683c0a4663f88e6d1acbf81f0a806b28 Mon Sep 17 00:00:00 2001
From: felmer <franz-josef.elmer@id.ethz.ch>
Date: Tue, 8 Jan 2019 14:15:46 +0100
Subject: [PATCH] SSDM-7430: Bug in MasterDataParser fix: Prefix not added for
 look-up

---
 .../synchronizer/MasterDataParser.java        | 34 ++++++++-----------
 1 file changed, 14 insertions(+), 20 deletions(-)

diff --git a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/MasterDataParser.java b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/MasterDataParser.java
index 07fbd48d609..1d0d2bc4990 100644
--- a/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/MasterDataParser.java
+++ b/datastore_server/source/java/ch/ethz/sis/openbis/generic/server/dss/plugins/sync/harvester/synchronizer/MasterDataParser.java
@@ -297,11 +297,7 @@ public class MasterDataParser
             MaterialType materialType = new MaterialType();
             materialType.setCode(nameTranslator.translate(getAttribute(materialTypeElement, "code")));
             materialType.setDescription(getAttribute(materialTypeElement, "description"));
-            String validationPluginName = getAttribute(materialTypeElement, "validationPlugin");
-            if (validationPluginName != null)
-            {
-                materialType.setValidationScript(validationPlugins.get(validationPluginName));
-            }
+            materialType.setValidationScript(getValidationPlugin(materialTypeElement));
             materialTypes.put(materialType.getCode(), materialType);
 
             parsePropertyAssignments(EntityKind.MATERIAL, materialType, materialTypeElement);
@@ -324,11 +320,7 @@ public class MasterDataParser
             ExperimentType expType = new ExperimentType();
             expType.setCode(nameTranslator.translate(getAttribute(expTypeElement, "code")));
             expType.setDescription(getAttribute(expTypeElement, "description"));
-            String validationPluginName = getAttribute(expTypeElement, "validationPlugin");
-            if (validationPluginName != null)
-            {
-                expType.setValidationScript(validationPlugins.get(validationPluginName));
-            }
+            expType.setValidationScript(getValidationPlugin(expTypeElement));
             experimentTypes.put(expType.getCode(), expType);
 
             parsePropertyAssignments(EntityKind.EXPERIMENT, expType, expTypeElement);
@@ -358,11 +350,7 @@ public class MasterDataParser
             sampleType.setSubcodeUnique(Boolean.valueOf(getAttribute(sampleTypeElement, "subcodeUnique")));
             sampleType.setAutoGeneratedCode(Boolean.valueOf(getAttribute(sampleTypeElement, "autoGeneratedCode")));
             sampleType.setGeneratedCodePrefix(getAttribute(sampleTypeElement, "generatedCodePrefix"));
-            String validationPluginName = getAttribute(sampleTypeElement, "validationPlugin");
-            if (validationPluginName != null)
-            {
-                sampleType.setValidationScript(validationPlugins.get(validationPluginName));
-            }
+            sampleType.setValidationScript(getValidationPlugin(sampleTypeElement));
             sampleTypes.put(sampleType.getCode(), sampleType);
 
             parsePropertyAssignments(EntityKind.SAMPLE, sampleType, sampleTypeElement);
@@ -396,16 +384,22 @@ public class MasterDataParser
                 dataSetType.setMainDataSetPath(mainDataSetPath);
             }
             dataSetType.setDeletionDisallow(Boolean.valueOf(getAttribute(dataSetTypeElement, "deletionDisallowed")));
-            String validationPluginName = getAttribute(dataSetTypeElement, "validationPlugin");
-            if (validationPluginName != null)
-            {
-                dataSetType.setValidationScript(validationPlugins.get(validationPluginName));
-            }
+            dataSetType.setValidationScript(getValidationPlugin(dataSetTypeElement));
             dataSetTypes.put(dataSetType.getCode(), dataSetType);
 
             parsePropertyAssignments(EntityKind.DATA_SET, dataSetType, dataSetTypeElement);
         }
     }
+    
+    private Script getValidationPlugin(Element element)
+    {
+        String name = getAttribute(element, "validationPlugin");
+        if (StringUtils.isBlank(name))
+        {
+            return null;
+        }
+        return validationPlugins.get(nameTranslator.translate(name));
+    }
 
     private void parsePropertyAssignments(EntityKind entityKind, EntityType entityType, Element entityTypeElement)
             throws XPathExpressionException
-- 
GitLab