Interface Requirements<C,R extends Requirement<C,R>>

Type Parameters:
C - command sender type
R - requirement type
All Superinterfaces:
Iterable<@NonNull R>

@API(status=STABLE, since="1.0.0") public interface Requirements<C,R extends Requirement<C,R>> extends Iterable<@NonNull R>
Immutable container of requirements.
Since:
1.0.0
  • Method Summary

    Modifier and Type
    Method
    Description
    static <C, R extends Requirement<C, R>>
    @NonNull Requirements<C,R>
    Creates an empty requirement container.
    default @NonNull Iterator<@NonNull R>
    Returns an iterator that iterates over the requirements.
    static <C, R extends Requirement<C, R>>
    @NonNull Requirements<C,R>
    of(@NonNull List<@NonNull R> requirements)
    Creates a new immutable requirement container.
    static <C, R extends Requirement<C, R>>
    @NonNull Requirements<C,R>
    of(@NonNull R @NonNull ... requirements)
    Creates a new immutable requirement container.
    @NonNull List<@NonNull R>
    Returns the requirements.
    default @NonNull Requirements<C,R>
    with(@NonNull R requirement)
    Returns a new Requirements instance with the current requirements() and the new requirement.

    Methods inherited from interface java.lang.Iterable

    forEach, spliterator
  • Method Details

    • empty

      static <C, R extends Requirement<C, R>> @NonNull Requirements<C,R> empty()
      Creates an empty requirement container.
      Type Parameters:
      C - command sender type
      R - requirement type
      Returns:
      the requirement container
    • of

      static <C, R extends Requirement<C, R>> @NonNull Requirements<C,R> of(@NonNull List<@NonNull R> requirements)
      Creates a new immutable requirement container.
      Type Parameters:
      C - command sender type
      R - requirement type
      Parameters:
      requirements - list of requirements
      Returns:
      the requirement container
    • of

      @SafeVarargs static <C, R extends Requirement<C, R>> @NonNull Requirements<C,R> of(@NonNull R @NonNull ... requirements)
      Creates a new immutable requirement container.
      Type Parameters:
      C - command sender type
      R - requirement type
      Parameters:
      requirements - list of requirements
      Returns:
      the requirement container
    • with

      default @NonNull Requirements<C,R> with(@NonNull R requirement)
      Returns a new Requirements instance with the current requirements() and the new requirement.
      Parameters:
      requirement - new requirement
      Returns:
      the new instance
    • requirements

      @NonNull List<@NonNull R> requirements()
      Returns the requirements.
      Returns:
      immutable collection of requirements
    • iterator

      default @NonNull Iterator<@NonNull R> iterator()
      Returns an iterator that iterates over the requirements.
      Specified by:
      iterator in interface Iterable<C>
      Returns:
      the iterator