public static <Key, Value> boolean processAllKeyValuesAsAdded(int inputId,
                                                                @NotNull Map<Key, Value> addedData,
                                                                final @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> addProcessor)
    throws StorageException {
    boolean[] anyAdded = {false};
    try {
      addedData.forEach((key, value) -> {
        try {
          addProcessor.process(key, value, inputId);
        }
        catch (StorageException e) {
          throw new RuntimeException(e);
        }
        anyAdded[0] = true;
      });
    }
    catch (RuntimeException e) {
      Throwable cause = e.getCause();
      if (cause instanceof StorageException) {
        throw (StorageException)cause;
      }
      throw e;
    }
    return anyAdded[0];
  }
public static <Key, Value> boolean processAllKeyValuesAsAdded(int inputId,
                                                                @NotNull Map<Key, Value> addedData,
                                                                final @NotNull KeyValueUpdateProcessor<? super Key, ? super Value> addProcessor)