public void onEvent()

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);
    }
  }