Build a file filter implementation based on the parameters
- If filterExpression is empty and filterImpl is the default
'' then a functional filter that accepts all inputs is
returned
- If filterExpression is empty and filterImpl is not the default, then we attempt to use the
default no-args constructor using
Class.forName(filterImpl).newInstance()
. If there
isn't an accessible no-args constructor, then a RuntimeException is thrown.
- If filterExpression is not empty, then we attempt to convert the the filterExpression into
something that is supported by the declared constructors from the class. If conversion fails,
then a RuntimeException will be thrown.
- If filterImpl is empty, then a RuntimeException exception is thrown