public static Map getFilterInfo()

in core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java [195:259]


  public static Map<String, String> getFilterInfo(String url) throws UnsupportedEncodingException {
    List<String> info = new ArrayList<>();
    Map<String, String> filterValues = new HashMap<>();

    String keyword = "";
    Map<String, String> mapRequest = RequestUrl.uRLRequest(url);
    if (mapRequest.get("search") != null) {
      try {
        keyword = mapRequest.get("search");

        keyword = URLDecoder.decode(keyword.replaceAll("%(?![0-9a-fA-F]{2})", "%25"), "UTF-8");
        if (keyword.contains("%2b") || keyword.contains("%20") || keyword.contains("%25")) {
          keyword = keyword.replace("%2b", " ");
          keyword = keyword.replace("%20", " ");
          keyword = keyword.replace("%25", " ");
        }
        keyword = keyword.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();

      } catch (UnsupportedEncodingException e) {
        LOG.error(mapRequest.get("search"), e);
      }
      if (!"".equals(keyword)) {
        info.add(keyword);
      }

    }

    if (mapRequest.get("ids") != null && mapRequest.get("values") != null) {
      String idRaw = URLDecoder.decode(mapRequest.get("ids"), "UTF-8");
      String valueRaw = URLDecoder.decode(mapRequest.get("values"), "UTF-8");
      String[] ids = idRaw.split(":");
      String[] values = valueRaw.split(":");

      int a = ids.length;
      int b = values.length;
      int l = a < b ? a : b;

      for (int i = 0; i < l; i++) {
        try {
          values[i] = values[i].replaceAll("%(?![0-9a-fA-F]{2})", "%25");
          if (!URLDecoder.decode(values[i], "UTF-8").equals(keyword) && !URLDecoder.decode(values[i], "UTF-8").equals("")) {
            String item = URLDecoder.decode(values[i], "UTF-8").trim();
            if (item.contains("%2b") || item.contains("%20") || item.contains("%25")) {
              item = item.replace("%2b", " ");
              item = item.replace("%20", " ");
              item = item.replace("%25", " ");
            }
            item = item.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();
            filterValues.put(ids[i], item);
          }
        } catch (Exception e) {
          LOG.error("Error occurred while decoding value " + values[i], e);
        }
      }
    }

    if (mapRequest.get("temporalsearch") != null) {
      String temporalsearch = mapRequest.get("temporalsearch");
      temporalsearch = URLDecoder.decode(temporalsearch.replaceAll("%(?![0-9a-fA-F]{2})", "%25"), "UTF-8");

      filterValues.put("temporalsearch", temporalsearch);
    }

    return filterValues;
  }