diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-08-22 16:13:51 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-08-22 16:13:51 +0200 |
commit | 25d395d3df09d155d26664d1092a80e1412e17a0 (patch) | |
tree | 6a5b42c9410dd11bde80d0a817c3e57b58da09ee /config-model/src/main | |
parent | 999682402d43c7cb7fa399a5e34bace91d3fbef9 (diff) |
Simplify
Diffstat (limited to 'config-model/src/main')
3 files changed, 32 insertions, 28 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfig.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfig.java index 3ebd9e0483d..fa531176b9c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfig.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfig.java @@ -26,7 +26,26 @@ import org.w3c.dom.NodeList; */ public class EmbedderConfig { - static EmbedderConfigTransformer getEmbedderTransformer(Element spec, boolean hosted) { + /** + * Transforms the <embedder ...> element to component configuration. + * + * @param deployState the deploy state - as config generation can depend on context + * @param embedderSpec the XML element containing the <embedder ...> + * @return a new XML element containting the <component ...> configuration + */ + public static Element transform(DeployState deployState, Element embedderSpec) { + EmbedderConfigTransformer transformer = getEmbedderTransformer(embedderSpec, deployState.isHosted()); + NodeList children = embedderSpec.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child instanceof Element) { + transformer.addOption((Element) child); + } + } + return transformer.createComponentConfig(deployState); + } + + private static EmbedderConfigTransformer getEmbedderTransformer(Element spec, boolean hosted) { return switch (embedderConfigFrom(spec)) { case "embedding.bert-base-embedder" -> new EmbedderConfigBertBaseTransformer(spec, hosted); default -> new EmbedderConfigTransformer(spec, hosted); @@ -56,25 +75,6 @@ public class EmbedderConfig { throw new IllegalArgumentException("Unknown model id: '" + id + "'"); } - /** - * Transforms the <embedder ...> element to component configuration. - * - * @param deployState the deploy state - as config generation can depend on context - * @param embedderSpec the XML element containing the <embedder ...> - * @return a new XML element containting the <component ...> configuration - */ - public static Element transform(DeployState deployState, Element embedderSpec) { - EmbedderConfigTransformer transformer = getEmbedderTransformer(embedderSpec, deployState.isHosted()); - NodeList children = embedderSpec.getChildNodes(); - for (int i = 0; i < children.getLength(); i++) { - Node child = children.item(i); - if (child instanceof Element) { - transformer.addOption((Element) child); - } - } - return transformer.createComponentConfig(deployState); - } - private static String getEmbedderClass(Element spec) { if (spec.hasAttribute("class")) { return spec.getAttribute("class"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfigTransformer.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfigTransformer.java index 30327fdc8af..efb1aafdbe3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfigTransformer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderConfigTransformer.java @@ -9,6 +9,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -88,15 +89,13 @@ public class EmbedderConfigTransformer { } private void checkRequiredOptions() { - List<String> missingOptions = new ArrayList<>(); - for (EmbedderOption option : options.values()) { - if ( ! option.isSet()) { - missingOptions.add(option.name()); - } - } - if (missingOptions.size() > 0) { + var missingOptions = options.values() + .stream() + .filter(option -> ! option.isSet()) + .map(option -> option.name()) + .collect(Collectors.toList()); + if (missingOptions.size() > 0) throw new IllegalArgumentException("Embedder '" + className + "' requires options for " + missingOptions); - } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderOption.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderOption.java index d8740eecd74..715c3d9ef34 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderOption.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/embedder/EmbedderOption.java @@ -58,6 +58,11 @@ public class EmbedderOption { return set; } + @Override + public String toString() { + return "embedder option '" + name + "'"; + } + /** * Basic option transformer. No special handling of options. */ |