public TransparentlyFailedValueI<Map<String, Map<String, CharSequence>>, PatchSyntaxException>
      getAdditionalInfo(final Set<String> filterByPaths) {
    final TransparentlyFailedValue<Map<String, Map<String, CharSequence>>, PatchSyntaxException>
        value =
            new TransparentlyFailedValue<
                Map<String, Map<String, CharSequence>>, PatchSyntaxException>();

    final Map<String, Map<String, CharSequence>> map = myAdditionalInfoParser.getResultMap();
    final Map<String, Map<String, CharSequence>> newMap =
        new HashMap<String, Map<String, CharSequence>>();

    for (Map.Entry<String, Map<String, CharSequence>> entry : map.entrySet()) {
      final Map<String, CharSequence> innerMap = entry.getValue();
      if (filterByPaths == null || filterByPaths.contains(entry.getKey())) {
        newMap.put(entry.getKey(), innerMap);
      }
    }
    value.set(newMap);
    final PatchSyntaxException e = myAdditionalInfoParser.getSyntaxException();
    if (e != null) {
      value.fail(e);
    }
    return value;
  }