code: @Override
      public void runReport(Map<String, Object> extra) {
          rows = new ArrayList<Map<String, Object>>(data != null ? data : new ArrayList<Map<String, Object>>());
          if (parameterConfig != null)
          {
              for (final ParamConfig paramConfig : parameterConfig)
              {
                  if (paramRules == null) continue;
                  final FakeReportConfig.ParamToColumnRule paramToColumnRule = paramRules.get(paramConfig.getName());
                  if (paramToColumnRule == null) continue;
                  try {
                      if (StringUtils.isBlank(BeanUtils.getProperty(paramConfig, "value"))) continue;
                  } catch (IllegalAccessException e) {
                      e.printStackTrace();
                      continue;
                  } catch (InvocationTargetException e) {
                      e.printStackTrace();
                      continue;
                  } catch (NoSuchMethodException e) {
                      e.printStackTrace();
                      continue;
                  }
                  switch (paramToColumnRule.getMapRule())
                  {
                      case Exact:
                          rows = (List<Map<String, Object>>) CollectionUtils.select(rows, new ExactEquals(paramToColumnRule, paramConfig));
                          break;
                      case SubString:
                          rows = (List<Map<String, Object>>) CollectionUtils.select(rows, new SubstringOrExact(paramToColumnRule, paramConfig));
                          break;
                      case IntegerRange:
                          rows = (List<Map<String, Object>>) CollectionUtils.select(rows, new IntegerRange(paramToColumnRule, paramConfig));
                          break;
                  }
              }
          }
      }
docs: {@inheritDoc}