code: public static <T extends ViewTraverse<T>> Map<String, Object> replaceDataReferences(
              final Map<String, Object> input,
              final T currentContext,
              final BiFunction<Integer, String, T> viewMap,
              final Converter<String, String> converter,
              final MultiDataContext<T, DataContext> data
      )
      {
          return replaceDataReferences(input, currentContext, viewMap, converter, data, false, false);
      }
docs: Recursively replace data references in the values in a map which contains either string, collection or Map
  values.
  
  @param input input map
  @param data  context data
  
  @return Map with all string values having references replaced