aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-02-26 16:41:25 +0100
committerJon Bratseth <bratseth@oath.com>2018-02-26 16:41:25 +0100
commit174745d431c59bfd7d8077b817dc38090010fd35 (patch)
tree135c22a0f22cbdbdcf0b48bf8b9ea2c4c80d7eca /config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java
parent446dc287bf35768b73e1390df07a9462ae9db800 (diff)
Don't validate when reloading models
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java28
1 files changed, 18 insertions, 10 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java
index 9b6a86ad13e..9997351d246 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java
@@ -32,14 +32,14 @@ public class ImportedFieldsResolver extends Processor {
}
@Override
- public void process() {
- search.temporaryImportedFields().get().fields().forEach((name, field) -> resolveImportedField(field));
+ public void process(boolean validate) {
+ search.temporaryImportedFields().get().fields().forEach((name, field) -> resolveImportedField(field, validate));
search.setImportedFields(new ImportedFields(importedFields));
}
- private void resolveImportedField(TemporaryImportedField importedField) {
+ private void resolveImportedField(TemporaryImportedField importedField, boolean validate) {
DocumentReference reference = validateDocumentReference(importedField);
- SDField targetField = validateTargetField(importedField, reference);
+ SDField targetField = validateTargetField(importedField, reference, validate);
importedFields.put(importedField.fieldName(), new ImportedField(importedField.fieldName(), reference, targetField));
}
@@ -52,19 +52,27 @@ public class ImportedFieldsResolver extends Processor {
return reference;
}
- private SDField validateTargetField(TemporaryImportedField importedField, DocumentReference reference) {
+ private SDField validateTargetField(TemporaryImportedField importedField,
+ DocumentReference reference,
+ boolean validate) {
String targetFieldName = importedField.targetFieldName();
Search targetSearch = reference.targetSearch();
- if (isImportedField(targetSearch, targetFieldName)) {
- fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is an imported field. Not supported");
+ if (validate && isImportedField(targetSearch, targetFieldName)) {
+ fail(importedField, targetFieldAsString(targetFieldName, reference) +
+ ": Is an imported field. Not supported");
}
SDField targetField = targetSearch.getConcreteField(targetFieldName);
if (targetField == null) {
- fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Not found");
+ fail(importedField, targetFieldAsString(targetFieldName, reference) +
+ ": Not found");
} else if (!targetField.doesAttributing()) {
- fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is not an attribute field. Only attribute fields supported");
+ if (validate)
+ fail(importedField, targetFieldAsString(targetFieldName, reference) +
+ ": Is not an attribute field. Only attribute fields supported");
} else if (targetField.doesIndexing()) {
- fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is an index field. Not supported");
+ if (validate)
+ fail(importedField, targetFieldAsString(targetFieldName, reference) +
+ ": Is an index field. Not supported");
}
return targetField;
}