public void registerValueWithGivenId(final int id,
                                       final Data value,
                                       final boolean overrideExisting) {
    if (!overrideExisting) {
      if (valueById.containsKey(id)) {
        throw new IllegalArgumentException(
          "id(=" + id + ") is already in use (value: " + valueById.get(id) + ") -- use overrideExisting=true");
      }
    }
    idByValue.put(value, id);
    valueById.put(id, value);
  }
public void registerValueWithGivenId(final int id,
                                       final Data value,
                                       final boolean overrideExisting)