public static RecordFilter parse(String filterString, List<Field> fields, boolean ignoreCase) {
    int index = 0;

    boolean not = isNot(filterString);
    if (not) {
      index += 1;
    }

    StringBuilder fieldString = new StringBuilder();
    while (
      filterString.length() > index && filterString.charAt(index) != '<'
        && filterString.charAt(index) != '>' && filterString.charAt(index) != '='
    ) {
      fieldString.append(filterString.charAt(index++));
    }

    if (fieldString.length() == 0 || filterString.length() == index) {
      return null;
    }

    Field field = getField(fields, fieldString.toString());
    if (field == null) {
      return null;
    }

    StringBuilder operatorString = new StringBuilder();
    while (
      filterString.length() > index && (filterString.charAt(index) == '<'
        || filterString.charAt(index) == '>' || filterString.charAt(index) == '=')
    ) {
      operatorString.append(filterString.charAt(index++));
    }

    Operator operator = getOperator(operatorString.toString());
    if (operator == null) {
      return null;
    }

    String value = filterString.substring(index);
    FieldValue fieldValue = getFieldValue(field, value);
    if (fieldValue == null) {
      return null;
    }

    return new RecordFilter(ignoreCase, not, field, operator, fieldValue);
  }
Represents a filter that's filtering the metric {@link Record}s.
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/RecordFilter.java