docs: public final SpecificsFiltersWhere revealWhereSpecifics(
      final List<SpecificsFilter> pFiltersSpecifics) throws Exception {
      SpecificsFiltersWhere result = null;
      StringBuffer sb = new StringBuffer();
      boolean isFirst = true;
      for (SpecificsFilter sf : pFiltersSpecifics) {
        if (sf.getFilter().getOperator() != null) {
          if (isFirst) {
            sb.append("(SPECIFICS=" + sf.getCatSpec().getSpecifics().getItsId()
              + " and ");
            isFirst = false;
          } else {
            sb.append(" or (SPECIFICS=" + sf.getCatSpec().getSpecifics()
              .getItsId() + " and ");
          }
          if (sf.getFilter().getClass() == FilterItems.class) {
            @SuppressWarnings("unchecked")
            FilterItems<ChooseableSpecifics> fltItms =
              (FilterItems<ChooseableSpecifics>) sf.getFilter();
            sb.append("LONGVALUE1");
            if (EFilterOperator.IN.equals(fltItms.getOperator())
              && fltItms.getItems().size() == 1) {
              sb.append("=" + fltItms.getItems().get(0).getItsId());
            } else if (EFilterOperator.NOT_IN.equals(fltItms.getOperator())
              && fltItms.getItems().size() == 1) {
              sb.append("!=" + fltItms.getItems().get(0).getItsId());
            } else {
              if (EFilterOperator.IN.equals(fltItms.getOperator())) {
                sb.append(" in (");
              } else {
                sb.append(" not in (");
              }
              boolean isFstItm = true;
              for (ChooseableSpecifics chs : fltItms.getItems()) {
                if (isFstItm) {
                  isFstItm = false;
                } else {
                  sb.append(",");
                }
                sb.append(chs.getItsId());
              }
              sb.append(")");
            }
          } else if (sf.getFilter().getClass() == FilterInteger.class) {
            FilterInteger flt = (FilterInteger) sf.getFilter();
            sb.append("LONGVALUE1");
            if (EFilterOperator.LESS_THAN.equals(flt.getOperator())
              || EFilterOperator.LESS_THAN_EQUAL.equals(flt.getOperator())
                || EFilterOperator.GREATER_THAN.equals(flt.getOperator())
              || EFilterOperator.GREATER_THAN_EQUAL.equals(flt.getOperator())) {
              sb.append(toSqlOperator(flt.getOperator()) + flt.getValue1());
            } else if (EFilterOperator.BETWEEN.equals(flt.getOperator())) {
              sb.append(">" + flt.getValue1() + " and LONGVALUE1<"
                + flt.getValue2());
            } else if (EFilterOperator.BETWEEN_INCLUDE
              .equals(flt.getOperator())) {
              sb.append(">=" + flt.getValue1() + " and LONGVALUE1<="
                + flt.getValue2());
            } else {
              throw new Exception(
                "Algorithm error for where integer specifics/operator: "
                  + sf.getCatSpec().getSpecifics().getItsName()
                    + "/" + flt.getOperator());
            }
          } else if (sf.getFilter().getClass() == FilterBigDecimal.class) {
            FilterBigDecimal flt = (FilterBigDecimal) sf.getFilter();
            sb.append("NUMERICVALUE1");
            if (EFilterOperator.LESS_THAN.equals(flt.getOperator())
              || EFilterOperator.LESS_THAN_EQUAL.equals(flt.getOperator())
                || EFilterOperator.GREATER_THAN.equals(flt.getOperator())
              || EFilterOperator.GREATER_THAN_EQUAL.equals(flt.getOperator())) {
              sb.append(toSqlOperator(flt.getOperator()) + flt.getValue1());
            } else if (EFilterOperator.BETWEEN.equals(flt.getOperator())) {
              sb.append(">" + flt.getValue1() + " and NUMERICVALUE1<"
                + flt.getValue2());
            } else if (EFilterOperator.BETWEEN_INCLUDE
              .equals(flt.getOperator())) {
              sb.append(">=" + flt.getValue1() + " and NUMERICVALUE1<="
                + flt.getValue2());
            } else {
              throw new Exception(
                "Algorithm error for where integer specifics/operator: "
                  + sf.getCatSpec().getSpecifics().getItsName()
                    + "/" + flt.getOperator());
            }
          } else {
            throw new Exception(
              "Making WHERE not implemented for specifics/filter: "
                + sf.getCatSpec().getSpecifics().getItsName()
                  + "/" + sf.getFilter().getClass());
          }
          sb.append(")");
          if (result == null) {
            result = new SpecificsFiltersWhere();
          }
          result.setWhereCount(result.getWhereCount() + 1);
        }
      }
      if (result != null) {
        result.setWhere(sb.toString());
      }
      return result;
    }