code: private String replaceTokens(String sql, Map<String, String> replacers) {
  
          Iterator<Map.Entry<String, String>> keys = replacers.entrySet().iterator();
          while (keys.hasNext()) {
              Map.Entry<String, String> entry = keys.next();
  
              String key = entry.getKey();
              String value = entry.getValue();
  
              sql = CmsStringUtil.substitute(sql, key, value);
          }
  
          return sql;
      }
docs: Replaces tokens "${xxx}" in a specified SQL query.<p>
  
  @param sql a SQL query
  @param replacers a Map with values keyed by "${xxx}" tokens
  @return the SQl query with all "${xxx}" tokens replaced