summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-02-24 01:09:20 +0000
committerArne H Juul <arnej@yahooinc.com>2022-02-24 07:45:39 +0000
commitc609b62993c8428bc14ac4458f27de2253463b93 (patch)
tree9b99a988c000de1e13378d2b09cd57a04ccf4fe1
parent5a9f23a256b8bc14df4992af97e99375c30c2117 (diff)
minor cleanup
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedAnnotation.java13
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocument.java11
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedDocumentSummary.java3
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedFieldSet.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedType.java16
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);