class StatisticsImpl implements SuppliableStatistics {

  @Override
  public IntSupplier setIntSupplier(final int id, final IntSupplier supplier) {
    // setIntSupplier is deprecated but it is too much of a pain to wrap the IntSupplier
    // in a LongSupplier. So the implementation continues to store IntSupplier instances
    // but all the checks and actions are long based instead of int based.
    if (!type.isValidLongId(id)) {
      throw new IllegalArgumentException("Id " + id + " is not in range for stat" + type);
    }
    return intSuppliers.put(id, supplier);
  }

    StatisticsImpl(StatisticsType type, String textId, long numericId, long uniqueId,
      int osStatFlags, StatisticsManager statisticsManager);
    StatisticsImpl(StatisticsType type, String textId, long numericId, long uniqueId,
      int osStatFlags, StatisticsManager statisticsManager, StatisticsLogger statisticsLogger);

}