public static Filter createFilterFromArguments(ArrayList<byte[]> filterArguments) {
    Preconditions.checkArgument(filterArguments.size() == 4, "Expect 4 arguments: %s",
      filterArguments.size());
    byte[] family = ParseFilter.removeQuotesFromByteArray(filterArguments.get(0));
    byte[] qualifier = ParseFilter.removeQuotesFromByteArray(filterArguments.get(1));
    CompareOperator operator = ParseFilter.createCompareOperator(filterArguments.get(2));
    ByteArrayComparable comparator =
      ParseFilter.createComparator(ParseFilter.removeQuotesFromByteArray(filterArguments.get(3)));

    if (comparator instanceof RegexStringComparator || comparator instanceof SubstringComparator) {
      if (operator != CompareOperator.EQUAL && operator != CompareOperator.NOT_EQUAL) {
        throw new IllegalArgumentException("A regexstring comparator and substring comparator "
          + "can only be used with EQUAL and NOT_EQUAL");
      }
    }

    return new ColumnValueFilter(family, qualifier, operator, comparator);
  }
Creating this filter by reflection, it is used by {@link ParseFilter},
@param filterArguments arguments for creating a ColumnValueFilter
@return a ColumnValueFilter
hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ColumnValueFilter.java