diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-02-24 01:09:20 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-02-24 07:45:39 +0000 |
commit | c609b62993c8428bc14ac4458f27de2253463b93 (patch) | |
tree | 9b99a988c000de1e13378d2b09cd57a04ccf4fe1 | |
parent | 5a9f23a256b8bc14df4992af97e99375c30c2117 (diff) |
minor cleanup
5 files changed, 29 insertions, 16 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedAnnotation.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedAnnotation.java index 931c718566e..d9ae32b2933 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedAnnotation.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedAnnotation.java @@ -1,5 +1,10 @@ package com.yahoo.searchdefinition.parser; +import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + /** * This class holds the extracted information after parsing a * "annotation" block, using simple data structures as far as @@ -9,13 +14,17 @@ package com.yahoo.searchdefinition.parser; class ParsedAnnotation { private final String name; + private Optional<ParsedStruct> wrappedStruct; + private final List<String> inherited = new ArrayList<>(); ParsedAnnotation(String name) { this.name = name; } public String name() { return name; } + public List<String> getInherited() { return ImmutableList.copyOf(inherited); } + public Optional<ParsedStruct> getStruct() { return wrappedStruct; } - void setStruct(ParsedStruct struct) {} - void inherit(String other) {} + void setStruct(ParsedStruct struct) { wrappedStruct = Optional.of(struct); } + void inherit(String other) { inherited.add(other); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocument.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocument.java index 0b11b3a63ee..1996ed86766 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocument.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocument.java @@ -37,7 +37,7 @@ public class ParsedDocument { void addField(ParsedField field) { String fieldName = field.name(); if (docFields.containsKey(fieldName)) { - throw new IllegalArgumentException("document-summary "+this.name+" already has field "+fieldName); + throw new IllegalArgumentException("document "+this.name+" already has field "+fieldName); } docFields.put(fieldName, field); } @@ -50,6 +50,13 @@ public class ParsedDocument { docStructs.put(sName, struct); } - void addAnnotation(ParsedAnnotation type) {} + void addAnnotation(ParsedAnnotation annotation) { + String annName = annotation.name(); + if (docAnnotations.containsKey(annName)) { + throw new IllegalArgumentException("document "+this.name+" already has annotation "+annName); + } + docAnnotations.put(annName, annotation); + } + } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocumentSummary.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocumentSummary.java index 7b54cef51fb..822a6a0fdcd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocumentSummary.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocumentSummary.java @@ -50,9 +50,6 @@ class ParsedDocumentSummary { } void inherit(String other) { - if (! inherited.isEmpty()) { - throw new IllegalArgumentException("double inherit: document-summary "+this.name); - } inherited.add(other); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedFieldSet.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedFieldSet.java index 0720955b1dd..de2a98ec7cd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedFieldSet.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedFieldSet.java @@ -27,6 +27,8 @@ class ParsedFieldSet { String name() { return this.name; } ParsedMatchSettings matchSettings() { return this.matchInfo; } + List<String> getQueryCommands() { return ImmutableList.copyOf(queryCommands); } + List<String> getFieldNames() { return ImmutableList.copyOf(fields); } void addField(String field) { fields.add(field); } void addQueryCommand(String command) { queryCommands.add(command); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedType.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedType.java index ff1f7641ba0..82b5eb7c5ab 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedType.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedType.java @@ -45,22 +45,20 @@ class ParsedType { case "double": return Variant.DOUBLE; case "uri": return Variant.URI; case "predicate": return Variant.PREDICATE; - case "tensor": return Variant.TENSOR; case "position": return Variant.STRUCT; } - if (name.startsWith("array<")) return Variant.ARRAY; - if (name.startsWith("weightedset<")) return Variant.WSET; - if (name.startsWith("map<")) return Variant.MAP; - if (name.startsWith("tensor(")) return Variant.TENSOR; - if (name.startsWith("struct<")) return Variant.STRUCT; - if (name.startsWith("document<")) return Variant.DOCUMENT; - if (name.startsWith("reference<")) return Variant.DOC_REFERENCE; - if (name.startsWith("annotationreference<")) return Variant.ANN_REFERENCE; return Variant.UNKNOWN; } public String name() { return name; } public Variant getVariant() { return variant; } + public ParsedType mapKeyType() { assert(variant == Variant.MAP); return keyType; } + public ParsedType mapValueType() { assert(variant == Variant.MAP); return valType; } + public ParsedType nestedType() { assert(variant == Variant.ARRAY || variant == Variant.WSET); return valType; } + public boolean getCreateIfNonExistent() { assert(variant == Variant.WSET); return this.createIfNonExistent; } + public boolean getRemoveIfZero() { assert(variant == Variant.WSET); return this.removeIfZero; } + public ParsedType getReferencedDocumentType() { assert(variant == Variant.DOC_REFERENCE); return valType; } + public TensorType getTensorType() { assert(variant == Variant.TENSOR); return tensorType; } private ParsedType(String name, Variant variant) { this(name, variant, null, null, null); |