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);
    }
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 ) ; }
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