28 lines
640 B
JavaScript
Raw Normal View History

2020-05-17 09:48:24 +02:00
"use strict";
class AndExp {
2020-05-19 00:00:35 +02:00
static of(subExpressions) {
2020-05-20 23:20:39 +02:00
subExpressions = subExpressions.filter(exp => !!exp);
2020-05-19 00:00:35 +02:00
if (subExpressions.length === 1) {
return subExpressions[0];
2020-05-20 23:20:39 +02:00
} else if (subExpressions.length > 0) {
2020-05-19 00:00:35 +02:00
return new AndExp(subExpressions);
}
}
2020-05-20 23:20:39 +02:00
constructor(subExpressions) {
this.subExpressions = subExpressions;
}
2020-05-16 23:12:29 +02:00
execute(noteSet, searchContext) {
for (const subExpression of this.subExpressions) {
noteSet = subExpression.execute(noteSet, searchContext);
}
return noteSet;
}
}
2020-05-17 09:48:24 +02:00
module.exports = AndExp;