public Filter parseSimpleFilterExpression(byte[] filterStringAsByteArray)
    throws CharacterCodingException {

    String filterName = Bytes.toString(getFilterName(filterStringAsByteArray));
    ArrayList<byte[]> filterArguments = getFilterArguments(filterStringAsByteArray);
    if (!filterHashMap.containsKey(filterName)) {
      throw new IllegalArgumentException("Filter Name " + filterName + " not supported");
    }
    filterName = filterHashMap.get(filterName);
    final String methodName = "createFilterFromArguments";
    try {
      Class<?> c = Class.forName(filterName);
      Class<?>[] argTypes = new Class[] { ArrayList.class };
      Method m = c.getDeclaredMethod(methodName, argTypes);
      return (Filter) m.invoke(null, filterArguments);
    } catch (ClassNotFoundException e) {
      LOG.error("Could not find class {}", filterName, e);
    } catch (NoSuchMethodException e) {
      LOG.error("Could not find method {} in {}", methodName, filterName, e);
    } catch (IllegalAccessException e) {
      LOG.error("Unable to access specified class {}", filterName, e);
    } catch (InvocationTargetException e) {
      LOG.error("Method {} threw an exception for {}", methodName, filterName, e);
    }
    throw new IllegalArgumentException(
      "Incorrect filter string " + new String(filterStringAsByteArray, StandardCharsets.UTF_8));
  }
Constructs a filter object given a simple filter expression
<p>
@param filterStringAsByteArray filter string given by the user
@return filter object we constructed
hbase-client/src/main/java/org/apache/hadoop/hbase/filter/ParseFilter.java