public static StringOperator replace()

in old/dekaf-core/src/main/java/org/jetbrains/dekaf/sql/Rewriters.java [25:46]


  public static StringOperator replace(@NotNull final Map<String,String> map) {
    return new StringOperator() {
      @Override
      public String apply(final String arg) {
        if (map.isEmpty()) return arg;
        if (arg == null) return null;
        boolean was = false;
        StringBuilder b = new StringBuilder(arg);
        for (Map.Entry<String, String> entry : map.entrySet()) {
          String what = entry.getKey();
          String with = entry.getValue();
          int p = b.indexOf(what);
          while (p >= 0) {
            b.replace(p, p+what.length(), with);
            p = b.indexOf(what, p + with.length());
            was = true;
          }
        }
        return was ? b.toString() : arg;
      }
    };
  }