summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-04 12:38:27 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-05 10:55:03 +0000
commit7ba5b7b420b5438c9d90b491004557a9fbd6891f (patch)
tree6d388f431a8fd3a8ee6366181e6eaeb8f9d85b45 /config-model/src/main/java/com/yahoo
parentf01968ae6ea5d3259b98dd102b7d48d35a041c34 (diff)
convert annotations
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java4
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java10
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java31
3 files changed, 34 insertions, 11 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 dd697d51363..f0f2fec1da0 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
@@ -290,7 +290,7 @@ public class ConvertParsedFields {
schema.addIndex(index);
}
- void convertStructDeclaration(Schema schema, SDDocumentType document, ParsedStruct parsed) {
+ SDDocumentType convertStructDeclaration(Schema schema, ParsedStruct parsed) {
// TODO - can we cleanup this mess
var structProxy = new SDDocumentType(parsed.name(), schema);
structProxy.setStruct(context.resolveStruct(parsed));
@@ -303,7 +303,7 @@ public class ConvertParsedFields {
for (String inherit : parsed.getInherited()) {
structProxy.inherit(new DataTypeName(inherit));
}
- document.addType(structProxy);
+ return structProxy;
}
}
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 5a83b4d8a0e..7b78636bb11 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
@@ -37,10 +37,12 @@ public class ConvertParsedTypes {
this.docMan = docMan;
}
- public void convert() {
+ public void convert(boolean andRegister) {
startDataTypes();
fillDataTypes();
- registerDataTypes();
+ if (andRegister) {
+ registerDataTypes();
+ }
}
private Map<String, DocumentType> documentsFromSchemas = new HashMap<>();
@@ -55,8 +57,10 @@ public class ConvertParsedTypes {
for (var schema : orderedInput) {
var doc = schema.getDocument();
for (var struct : doc.getStructs()) {
- var dt = new StructDataType(struct.name());
String structId = doc.name() + "->" + struct.name();
+ // int id = new StructDataType(structId).getId();
+ // var dt = new StructDataType(id, struct.name());
+ var dt = new StructDataType(struct.name());
structsFromSchemas.put(structId, dt);
}
for (var annotation : doc.getAnnotations()) {
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
index 1dc10c57eb5..332a2153516 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertSchemaCollection.java
@@ -27,6 +27,7 @@ import com.yahoo.searchdefinition.UnrankedRankProfile;
import com.yahoo.searchdefinition.document.SDDocumentType;
import com.yahoo.searchdefinition.document.SDField;
import com.yahoo.searchdefinition.document.TemporaryImportedField;
+import com.yahoo.searchdefinition.document.annotation.SDAnnotationType;
import com.yahoo.searchdefinition.parser.ConvertParsedTypes.TypeResolver;
import com.yahoo.vespa.documentmodel.DocumentSummary;
import com.yahoo.vespa.documentmodel.SummaryField;
@@ -117,14 +118,13 @@ public class ConvertSchemaCollection {
private ConvertParsedTypes typeConverter;
public void convertTypes() {
- if (typeConverter == null) {
- typeConverter = new ConvertParsedTypes(orderedInput, docMan);
- typeConverter.convert();
- }
+ typeConverter = new ConvertParsedTypes(orderedInput, docMan);
+ typeConverter.convert(true);
}
public List<Schema> convertToSchemas() {
- convertTypes();
+ typeConverter = new ConvertParsedTypes(orderedInput, docMan);
+ typeConverter.convert(false);
var resultList = new ArrayList<Schema>();
for (var parsed : orderedInput) {
Optional<String> inherited;
@@ -145,6 +145,21 @@ public class ConvertSchemaCollection {
return resultList;
}
+ private void convertAnnotation(Schema schema, SDDocumentType document, ParsedAnnotation parsed, ConvertParsedFields fieldConverter) {
+ var type = new SDAnnotationType(parsed.name());
+ for (String inherit : parsed.getInherited()) {
+ type.inherit(inherit);
+ }
+ var payload = parsed.getStruct();
+ if (payload.isPresent()) {
+ var struct = fieldConverter.convertStructDeclaration(schema, payload.get());
+ type = new SDAnnotationType(parsed.name(), struct, type.getInherits());
+ // WTF?
+ struct.setStruct(null);
+ }
+ document.addAnnotation(type);
+ }
+
private void convertDocument(Schema schema, ParsedDocument parsed,
ConvertParsedFields fieldConverter)
{
@@ -153,7 +168,11 @@ public class ConvertSchemaCollection {
document.inherit(new DataTypeName(inherit));
}
for (var struct : parsed.getStructs()) {
- fieldConverter.convertStructDeclaration(schema, document, struct);
+ var structProxy = fieldConverter.convertStructDeclaration(schema, struct);
+ document.addType(structProxy);
+ }
+ for (var annotation : parsed.getAnnotations()) {
+ convertAnnotation(schema, document, annotation, fieldConverter);
}
for (var field : parsed.getFields()) {
var sdf = fieldConverter.convertDocumentField(schema, document, field);