docs: public MtasDataItemNumberComparator<T> recomputeBoundary(int n)
        throws IOException {
      if (sortDirection.equals(CodecUtil.SORT_DESC)) {
        if (value instanceof Integer) {
          return new MtasDataItemNumberComparator(
              Math.floorDiv((Integer) value, n), sortDirection);
        } else if (value instanceof Long) {
          return new MtasDataItemNumberComparator(Math.floorDiv((Long) value, n),
              sortDirection);
        } else if (value instanceof Float) {
          return new MtasDataItemNumberComparator(((Float) value) / n,
              sortDirection);
        } else if (value instanceof Double) {
          return new MtasDataItemNumberComparator(((Double) value) / n,
              sortDirection);
        } else {
          throw new IOException("unknown NumberComparator");
        }
      } else if (sortDirection.equals(CodecUtil.SORT_ASC)) {
        return new MtasDataItemNumberComparator(getValue(), sortDirection);
      } else {
        throw new IOException("unknown sortDirection " + sortDirection);
      }
    }