aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java
Publish
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java
new file mode 100644
index 00000000000..85ed36d0356
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/DependenciesBuilder.java
@@ -0,0 +1,38 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.model.builder.xml.dom.chains;
+
+import com.yahoo.component.chain.dependencies.Dependencies;
+import com.yahoo.config.model.builder.xml.XmlHelper;
+import org.w3c.dom.Element;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Builds Dependencies (provides, before, after) from an element.
+ * @author tonytv
+ */
+public class DependenciesBuilder {
+ private final Dependencies dependencies;
+
+ public DependenciesBuilder(Element spec) {
+
+ Set<String> provides = read(spec, "provides");
+ Set<String> before = read(spec, "before");
+ Set<String> after = read(spec, "after");
+
+ dependencies = new Dependencies(provides, before, after);
+ }
+
+ public Dependencies build() {
+ return dependencies;
+ }
+
+ private Set<String> read(Element spec, String name) {
+ Set<String> symbols = new HashSet<>();
+ symbols.addAll(XmlHelper.valuesFromElements(spec, name));
+ symbols.addAll(XmlHelper.spaceSeparatedSymbolsFromAttribute(spec, name));
+
+ return symbols;
+ }
+}