diff options
Diffstat (limited to 'src/js/NextSearch/Condition/OrCondition.js')
-rw-r--r-- | src/js/NextSearch/Condition/OrCondition.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/js/NextSearch/Condition/OrCondition.js b/src/js/NextSearch/Condition/OrCondition.js new file mode 100644 index 0000000..c711cf7 --- /dev/null +++ b/src/js/NextSearch/Condition/OrCondition.js @@ -0,0 +1,28 @@ +import AbstractSearchCondition from '@js/NextSearch/Condition/AbstractSearchCondition'; + +export default class OrCondition extends AbstractSearchCondition { + + get TYPE() { + return 'or'; + } + + /** + * @inheritDoc + */ + evaluate(item) { + let result = {matches: 0, checks: 0, passed: false}; + + for(let condition of this._conditions) { + let partialResult = condition.evaluate(item); + + if(partialResult.passed) { + result.passed = true; + result.matches += partialResult.matches; + result.checks += partialResult.checks; + } + } + + if(!result.passed) return {passed: false}; + return result; + } +}
\ No newline at end of file |