summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/parser
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-16 08:59:11 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-16 09:29:52 +0000
commitd109d256d805f2835788b1bf4e3cf1bd020c719d (patch)
tree0b432e3f3e370b7b757b9c6538231f136fe1ba5c /config-model/src/main/java/com/yahoo/searchdefinition/parser
parent3d7c813384a59e45d937c4eae609c4157f9d179d (diff)
fix annotation struct handling
* put structProxy for the struct inside an annotation into the SDAnnotation instead of into the SDDocumentType * fixes test case from last commit
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/parser')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java13
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java4
2 files changed, 12 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
index caeebd65f4f..b20ec6f6d6d 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java
@@ -15,6 +15,7 @@ import com.yahoo.searchdefinition.document.RankType;
import com.yahoo.searchdefinition.document.SDDocumentType;
import com.yahoo.searchdefinition.document.SDField;
import com.yahoo.searchdefinition.document.Sorting;
+import com.yahoo.searchdefinition.document.annotation.SDAnnotationType;
import com.yahoo.vespa.documentmodel.SummaryField;
import com.yahoo.vespa.documentmodel.SummaryTransform;
@@ -311,11 +312,13 @@ public class ConvertParsedFields {
}
void convertAnnotation(Schema schema, SDDocumentType document, ParsedAnnotation parsed) {
- var annType = context.resolveAnnotation(parsed.name());
- var payload = parsed.getStruct();
- if (payload.isPresent()) {
- var structProxy = convertStructDeclaration(schema, document, payload.get());
- document.addType(structProxy);
+ SDAnnotationType annType = context.resolveAnnotation(parsed.name());
+ var withStruct = parsed.getStruct();
+ if (withStruct.isPresent()) {
+ ParsedStruct parsedStruct = withStruct.get();
+ SDDocumentType structProxy = convertStructDeclaration(schema, document, parsedStruct);
+ structProxy.setStruct(context.resolveStruct(parsedStruct));
+ annType.setSdDocType(structProxy);
}
document.addAnnotation(annType);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
index 80d37423fc5..ed20bc0a94d 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
@@ -104,6 +104,10 @@ public class ConvertParsedTypes {
for (var schema : orderedInput) {
var doc = schema.getDocument();
for (var annotation : doc.getAnnotations()) {
+ var at = findAnnotationFromParsed(annotation);
+ for (var parent : annotation.getResolvedInherits()) {
+ at.inherit(findAnnotationFromParsed(parent));
+ }
fillAnnotationStruct(annotation);
}
for (var struct : doc.getStructs()) {