From 2f68b1b2ce21f0fb1dfe68dc2f09aa0113b7a0d8 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 21 Oct 2021 16:33:33 +0200 Subject: Use map to allow shadowing parent fields --- .../processing/AddExtraFieldsToDocument.java | 2 +- .../processing/AdjustPositionSummaryFields.java | 40 +++++++++++----------- .../processing/MatchedElementsOnlyResolver.java | 4 +-- .../processing/ReferenceFieldsProcessor.java | 2 +- .../processing/SummaryConsistency.java | 2 +- .../processing/SummaryDiskAccessValidator.java | 8 ++--- .../SummaryFieldsMustHaveValidSource.java | 2 +- .../processing/SummaryNamesFieldCollisions.java | 2 +- .../processing/ValidateFieldTypes.java | 2 +- 9 files changed, 32 insertions(+), 32 deletions(-) (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing') diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java index 9ade1786e37..57d5a9c8e75 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java @@ -39,7 +39,7 @@ public class AddExtraFieldsToDocument extends Processor { addSdField(schema, document, field, validate); } //TODO Vespa 8 or sooner we should avoid the dirty addition of fields from dirty 'default' summary to document at all - for (SummaryField field : schema.getSummary("default").getSummaryFields()) { + for (SummaryField field : schema.getSummary("default").getSummaryFields().values()) { if (dirtyLegalFieldNameCheck(field.getName())) { addSummaryField(schema, document, field, validate); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java index 176fcf2130f..983942f87c3 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java @@ -33,26 +33,26 @@ public class AdjustPositionSummaryFields extends Processor { } private void scanSummary(DocumentSummary summary) { - for (SummaryField summaryField : summary.getSummaryFields()) { - if (isPositionDataType(summaryField.getDataType())) { - String originalSource = summaryField.getSingleSource(); - if (originalSource.indexOf('.') == -1) { // Eliminate summary fields with pos.x or pos.y as source - ImmutableSDField sourceField = schema.getField(originalSource); - if (sourceField != null) { - String zCurve = null; - if (sourceField.getDataType().equals(summaryField.getDataType())) { - zCurve = PositionDataType.getZCurveFieldName(originalSource); - } else if (sourceField.getDataType().equals(makeZCurveDataType(summaryField.getDataType())) && - hasZCurveSuffix(originalSource)) { - zCurve = originalSource; - } - if (zCurve != null) { - if (hasPositionAttribute(zCurve)) { - Source source = new Source(zCurve); - adjustPositionField(summary, summaryField, source); - } else if (sourceField.isImportedField() || !summaryField.getName().equals(originalSource)) { - fail(summaryField, "No position attribute '" + zCurve + "'"); - } + for (SummaryField summaryField : summary.getSummaryFields().values()) { + if ( ! isPositionDataType(summaryField.getDataType())) continue; + + String originalSource = summaryField.getSingleSource(); + if (originalSource.indexOf('.') == -1) { // Eliminate summary fields with pos.x or pos.y as source + ImmutableSDField sourceField = schema.getField(originalSource); + if (sourceField != null) { + String zCurve = null; + if (sourceField.getDataType().equals(summaryField.getDataType())) { + zCurve = PositionDataType.getZCurveFieldName(originalSource); + } else if (sourceField.getDataType().equals(makeZCurveDataType(summaryField.getDataType())) && + hasZCurveSuffix(originalSource)) { + zCurve = originalSource; + } + if (zCurve != null) { + if (hasPositionAttribute(zCurve)) { + Source source = new Source(zCurve); + adjustPositionField(summary, summaryField, source); + } else if (sourceField.isImportedField() || !summaryField.getName().equals(originalSource)) { + fail(summaryField, "No position attribute '" + zCurve + "'"); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java index 709c79cd79b..c2fe4e875b8 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java @@ -33,8 +33,8 @@ public class MatchedElementsOnlyResolver extends Processor { public void process(boolean validate, boolean documentsOnly) { for (var entry : schema.getSummaries().entrySet()) { var summary = entry.getValue(); - for (var field : summary.getSummaryFields()) { - if (field.getTransform().equals(SummaryTransform.MATCHED_ELEMENTS_FILTER)) { + for (var field : summary.getSummaryFields().values()) { + if (field.getTransform() == SummaryTransform.MATCHED_ELEMENTS_FILTER) { processSummaryField(summary, field, validate); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java index ed23b1ca606..19bfb41289d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java @@ -35,7 +35,7 @@ public class ReferenceFieldsProcessor extends Processor { private void clearSummaryAttributeAspectForExplicitSummaryFields() { for (DocumentSummary docSum : schema.getSummaries().values()) { - docSum.getSummaryFields().stream() + docSum.getSummaryFields().values().stream() .filter(summaryField -> summaryField.getDataType() instanceof ReferenceDataType) .forEach(summaryField -> summaryField.setTransform(SummaryTransform.NONE)); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java index 80f9a15f1e5..8b86674e4d0 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java @@ -33,7 +33,7 @@ public class SummaryConsistency extends Processor { for (DocumentSummary summary : schema.getSummaries().values()) { if (summary.getName().equals("default")) continue; - for (SummaryField summaryField : summary.getSummaryFields() ) { + for (SummaryField summaryField : summary.getSummaryFields().values()) { assertConsistency(summaryField, schema, validate); makeAttributeTransformIfAppropriate(summaryField, schema); makeAttributeCombinerTransformIfAppropriate(summaryField, schema); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java index 4bc553b1669..6a64202686f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java @@ -37,7 +37,7 @@ public class SummaryDiskAccessValidator extends Processor { if (documentsOnly) return; for (DocumentSummary summary : schema.getSummaries().values()) { - for (SummaryField summaryField : summary.getSummaryFields()) { + for (SummaryField summaryField : summary.getSummaryFields().values()) { for (SummaryField.Source source : summaryField.getSources()) { ImmutableSDField field = schema.getField(source.getName()); if (field == null) @@ -47,9 +47,9 @@ public class SummaryDiskAccessValidator extends Processor { source + ", but this field does not exist"); if ( ! isInMemory(field, summaryField) && ! summary.isFromDisk()) { deployLogger.logApplicationPackage(Level.WARNING, summaryField + " in " + summary + " references " + - source + ", which is not an attribute: Using this " + - "summary will cause disk accesses. " + - "Set 'from-disk' on this summary class to silence this warning."); + source + ", which is not an attribute: Using this " + + "summary will cause disk accesses. " + + "Set 'from-disk' on this summary class to silence this warning."); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java index 2e2144b819d..c6f5b35aaa8 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java @@ -26,7 +26,7 @@ public class SummaryFieldsMustHaveValidSource extends Processor { if ( ! validate) return; for (DocumentSummary summary : schema.getSummaries().values()) { - for (SummaryField summaryField : summary.getSummaryFields()) { + for (SummaryField summaryField : summary.getSummaryFields().values()) { if (summaryField.getSources().isEmpty()) { if ((summaryField.getTransform() != SummaryTransform.RANKFEATURES) && (summaryField.getTransform() != SummaryTransform.SUMMARYFEATURES)) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java index 1c6f8d54ea3..2d0afe88281 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java @@ -32,7 +32,7 @@ public class SummaryNamesFieldCollisions extends Processor { Map> fieldToClassAndSource = new HashMap<>(); for (DocumentSummary summary : schema.getSummaries().values()) { if ("default".equals(summary.getName())) continue; - for (SummaryField summaryField : summary.getSummaryFields() ) { + for (SummaryField summaryField : summary.getSummaryFields().values()) { if (summaryField.isImplicit()) continue; Pair prevClassAndSource = fieldToClassAndSource.get(summaryField.getName()); for (Source source : summaryField.getSources()) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java index 0d4bfd09677..68bf2511a4b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java @@ -48,7 +48,7 @@ public class ValidateFieldTypes extends Processor { } final protected void verifySummaryFields(String searchName, Map seenFields) { for (DocumentSummary summary : schema.getSummaries().values()) { - for (SummaryField field : summary.getSummaryFields()) { + for (SummaryField field : summary.getSummaryFields().values()) { checkFieldType(searchName, "summary field", field.getName(), field.getDataType(), seenFields); } } -- cgit v1.2.3