code: public int doFilter(Workspace ws, DataBinder binder, ExecutionContext ctx) throws DataException, ServiceException {
  
      Object returnVal = null;
  
      try {
  
        String methodID = (String) ctx.getCachedObject("filterParameter");
  
        Method m = MethodRegistry.getMethod(methodID);
  
        ParameterMarshaller marshaller = new ParameterMarshaller(m);
  
        Object[] params = marshaller.getValueArray(ws, binder, ctx);
  
        Object context = m.getDeclaringClass().newInstance();
  
        returnVal = m.invoke(context, params);
  
      } catch (IllegalArgumentException e) {
  
        throw new DataException(e.getMessage(), e);
  
      } catch (Exception e) {
  
        throw new ServiceException(e.getMessage(), e);
      }
  
      if (returnVal != null && returnVal instanceof Integer) {
        return ((Integer) returnVal).intValue();
      }
  
      return CONTINUE;
    }
docs: Main entry point which will delegate to the filter method with dependency
  injection.