summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-09-27 12:41:17 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-09-27 12:41:17 +0200
commitd8d80bebaf94161b886e2700cb960065ee283772 (patch)
tree171d697cdb31b455ff6e19c07b84fb3f8efa535a /config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java
parent844ed003049e34eff81ca0631376e6db3fd51e66 (diff)
Split the field types validation into a partial and a full, where the partial one can be run early.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java10
1 files changed, 9 insertions, 1 deletions
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 21b7f1d2675..1cf3d61d8f1 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
@@ -29,16 +29,24 @@ public class ValidateFieldTypes extends Processor {
@Override
public void process(boolean validate, boolean documentsOnly) {
- if ( ! validate) return;
+ if (!validate) return;
String searchName = search.getName();
Map<String, DataType> seenFields = new HashMap<>();
+ verifySearchAndDocFields(searchName, seenFields);
+ verifySummaryFields(searchName, seenFields);
+ }
+
+ final protected void verifySearchAndDocFields(String searchName, Map<String, DataType> seenFields) {
search.allFields().forEach(field -> {
checkFieldType(searchName, "index field", field.getName(), field.getDataType(), seenFields);
for (Map.Entry<String, Attribute> entry : field.getAttributes().entrySet()) {
checkFieldType(searchName, "attribute", entry.getKey(), entry.getValue().getDataType(), seenFields);
}
});
+
+ }
+ final protected void verifySummaryFields(String searchName, Map<String, DataType> seenFields) {
for (DocumentSummary summary : search.getSummaries().values()) {
for (SummaryField field : summary.getSummaryFields()) {
checkFieldType(searchName, "summary field", field.getName(), field.getDataType(), seenFields);