docs: public String resolveMacros(String input) {
  
          String result = input;
  
          if (input != null) {
              String lastResult;
              do {
                  // save result for next comparison
                  lastResult = result;
                  // resolve the macros
                  result = CmsMacroResolver.resolveMacros(result, this);
                  // if nothing changes then the final result is found
              } while (!result.equals(lastResult));
          }
  
          // return the result
          return result;
      }