diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-16 08:59:11 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-16 09:29:52 +0000 |
commit | d109d256d805f2835788b1bf4e3cf1bd020c719d (patch) | |
tree | 0b432e3f3e370b7b757b9c6538231f136fe1ba5c /config-model/src/main/java/com/yahoo/searchdefinition/parser | |
parent | 3d7c813384a59e45d937c4eae609c4157f9d179d (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.java | 13 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java | 4 |
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()) { |