docs: public final List<SpecificsFilter> revialFiltersSpecifics(
      final TradingCatalog pTcat, final Map<String, Object> pRqVs,
        final IRequestData pRqDt) throws Exception {
      if (pTcat.getCatalog().getUsedSpecifics() != null
        && pTcat.getCatalog().getUsedSpecifics().size() > 0) {
        List<SpecificsFilter> res = new ArrayList<SpecificsFilter>();
        String dsep = (String) pRqVs.get("decSepv");
        String dgsep = (String) pRqVs.get("decGrSepv");
        for (CatalogSpecifics cs : pTcat.getCatalog().getUsedSpecifics()) {
          String operStr = pRqDt.getParameter("fltSp"
            + cs.getSpecifics().getItsId() + "Op");
          if (cs.getSpecifics().getChooseableSpecificsType() != null
          && cs.getSpecifics().getChooseableSpecificsType().getItsId() != null) {
            FilterItems<ChooseableSpecifics> fltItms =
              new FilterItems<ChooseableSpecifics>();
            SpecificsFilter spf = new SpecificsFilter();
            spf.setFilter(fltItms);
            spf.setCatSpec(cs);
            res.add(spf);
            fltItms.setItemsAll(retrieveAllChSpecifics(pRqVs,
              cs.getSpecifics().getChooseableSpecificsType()));
            String[] valStrs = pRqDt.getParameterValues("fltSp"
              + cs.getSpecifics().getItsId() + "Val");
            if (operStr != null && !"".equals(operStr)
              && valStrs != null && valStrs.length > 0) {
              fltItms.setOperator(Enum.valueOf(EFilterOperator.class, operStr));
              for (String idStr : valStrs) {
                Long id = Long.valueOf(idStr);
                ChooseableSpecifics chs = findChSpecificsById(fltItms
                  .getItemsAll(), id);
                if (chs == null) {
                  this.logger.warn(pRqVs, PrcWebstorePage.class,
                    "Can't find chspecifics #: " + id);
                } else {
                  fltItms.getItems().add(chs);
                }
              }
            }
          } else if (ESpecificsItemType.INTEGER
            .equals(cs.getSpecifics().getItsType())) {
            FilterInteger flt = new FilterInteger();
            SpecificsFilter spf = new SpecificsFilter();
            spf.setFilter(flt);
            spf.setCatSpec(cs);
            res.add(spf);
            String val1Str = pRqDt.getParameter("fltSp"
              + cs.getSpecifics().getItsId() + "Val1");
            if (operStr != null && !"".equals(operStr)
              && val1Str != null && val1Str.length() > 0) {
              flt.setOperator(Enum.valueOf(EFilterOperator.class, operStr));
              if (dgsep != null) {
                val1Str = val1Str.replace(dgsep, "");
              }
              flt.setValue1(Integer.valueOf(val1Str));
              String val2Str = pRqDt.getParameter("fltSp"
                + cs.getSpecifics().getItsId() + "Val2");
              if (val2Str != null && val2Str.length() > 0) {
                if (dgsep != null) {
                  val2Str = val2Str.replace(dgsep, "");
                }
                flt.setValue2(Integer.valueOf(val2Str));
              }
            }
          } else if (ESpecificsItemType.BIGDECIMAL
            .equals(cs.getSpecifics().getItsType())) {
            FilterBigDecimal flt = new FilterBigDecimal();
            SpecificsFilter spf = new SpecificsFilter();
            spf.setFilter(flt);
            spf.setCatSpec(cs);
            res.add(spf);
            String val1Str = pRqDt.getParameter("fltSp"
              + cs.getSpecifics().getItsId() + "Val1");
            if (operStr != null && !"".equals(operStr)
              && val1Str != null && val1Str.length() > 0) {
              flt.setOperator(Enum.valueOf(EFilterOperator.class, operStr));
              if (dgsep != null) {
                val1Str = val1Str.replace(dgsep, "");
              }
              if (dsep != null) {
                val1Str = val1Str.replace(dsep, ".");
              }
              flt.setValue1(new BigDecimal(val1Str));
              String val2Str = pRqDt.getParameter("fltSp"
                + cs.getSpecifics().getItsId() + "Val2");
              if (val2Str != null && val2Str.length() > 0) {
                if (dgsep != null) {
                  val2Str = val2Str.replace(dgsep, "");
                }
                if (dsep != null) {
                  val2Str = val2Str.replace(dsep, ".");
                }
                flt.setValue2(new BigDecimal(val2Str));
              }
            }
          } else {
            this.logger.error(pRqVs, PrcWebstorePage.class,
              "Filter specifics not implemented yet, for - "
                + cs.getSpecifics().getItsName());
          }
        }
        return res;
      } else {
        return null;
      }
    }