diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-02-26 16:41:25 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-02-26 16:41:25 +0100 |
commit | 174745d431c59bfd7d8077b817dc38090010fd35 (patch) | |
tree | 135c22a0f22cbdbdcf0b48bf8b9ea2c4c80d7eca /config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java | |
parent | 446dc287bf35768b73e1390df07a9462ae9db800 (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.java | 28 |
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; } |