diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/src/main/java/com/yahoo/vespa/config/ConfigDefinition.java | 19 | ||||
-rw-r--r-- | config/src/main/java/com/yahoo/vespa/config/ConfigDefinitionBuilder.java | 10 |
2 files changed, 27 insertions, 2 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigDefinition.java b/config/src/main/java/com/yahoo/vespa/config/ConfigDefinition.java index 96046e64c1a..0d9feb42996 100644 --- a/config/src/main/java/com/yahoo/vespa/config/ConfigDefinition.java +++ b/config/src/main/java/com/yahoo/vespa/config/ConfigDefinition.java @@ -28,7 +28,7 @@ public class ConfigDefinition { private final String namespace; ConfigDefinition parent = null; - // TODO Strings without default are null, could be not OK. + // TODO: Strings without default are null, could be not OK. private final Map<String, StringDef> stringDefs = new LinkedHashMap<>(); private final Map<String, BoolDef> boolDefs = new LinkedHashMap<>(); private final Map<String, IntDef> intDefs = new LinkedHashMap<>(); @@ -39,6 +39,7 @@ public class ConfigDefinition { private final Map<String, FileDef> fileDefs = new LinkedHashMap<>(); private final Map<String, PathDef> pathDefs = new LinkedHashMap<>(); private final Map<String, UrlDef> urlDefs = new LinkedHashMap<>(); + private final Map<String, ModelDef> modelDefs = new LinkedHashMap<>(); private final Map<String, StructDef> structDefs = new LinkedHashMap<>(); private final Map<String, InnerArrayDef> innerArrayDefs = new LinkedHashMap<>(); private final Map<String, ArrayDef> arrayDefs = new LinkedHashMap<>(); @@ -99,6 +100,8 @@ public class ConfigDefinition { verifyPath(id); } else if (urlDefs.containsKey(id)) { verifyUrl(id); + } else if (modelDefs.containsKey(id)) { + verifyModel(id); } else if (boolDefs.containsKey(id)) { verifyBool(id, val); } else if (intDefs.containsKey(id)) { @@ -550,6 +553,11 @@ public class ConfigDefinition { } } + /** A value which may be either an url or a path. */ + public static class ModelDef { + + } + public void addEnumDef(String id, EnumDef def) { enumDefs.put(id, def); } @@ -655,6 +663,10 @@ public class ConfigDefinition { urlDefs.put(url, new UrlDef(defVal)); } + public void addModelDef(String modelName) { + modelDefs.put(modelName, new ModelDef()); + } + public void addUrlDef(String url) { urlDefs.put(url, new UrlDef(null)); } @@ -857,6 +869,11 @@ public class ConfigDefinition { throw new IllegalArgumentException("No such url in " + verifyWarning(id)); } + private void verifyModel(String field) { + if ( ! modelDefs.containsKey(field)) + throw new IllegalArgumentException("No such model in " + verifyWarning(field)); + } + private void verifyBool(String id) { if ( ! boolDefs.containsKey(id)) throw new IllegalArgumentException("No such bool in " + verifyWarning(id)); diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigDefinitionBuilder.java b/config/src/main/java/com/yahoo/vespa/config/ConfigDefinitionBuilder.java index f6493c3514e..8e1135b5684 100644 --- a/config/src/main/java/com/yahoo/vespa/config/ConfigDefinitionBuilder.java +++ b/config/src/main/java/com/yahoo/vespa/config/ConfigDefinitionBuilder.java @@ -183,7 +183,15 @@ public class ConfigDefinitionBuilder { def.addUrlDef(leaf.getName(), null); } } - +/* + private static void addNode(ConfigDefinition def, LeafCNode.ModelLeaf leaf) { + if (leaf.getDefaultValue() != null) { + def.addUrlDef(leaf.getName(), leaf.getDefaultValue().getValue()); + } else { + def.addUrlDef(leaf.getName(), null); + } + } +*/ private static void addNode(ConfigDefinition def, LeafCNode.EnumLeaf leaf) { if (leaf.getDefaultValue() != null) { def.addEnumDef(leaf.getName(), Arrays.asList(leaf.getLegalValues()), leaf.getDefaultValue().getValue()); |