diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-10-25 17:38:50 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-10-25 17:38:50 +0200 |
commit | 25a892f7b43a58f75ad6d842aad1fd62d9f1ee1c (patch) | |
tree | 67e048d1ddf496d0188e32312a087450cf245336 /config-model/src/main/java/com/yahoo/searchdefinition | |
parent | 7cfec9da18f7e1fc5d23cafef64c5f7b7af3750f (diff) |
Remove redundant schema list
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java | 6 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java | 17 |
2 files changed, 11 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java index 26c140e58fe..14d4d67edfb 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java @@ -23,10 +23,10 @@ import static java.util.stream.Collectors.toMap; */ public class DocumentReferenceResolver { - private final Map<String, Schema> searchMapping; + private final Map<String, Schema> schemaMapping; public DocumentReferenceResolver(Collection<Schema> schemas) { - this.searchMapping = createDocumentNameToSearchMapping(schemas); + this.schemaMapping = createDocumentNameToSearchMapping(schemas); } public void resolveReferences(SDDocumentType documentType) { @@ -63,7 +63,7 @@ public class DocumentReferenceResolver { } ReferenceDataType reference = (ReferenceDataType) field.getDataType(); String targetDocumentName = getTargetDocumentName(reference); - Schema schema = searchMapping.get(targetDocumentName); + Schema schema = schemaMapping.get(targetDocumentName); if (schema == null) { throw new IllegalArgumentException( String.format("Invalid document reference '%s': " + diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java index a2d7fdd8fe5..a2c3f88bf9c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java @@ -58,7 +58,6 @@ public class SchemaBuilder { /** True to build the document aspect only, skipping instantiation of rank profiles */ private final boolean documentsOnly; - private List<Schema> schemaList = new LinkedList<>(); private boolean isBuilt = false; private final Set<Class<? extends Processor>> processorsToSkip = new HashSet<>(); @@ -197,7 +196,6 @@ public class SchemaBuilder { throw new IllegalArgumentException("Schema has no name"); String rawName = schema.getName(); application.add(schema); - schemaList.add(schema); return rawName; } @@ -228,7 +226,7 @@ public class SchemaBuilder { List<Schema> built = new ArrayList<>(); List<SDDocumentType> sdocs = new ArrayList<>(); sdocs.add(SDDocumentType.VESPA_DOCUMENT); - for (Schema schema : schemaList) { + for (Schema schema : application.schemas().values()) { if (schema.hasDocument()) { sdocs.add(schema.getDocument()); } @@ -241,27 +239,28 @@ public class SchemaBuilder { new FieldOperationApplier().process(sdoc); } - var resolver = new DocumentReferenceResolver(schemaList); + var resolver = new DocumentReferenceResolver(application.schemas().values()); sdocs.forEach(resolver::resolveReferences); sdocs.forEach(resolver::resolveInheritedReferences); - var importedFieldsEnumerator = new ImportedFieldsEnumerator(schemaList); + var importedFieldsEnumerator = new ImportedFieldsEnumerator(application.schemas().values()); sdocs.forEach(importedFieldsEnumerator::enumerateImportedFields); if (validate) new DocumentGraphValidator().validateDocumentGraph(sdocs); var builder = new DocumentModelBuilder(model); - for (Schema schema : new SearchOrderer().order(schemaList)) { + List<Schema> schemasSomewhatOrdered = new ArrayList<>(application.schemas().values()); + for (Schema schema : new SearchOrderer().order(schemasSomewhatOrdered)) { new FieldOperationApplierForSearch().process(schema); // TODO: Why is this not in the regular list? process(schema, new QueryProfiles(queryProfileRegistry, deployLogger), validate); built.add(schema); } - builder.addToModel(schemaList); + builder.addToModel(schemasSomewhatOrdered); if ( validate && ! builder.valid() ) throw new IllegalArgumentException("Impossible to build a correct model"); - schemaList = built; + application.replaceSchemasBy(built); isBuilt = true; } @@ -320,7 +319,7 @@ public class SchemaBuilder { * @return the list of built searches */ public List<Schema> getSearchList() { - return new ArrayList<>(schemaList); + return new ArrayList<>(application.schemas().values()); } /** |