# 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.

- Related Packages
  Package
  Description
  org.apache.groovy.contracts.ast
  AST transformations for implementing Design by Contract semantics, including precondition, postcondition, and invariant validation transformations.
  org.apache.groovy.contracts.domain
  Domain model classes representing contract elements such as preconditions, postconditions, and class invariants.
  org.apache.groovy.contracts.generation
  Code generation and transformation utilities for producing runtime contract validation code.
  org.apache.groovy.contracts.util
  Utility functions and helper classes for contract processing and validation.
- Class
  Description
  AssertionViolation
  Abstract base class for all assertion violations.
  CircularAssertionCallException
  Thrown whenever pre- or post-conditions are called in a cyclic way.
  ClassInvariantViolation
  Thrown whenever a class invariant violation occurs.
  LoopInvariantViolation
  Thrown whenever a loop invariant violation occurs.
  LoopVariantViolation
  Thrown whenever a loop variant (decreases/increases) violation occurs.
  PostconditionViolation
  Thrown whenever a postcondition violation occurs.
  PreconditionViolation
  Thrown whenever a precondition violation occurs.
  ViolationTracker
  A violation tracker is used to keep a list of pre-, post-condition or class-invariant violations in chronological order.