@Override
  public boolean test(RowData rowData) {
    boolean result;
    Object val;
    switch (opt) {
      case EQUALS:
        val = getter(rowData);
        result = compareEquals(val);
        break;
      case NOT_EQUALS:
        val = getter(rowData);
        result = !compareEquals(val);
        break;
      case GREATER_THAN:
        val = getter(rowData);
        result = compareGreaterThan(val);
        break;
      case GREATER_THAN_OR_EQUAL:
        val = getter(rowData);
        result = compareGreaterThanOrEqual(val);
        break;
      case LESS_THAN:
        val = getter(rowData);
        result = compareLessThan(val);
        break;
      case LESS_THAN_OR_EQUAL:
        val = getter(rowData);
        result = compareLessThanOrEqual(val);
        break;
      case IS_NOT_NULL:
        val = getter(rowData);
        result = compareIsNotNull(val);
        break;
      case IS_NULL:
        val = getter(rowData);
        result = compareIsNull(val);
        break;
      case AND:
        Preconditions.checkNotNull(leftPredicates);
        Preconditions.checkNotNull(rightPredicates);
        result = Arrays.stream(leftPredicates).allMatch(p -> p.test(rowData));
        if (!result) {
          return false;
        }
        result = Arrays.stream(rightPredicates).allMatch(p -> p.test(rowData));
        break;
      case OR:
        Preconditions.checkNotNull(leftPredicates);
        Preconditions.checkNotNull(rightPredicates);
        result = Arrays.stream(leftPredicates).allMatch(p -> p.test(rowData));
        if (result) {
          return true;
        }
        result = Arrays.stream(rightPredicates).allMatch(p -> p.test(rowData));
        break;
      default:
        throw new IllegalArgumentException("Unsupported opt: " + opt);
    }

    return result;
  }
Test if the RowData record satisfies this predicate.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/lookup/filter/RowDataPredicate.java