in streampipes-extensions/streampipes-processors-filters-jvm/src/main/java/org/apache/streampipes/processors/filters/jvm/processor/numericaltextfilter/NumericalTextFilterProcessor.java [119:156]
public void onEvent(Event event, SpOutputCollector spOutputCollector) throws SpRuntimeException {
boolean satisfiesNumberFilter = false;
boolean satisfiesTextFilter = false;
Double numbervalue = event.getFieldBySelector(this.numberProperty)
.getAsPrimitive()
.getAsDouble();
String value = event.getFieldBySelector(this.textProperty)
.getAsPrimitive()
.getAsString();
Double threshold = this.numberThreshold;
if (this.numericalOperator == NumericalOperator.EQ) {
satisfiesNumberFilter = (Math.abs(numbervalue - threshold) < 0.000001);
} else if (this.numericalOperator == NumericalOperator.GE) {
satisfiesNumberFilter = (numbervalue >= threshold);
} else if (this.numericalOperator == NumericalOperator.GT) {
satisfiesNumberFilter = numbervalue > threshold;
} else if (this.numericalOperator == NumericalOperator.LE) {
satisfiesNumberFilter = (numbervalue <= threshold);
} else if (this.numericalOperator == NumericalOperator.LT) {
satisfiesNumberFilter = (numbervalue < threshold);
} else if (this.numericalOperator == NumericalOperator.IE) {
satisfiesNumberFilter = (Math.abs(numbervalue - threshold) > 0.000001);
}
if (this.textOperator == StringOperator.MATCHES) {
satisfiesTextFilter = (value.equals(this.textKeyword));
} else if (this.textOperator == StringOperator.CONTAINS) {
satisfiesTextFilter = (value.contains(this.textKeyword));
}
if (satisfiesNumberFilter && satisfiesTextFilter) {
spOutputCollector.collect(event);
}
}