diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /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.java | 38 |
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; + } +} |