# Package org.apache.groovy.contracts.ast.visitor

package org.apache.groovy.contracts.ast.visitor
Visitor implementations for AST traversal and manipulation during contract transformation processing.

- Related Packages
  Package
  Description
  org.apache.groovy.contracts.ast
  AST transformations for implementing Design by Contract semantics, including precondition, postcondition, and invariant validation transformations.
- Class
  Description
  AnnotationClosureVisitor
  Visits interfaces & classes and looks for `@Requires` or `@Ensures` and creates `Closure` classes for the annotation closures.
  AnnotationContractParameterVisitor
  This `BaseVisitor` walks up the class hierarchy for the given `ClassNode` and adds `ContractElement` annotations to method parameters.
  AnnotationProcessorVisitor
  Visits annotations of meta-type `ContractElement` and applies the AST transformations of the underlying `AnnotationProcessor` implementation.
  ASTNodeMetaData
  Holds all constants to be used as AST node metadata keys.
  BaseVisitor
  Base class for `ClassCodeVisitorSupport` descendants.
  ConfigurationSetup
  Makes some initialization in order to use the `Configurator` for determining which assertions in what packages will be executed.
  ContractElementVisitor
  Checks whether the given `ClassNode` is relevant for further processing.
  DomainModelInjectionVisitor
  Visits the given `ClassNode` and injects the current `Contract` into the given AST nodes.
  DynamicSetterInjectionVisitor
  Implements contract support for setter methods and default constructors of POGOs.
  LifecycleAfterTransformationVisitor
  AST transformation visitor which is triggered after applying `AnnotationProcessor` related transformations.
  LifecycleBeforeTransformationVisitor
  AST transformation visitor which is triggered before applying `AnnotationProcessor` related transformations.