diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-05 11:14:29 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-05 11:39:01 +0000 |
commit | cbf63c2d12795bbf6b3a3a9b20dce03e91bfaffa (patch) | |
tree | 386b06c24dc1d55d7f3b194dcc407db86e047ec2 /config-model | |
parent | 72234c3a9d7a40e1a603d203dace8010398f3851 (diff) |
handle id override
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedFields.java | 11 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java | 25 |
2 files changed, 27 insertions, 9 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 f0f2fec1da0..e7423b17830 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 @@ -294,11 +294,14 @@ public class ConvertParsedFields { // TODO - can we cleanup this mess var structProxy = new SDDocumentType(parsed.name(), schema); structProxy.setStruct(context.resolveStruct(parsed)); - for (var structField : parsed.getFields()) { - var fieldType = context.resolveType(structField.getType()); - var field = new SDField(structProxy, structField.name(), fieldType); - convertCommonFieldSettings(field, structField); + for (var parsedField : parsed.getFields()) { + var fieldType = context.resolveType(parsedField.getType()); + var field = new SDField(structProxy, parsedField.name(), fieldType); + convertCommonFieldSettings(field, parsedField); structProxy.addField(field); + if (parsedField.hasIdOverride()) { + structProxy.setFieldId(field, parsedField.idOverride()); + } } for (String inherit : parsed.getInherited()) { structProxy.inherit(new DataTypeName(inherit)); 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 7b78636bb11..ad2dff46ee3 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 @@ -84,10 +84,20 @@ public class ConvertParsedTypes { for (var struct : doc.getStructs()) { String structId = doc.name() + "->" + struct.name(); var toFill = structsFromSchemas.get(structId); + // evil ugliness for (ParsedField field : struct.getFields()) { - var t = resolveFromContext(field.getType(), doc); - var f = new com.yahoo.document.Field(field.name(), t); - toFill.addField(f); + if (! field.hasIdOverride()) { + var t = resolveFromContext(field.getType(), doc); + var f = new com.yahoo.document.Field(field.name(), t); + toFill.addField(f); + } + } + for (ParsedField field : struct.getFields()) { + if (field.hasIdOverride()) { + var t = resolveFromContext(field.getType(), doc); + var f = new com.yahoo.document.Field(field.name(), field.idOverride(), t); + toFill.addField(f); + } } for (String inherit : struct.getInherited()) { var parent = findStructFromSchemas(inherit, doc); @@ -104,7 +114,9 @@ public class ConvertParsedTypes { var toFill = structsFromSchemas.get(structId); for (ParsedField field : struct.getFields()) { var t = resolveFromContext(field.getType(), doc); - var f = new com.yahoo.document.Field(field.name(), t); + var f = field.hasIdOverride() + ? new com.yahoo.document.Field(field.name(), field.idOverride(), t) + : new com.yahoo.document.Field(field.name(), t); toFill.addField(f); } at.setDataType(toFill); @@ -120,8 +132,11 @@ public class ConvertParsedTypes { for (var docField : doc.getFields()) { String name = docField.name(); var t = resolveFromContext(docField.getType(), doc); - var f = new com.yahoo.document.Field(name, t); + var f = new com.yahoo.document.Field(docField.name(), t); docToFill.addField(f); + if (docField.hasIdOverride()) { + f.setId(docField.idOverride(), docToFill); + } inDocFields.add(name); } fieldSets.put("[document]", inDocFields); |