From 7d3247ef5f355f8a4ef565b555703c4364f14bf8 Mon Sep 17 00:00:00 2001 From: gakin <gakin> Date: Wed, 1 Mar 2017 12:04:08 +0000 Subject: [PATCH] SSDM-4850 : Use fully qualified name in parsing master data SVN: 37844 --- .../synchronizer/MasterDataParser.java | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 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 198bf9b220d..a2a134250b5 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 @@ -240,7 +240,7 @@ public class MasterDataParser validateElementNode(vocabulariesNode, "controlledVocabularies"); Element vocabsElement = (Element) vocabulariesNode.item(0); - NodeList vocabNodes = vocabsElement.getElementsByTagName("controlledVocabulary"); + NodeList vocabNodes = vocabsElement.getElementsByTagName("xmd:controlledVocabulary"); for (int i = 0; i < vocabNodes.getLength(); i++) { @@ -277,7 +277,12 @@ public class MasterDataParser private String getAttribute(Element termElement, String attr) { - return termElement.getAttributes().getNamedItem(attr).getTextContent().trim(); + Node node = termElement.getAttributes().getNamedItem(attr); + if (node != null) + { + return node.getTextContent().trim(); + } + return null; } private void parseMaterialTypes(NodeList matTypesNode) throws XPathExpressionException @@ -289,7 +294,7 @@ public class MasterDataParser validateElementNode(matTypesNode, "materialTypes"); Element matTypesElement = (Element) matTypesNode.item(0); - NodeList matTypeNodes = matTypesElement.getElementsByTagName("materialType"); + NodeList matTypeNodes = matTypesElement.getElementsByTagName("xmd:materialType"); for (int i = 0; i < matTypeNodes.getLength(); i++) { Element materialTypeElement = (Element) matTypeNodes.item(i); @@ -297,7 +302,7 @@ public class MasterDataParser materialType.setCode(getAttribute(materialTypeElement, "code")); materialType.setDescription(getAttribute(materialTypeElement, "description")); String validationPluginName = getAttribute(materialTypeElement, "validationPlugin"); - if (validationPluginName.equals("") == false) + if (validationPluginName != null) { materialType.setValidationScript(validationPlugins.get(validationPluginName)); } @@ -316,7 +321,7 @@ public class MasterDataParser validateElementNode(expTypesNode, "collectionTypes"); Element expTypesElement = (Element) expTypesNode.item(0); - NodeList expTypeNodes = expTypesElement.getElementsByTagName("collectionType"); + NodeList expTypeNodes = expTypesElement.getElementsByTagName("xmd:collectionType"); for (int i = 0; i < expTypeNodes.getLength(); i++) { Element expTypeElement = (Element) expTypeNodes.item(i); @@ -325,13 +330,13 @@ public class MasterDataParser expType.setCode(code); expType.setDescription(getAttribute(expTypeElement, "description")); String validationPluginName = getAttribute(expTypeElement, "validationPlugin"); - if (validationPluginName.equals("") == false) + if (validationPluginName != null) { expType.setValidationScript(validationPlugins.get(validationPluginName)); } experimentTypes.put(expType.getCode(), expType); - parsePropertyAssignments(EntityKind.EXPERIMENT, expType, expTypeElement.getElementsByTagName("propertyAssignments")); + parsePropertyAssignments(EntityKind.EXPERIMENT, expType, expTypeElement.getElementsByTagName("xmd:propertyAssignments")); } } @@ -344,7 +349,7 @@ public class MasterDataParser validateElementNode(sampleTypesNode, "objectTypes"); Element sampleTypesElement = (Element) sampleTypesNode.item(0); - NodeList sampleTypeNodes = sampleTypesElement.getElementsByTagName("objectType"); + NodeList sampleTypeNodes = sampleTypesElement.getElementsByTagName("xmd:objectType"); for (int i = 0; i < sampleTypeNodes.getLength(); i++) { Element sampleTypeElement = (Element) sampleTypeNodes.item(i); @@ -359,13 +364,13 @@ public class MasterDataParser sampleType.setAutoGeneratedCode(Boolean.valueOf(getAttribute(sampleTypeElement, "autoGeneratedCode"))); sampleType.setGeneratedCodePrefix(getAttribute(sampleTypeElement, "generatedCodePrefix")); String validationPluginName = getAttribute(sampleTypeElement, "validationPlugin"); - if (validationPluginName.equals("") == false) + if (validationPluginName != null) { sampleType.setValidationScript(validationPlugins.get(validationPluginName)); } sampleTypes.put(sampleType.getCode(), sampleType); - parsePropertyAssignments(EntityKind.SAMPLE, sampleType, sampleTypeElement.getElementsByTagName("propertyAssignments")); + parsePropertyAssignments(EntityKind.SAMPLE, sampleType, sampleTypeElement.getElementsByTagName("xmd:propertyAssignments")); } } @@ -378,7 +383,7 @@ public class MasterDataParser validateElementNode(dataSetTypesNode, "dataSetTypes"); Element dataSetTypesElement = (Element) dataSetTypesNode.item(0); - NodeList dataSetTypeNodes = dataSetTypesElement.getElementsByTagName("dataSetType"); + NodeList dataSetTypeNodes = dataSetTypesElement.getElementsByTagName("xmd:dataSetType"); for (int i = 0; i < dataSetTypeNodes.getLength(); i++) { Element dataSetTypeElement = (Element) dataSetTypeNodes.item(i); @@ -406,13 +411,13 @@ public class MasterDataParser } dataSetType.setDeletionDisallow(Boolean.valueOf(getAttribute(dataSetTypeElement, "deletionDisallowed"))); String validationPluginName = getAttribute(dataSetTypeElement, "validationPlugin"); - if (validationPluginName.equals("") == false) + if (validationPluginName != null) { dataSetType.setValidationScript(validationPlugins.get(validationPluginName)); } dataSetTypes.put(dataSetType.getCode(), dataSetType); - parsePropertyAssignments(EntityKind.DATA_SET, dataSetType, dataSetTypeElement.getElementsByTagName("propertyAssignments")); + parsePropertyAssignments(EntityKind.DATA_SET, dataSetType, dataSetTypeElement.getElementsByTagName("xmd:propertyAssignments")); } } @@ -423,16 +428,12 @@ public class MasterDataParser { return; } - if (propertyAssignmentsNode.getLength() != 1) - { - throw new XPathExpressionException(entityType.getCode() + " should contain a single 'propertyAssigments' node"); - } validateElementNode(propertyAssignmentsNode, "propertyAssignments"); List<NewETPTAssignment> list = new ArrayList<NewETPTAssignment>(); Element propertyAssignmentsElement = (Element) propertyAssignmentsNode.item(0); - NodeList propertyAssignmentNodes = propertyAssignmentsElement.getElementsByTagName("propertyAssignment"); + NodeList propertyAssignmentNodes = propertyAssignmentsElement.getElementsByTagName("xmd:propertyAssignment"); for (int i = 0; i < propertyAssignmentNodes.getLength(); i++) { Element propertyAssignmentElement = (Element) propertyAssignmentNodes.item(i); @@ -459,10 +460,8 @@ public class MasterDataParser } validateElementNode(propertyTypesNode, "propertyTypes"); - assert propertyTypesNode.getLength() == 1 : "Resource List should contain a single 'propertyTypes' node"; - Element propertyTypesElement = (Element) propertyTypesNode.item(0); - NodeList propertyTypeNodes = propertyTypesElement.getElementsByTagName("propertyType"); + NodeList propertyTypeNodes = propertyTypesElement.getElementsByTagName("xmd:propertyType"); for (int i = 0; i < propertyTypeNodes.getLength(); i++) { Element propertyTypeElement = (Element) propertyTypeNodes.item(i); -- GitLab