Package org.apache.groovy.contracts


package org.apache.groovy.contracts
Provides Design by Contract (DbC) support for Groovy classes and methods. This framework allows developers to define preconditions, postconditions, and class invariants using annotations, enabling automatic runtime validation of contract constraints.
  • Class
    Description
    Abstract base class for all assertion violations.
    Thrown whenever pre- or post-conditions are called in a cyclic way.
    Thrown whenever a class invariant violation occurs.
    Thrown whenever a loop invariant violation occurs.
    Thrown whenever a loop variant (decreases/increases) violation occurs.
    Runtime support for a method-level Decreases recursion termination measure.
    Thrown whenever a postcondition violation occurs.
    Thrown whenever a precondition violation occurs.
    Thrown when a method-level Decreases recursion termination measure fails — either a recursive re-entry did not strictly decrease the measure, or the measure became negative (not well-founded).
    Runtime support for checked @ThrowsIf arm-sets (invoked from generated code; not intended to be called by user code).
    Thrown whenever a @ThrowsIf exceptional-contract violation is detected by a checked arm-set: the method returned normally although a must-throw condition held, or threw a matching exception although no arm's condition held (the latter checked only for exhaustive arm-sets).
    Shared runtime support for Decreases termination measures, used by both the loop variant (@Decreases on a loop) and the recursion variant (@Decreases on a method, via MethodVariantSupport).
    A violation tracker is used to keep a list of pre-, post-condition or class-invariant violations in chronological order.