summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-11-05 08:16:49 +0100
committerHarald Musum <musum@oath.com>2018-11-05 08:16:49 +0100
commit6f10e3c51701f97224b48a7285971e3febeec3e0 (patch)
treeba921ff3d279d9093c424f28928eca518cb31ef6
parent6ada0742477c575cc6941704500c0ee8c9ac5596 (diff)
Simplify by using a removeArray method, make operation case insensitive
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java7
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/ConfigPayloadBuilder.java18
2 files changed, 6 insertions, 19 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java
index d0abffcbac4..568a1229a36 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java
@@ -170,7 +170,7 @@ public class DomConfigPayloadBuilder {
throw new IllegalArgumentException("The 'index' attribute on config elements is not supported - use <item>");
} else if (element.hasAttribute("operation")) {
// inner array, the supported operations are 'append' and 'clear'
- String operation = verifyLegalOperation(element);
+ String operation = element.getAttribute("operation");
ConfigPayloadBuilder childPayloadBuilder;
switch (operation) {
case "append":
@@ -179,8 +179,7 @@ public class DomConfigPayloadBuilder {
case "clear":
// Clear array if it exists, use the existing builder
// Creating the array happens when handling the children ('item's)
- if (payloadBuilder.arrayExists(name))
- payloadBuilder.clearArray(name);
+ payloadBuilder.removeArray(name);
childPayloadBuilder = payloadBuilder;
break;
default:
@@ -249,7 +248,7 @@ public class DomConfigPayloadBuilder {
private String verifyLegalOperation(Element currElem) {
String operation = currElem.getAttribute("operation");
- if (! Arrays.asList("append", "clear").contains(operation))
+ if (! Arrays.asList("append", "clear").contains(operation.toLowerCase()))
throw new ConfigurationRuntimeException("The supported array operations are 'append' and 'clear', got '"
+ operation + "' at XML node '" + XML.getNodePath(currElem, " > ") + "'.");
return operation;
diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadBuilder.java b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadBuilder.java
index 88eed8cbf36..863505af5b0 100644
--- a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadBuilder.java
+++ b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadBuilder.java
@@ -110,24 +110,12 @@ public class ConfigPayloadBuilder {
}
/**
- * Check if array with this name exists.
+ * Removes an array
*
* @param name Name of array.
- * @return true if array exists, false otherwise
*/
- public boolean arrayExists(String name) {
- return arrayMap.containsKey(name);
- }
-
- /**
- * Clears contents of an array
- *
- * @param name Name of array.
- */
- public void clearArray(String name) {
- Array a = arrayMap.get(name);
- if (a != null)
- a.clear();
+ public void removeArray(String name) {
+ arrayMap.remove(name);
}
private void validateArray(String name) {