java.lang.Object
com.github.cowwoc.requirements.Requirements
All Implemented Interfaces:
com.github.cowwoc.requirements.java.Configuration, com.github.cowwoc.requirements.java.JavaRequirements

public final class Requirements extends Object implements com.github.cowwoc.requirements.java.Configuration, com.github.cowwoc.requirements.java.JavaRequirements
Verifies requirements using a thread-specific configuration.

Thread-safety: This class is not thread-safe.

See Also:
  • Constructor Details

    • Requirements

      public Requirements()
      Creates a new instance of Requirements.
  • Method Details

    • copy

      public Requirements copy()
      Returns a copy of this configuration.
      Specified by:
      copy in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      copy in interface com.github.cowwoc.requirements.java.JavaRequirements
      Returns:
      a copy of this configuration
    • assertionsAreEnabled

      public boolean assertionsAreEnabled()
      Specified by:
      assertionsAreEnabled in interface com.github.cowwoc.requirements.java.Configuration
    • withAssertionsEnabled

      public Requirements withAssertionsEnabled()
      Specified by:
      withAssertionsEnabled in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withAssertionsEnabled in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withAssertionsDisabled

      public Requirements withAssertionsDisabled()
      Specified by:
      withAssertionsDisabled in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withAssertionsDisabled in interface com.github.cowwoc.requirements.java.JavaRequirements
    • isDiffEnabled

      public boolean isDiffEnabled()
      Specified by:
      isDiffEnabled in interface com.github.cowwoc.requirements.java.Configuration
    • withDiff

      public Requirements withDiff()
      Specified by:
      withDiff in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withDiff in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withoutDiff

      public Requirements withoutDiff()
      Specified by:
      withoutDiff in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withoutDiff in interface com.github.cowwoc.requirements.java.JavaRequirements
    • isCleanStackTrace

      public boolean isCleanStackTrace()
      Specified by:
      isCleanStackTrace in interface com.github.cowwoc.requirements.java.Configuration
    • withCleanStackTrace

      public Requirements withCleanStackTrace()
      Specified by:
      withCleanStackTrace in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withCleanStackTrace in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withoutCleanStackTrace

      public Requirements withoutCleanStackTrace()
      Specified by:
      withoutCleanStackTrace in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withoutCleanStackTrace in interface com.github.cowwoc.requirements.java.JavaRequirements
    • getContext

      public Map<String,Object> getContext()
      Specified by:
      getContext in interface com.github.cowwoc.requirements.java.Configuration
    • withContext

      public Requirements withContext(String name, Object value)
      Specified by:
      withContext in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withContext in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withoutContext

      public Requirements withoutContext(String name)
      Specified by:
      withoutContext in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withoutContext in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withoutAnyContext

      public Requirements withoutAnyContext()
      Specified by:
      withoutAnyContext in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withoutAnyContext in interface com.github.cowwoc.requirements.java.JavaRequirements
    • getContextMessage

      public String getContextMessage(String message)
      Specified by:
      getContextMessage in interface com.github.cowwoc.requirements.java.JavaRequirements
    • toString

      public String toString(Object value)
      Specified by:
      toString in interface com.github.cowwoc.requirements.java.Configuration
    • withStringConverter

      public <T> Requirements withStringConverter(Class<T> type, Function<T,String> converter)
      Specified by:
      withStringConverter in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withStringConverter in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withoutStringConverter

      public <T> Requirements withoutStringConverter(Class<T> type)
      Specified by:
      withoutStringConverter in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withoutStringConverter in interface com.github.cowwoc.requirements.java.JavaRequirements
    • withConfiguration

      public Requirements withConfiguration(com.github.cowwoc.requirements.java.Configuration newConfig)
      Specified by:
      withConfiguration in interface com.github.cowwoc.requirements.java.Configuration
      Specified by:
      withConfiguration in interface com.github.cowwoc.requirements.java.JavaRequirements
    • assertThatAndReturn

      public <V> V assertThatAndReturn(Function<Requirements,V> requirements)
      Verifies requirements only if assertions are enabled.
      Type Parameters:
      V - the return value of the operation
      Parameters:
      requirements - the requirements to verify
      Returns:
      the return value of the operation, or null if assertions are disabled
      Throws:
      NullPointerException - if requirements is null
      See Also:
    • assertThat

      public void assertThat(Consumer<Requirements> requirements)
      Verifies requirements only if assertions are enabled.
      Parameters:
      requirements - the requirements to verify
      Throws:
      NullPointerException - if requirements is null
      See Also:
    • requireThat

      public <T> com.github.cowwoc.requirements.java.ObjectVerifier<T> requireThat(T actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <T> com.github.cowwoc.requirements.java.ObjectValidator<T> validateThat(T actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <C extends Collection<E>, E> com.github.cowwoc.requirements.java.CollectionVerifier<C,E> requireThat(C actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <C extends Collection<E>, E> com.github.cowwoc.requirements.java.CollectionValidator<C,E> validateThat(C actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <L extends List<E>, E> com.github.cowwoc.requirements.java.ListVerifier<L,E> requireThat(L actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <L extends List<E>, E> com.github.cowwoc.requirements.java.ListValidator<L,E> validateThat(L actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<byte[],Byte> requireThat(byte[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<byte[],Byte> validateThat(byte[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<short[],Short> requireThat(short[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<short[],Short> validateThat(short[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<int[],Integer> requireThat(int[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<int[],Integer> validateThat(int[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<long[],Long> requireThat(long[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<long[],Long> validateThat(long[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<float[],Float> requireThat(float[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<float[],Float> validateThat(float[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<double[],Double> requireThat(double[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<double[],Double> validateThat(double[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<boolean[],Boolean> requireThat(boolean[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<boolean[],Boolean> validateThat(boolean[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.ArrayVerifier<char[],Character> requireThat(char[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.ArrayValidator<char[],Character> validateThat(char[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <E> com.github.cowwoc.requirements.java.ArrayVerifier<E[],E> requireThat(E[] actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <E> com.github.cowwoc.requirements.java.ArrayValidator<E[],E> validateThat(E[] actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <T extends Comparable<? super T>> com.github.cowwoc.requirements.java.ComparableVerifier<T> requireThat(T actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <T extends Comparable<? super T>> com.github.cowwoc.requirements.java.ComparableValidator<T> validateThat(T actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveNumberVerifier<Byte> requireThat(byte actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveNumberValidator<Byte> validateThat(byte actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveNumberVerifier<Short> requireThat(short actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveNumberValidator<Short> validateThat(short actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveIntegerVerifier<Integer> requireThat(int actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveIntegerValidator<Integer> validateThat(int actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.IntegerVerifier<Integer> requireThat(Integer actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.IntegerValidator<Integer> validateThat(Integer actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveIntegerVerifier<Long> requireThat(long actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveIntegerValidator<Long> validateThat(long actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.IntegerVerifier<Long> requireThat(Long actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.IntegerValidator<Long> validateThat(Long actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveFloatingPointVerifier<Float> requireThat(float actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveFloatingPointValidator<Float> validateThat(float actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveFloatingPointVerifier<Double> requireThat(double actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveFloatingPointValidator<Double> validateThat(double actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveBooleanVerifier requireThat(boolean actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveBooleanValidator validateThat(boolean actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PrimitiveCharacterVerifier requireThat(char actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PrimitiveCharacterValidator validateThat(char actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <T extends Number & Comparable<? super T>> com.github.cowwoc.requirements.java.NumberVerifier<T> requireThat(T actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <T extends Number & Comparable<? super T>> com.github.cowwoc.requirements.java.NumberValidator<T> validateThat(T actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.BooleanVerifier requireThat(Boolean actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.BooleanValidator validateThat(Boolean actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.FloatingPointVerifier<Float> requireThat(Float actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.FloatingPointValidator<Float> validateThat(Float actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.FloatingPointVerifier<Double> requireThat(Double actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.FloatingPointValidator<Double> validateThat(Double actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.BigDecimalVerifier requireThat(BigDecimal actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.BigDecimalValidator validateThat(BigDecimal actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <K, V> com.github.cowwoc.requirements.java.MapVerifier<K,V> requireThat(Map<K,V> actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <K, V> com.github.cowwoc.requirements.java.MapValidator<K,V> validateThat(Map<K,V> actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.PathVerifier requireThat(Path actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.PathValidator validateThat(Path actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.StringVerifier requireThat(String actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.StringValidator validateThat(String actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.UriVerifier requireThat(URI actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.UriValidator validateThat(URI actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.UrlVerifier requireThat(URL actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.UrlValidator validateThat(URL actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public <T> com.github.cowwoc.requirements.java.ClassVerifier<T> requireThat(Class<T> actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public <T> com.github.cowwoc.requirements.java.ClassValidator<T> validateThat(Class<T> actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.OptionalVerifier requireThat(Optional<?> actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.OptionalValidator validateThat(Optional<?> actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • requireThat

      public com.github.cowwoc.requirements.java.InetAddressVerifier requireThat(InetAddress actual, String name)
      Specified by:
      requireThat in interface com.github.cowwoc.requirements.java.JavaRequirements
    • validateThat

      public com.github.cowwoc.requirements.java.InetAddressValidator validateThat(InetAddress actual, String name)
      Specified by:
      validateThat in interface com.github.cowwoc.requirements.java.JavaRequirements