diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2022-04-08 13:15:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-08 13:15:46 +0200 |
commit | 14dcd3abf7e08ed2fe41b4058739ab7a3fcfe878 (patch) | |
tree | 80f5f2de429f4466830b068cf73b06218cfb5e79 /config-model/src/main/java/com/yahoo/searchdefinition/parser | |
parent | 186dd791b7170f66759428b743cff2c8a0d5667f (diff) | |
parent | e2983bcf08f3fac86774e663a8a1f3c79060a40c (diff) |
Merge pull request #22038 from vespa-engine/arnej/allow-struct-types-with-same-name
Arnej/allow struct types with same name
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/parser')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java | 18 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java | 3 |
2 files changed, 6 insertions, 15 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java index e4d03a3f471..9c2d29282ae 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java @@ -108,25 +108,15 @@ public class ConvertParsedSchemas { ConvertParsedFields fieldConverter) { SDDocumentType document = new SDDocumentType(parsed.name()); + for (var struct : parsed.getStructs()) { + var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct); + document.addType(structProxy); + } for (String inherit : parsed.getInherited()) { var parent = convertedDocuments.get(inherit); assert(parent != null); document.inherit(parent); } - for (var struct : parsed.getStructs()) { - var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct); - var old = document.getType(struct.name()); - if (old == null) { - document.addType(structProxy); - } else { - var oldFields = old.fieldSet(); - var newFields = structProxy.fieldSet(); - if (! newFields.equals(oldFields)) { - throw new IllegalArgumentException("Cannot modify already-existing struct: " + struct.name()); - } - deployLogger.logApplicationPackage(Level.WARNING, "Duplicate struct declaration for: " + struct.name()); - } - } for (var annotation : parsed.getAnnotations()) { fieldConverter.convertAnnotation(schema, document, annotation); } 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 3644cb9d924..7311c8a4216 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 @@ -297,12 +297,13 @@ public class ConvertParsedTypes { throw new IllegalArgumentException("unknown type named '" + name + "' in context "+context); } + @SuppressWarnings("deprecation") private void registerDataTypes() { for (DataType t : structsFromSchemas.values()) { docMan.register(t); } for (DocumentType t : documentsFromSchemas.values()) { - docMan.register(t); + docMan.registerDocumentType(t); } for (SDAnnotationType t : annotationsFromSchemas.values()) { docMan.getAnnotationTypeRegistry().register(t); |