This method does nothing and will simply tell if the next ID
        will be larger than the given ID.
        You don't need to call this method on cluster restart - uniqueness is preserved thanks to the
        timestamp component of the ID.
        This method exists to make :class:`~hazelcast.proxy.FlakeIdGenerator` drop-in replacement
        for the deprecated :class:`~hazelcast.proxy.IdGenerator`.

        :param id: (int), ID to compare.
        :return: (bool), True if the next ID will be larger than the supplied id, False otherwise.

def init(self, id):
        """
        This method does nothing and will simply tell if the next ID
        will be larger than the given ID.
        You don't need to call this method on cluster restart - uniqueness is preserved thanks to the
        timestamp component of the ID.
        This method exists to make :class:`~hazelcast.proxy.FlakeIdGenerator` drop-in replacement
        for the deprecated :class:`~hazelcast.proxy.IdGenerator`.

        :param id: (int), ID to compare.
        :return: (bool), True if the next ID will be larger than the supplied id, False otherwise.
        """

        # Add 1 hour worth of IDs as a reserve: due to long batch validity some clients might be still getting
        # older IDs. 1 hour is just a safe enough value, not a real guarantee: some clients might have longer
        # validity.
        # The init method should normally be called before any client generated IDs: in this case no reserve is
        # needed, so we don't want to increase the reserve excessively.
        reserve = to_millis(TimeUnit.HOUR) << (FlakeIdGenerator._BITS_NODE_ID + FlakeIdGenerator._BITS_SEQUENCE)
        return self.new_id().continue_with(lambda f: f.result() >= (id + reserve))