aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-10-25 17:38:50 +0200
committerJon Bratseth <bratseth@gmail.com>2021-10-25 17:38:50 +0200
commit25a892f7b43a58f75ad6d842aad1fd62d9f1ee1c (patch)
tree67e048d1ddf496d0188e32312a087450cf245336 /config-model/src/main/java/com/yahoo/searchdefinition
parent7cfec9da18f7e1fc5d23cafef64c5f7b7af3750f (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.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/SchemaBuilder.java17
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());
}
/**