code: public static String replaceDataReferencesInString(final String input, final Map<String, Map<String, String>> data,
                                                         final Converter<String, String> converter, boolean failOnUnexpanded) {
          return replaceDataReferencesInString(input, data, converter, failOnUnexpanded, false);
      }
docs: Replace the embedded  properties of the form '${key.name}' in the input Strings with the value from the data
  context
  
  
  @param input input string
  @param data  data context map
  @param converter converter to encode/convert the expanded values
  
  @param failOnUnexpanded true to fail if a reference is not found
  @return string with values substituted, or original string