Package org.apache.groovy.contracts.ast

# Class GContractsASTTransformation

java.lang.Object
org.apache.groovy.contracts.ast.BaseASTTransformation
org.apache.groovy.contracts.ast.GContractsASTTransformation

All Implemented Interfaces:
  `ASTTransformation`

public class GContractsASTTransformation extends BaseASTTransformation

Custom AST transformation that removes closure annotations of `Invariant`, `Requires` and `Ensures` and adds Java assertions executing the closure-code.

Whenever an assertion is broken an `AssertionViolation` descendant class will be thrown.

See Also:
  - `PreconditionViolation`
  - `PostconditionViolation`
  - `ClassInvariantViolation`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GContractsASTTransformation()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `visit(ASTNode[] nodes, SourceUnit unit)`
  `ASTTransformation.visit(org.codehaus.groovy.ast.ASTNode[], org.codehaus.groovy.control.SourceUnit)`

  ### Methods inherited from class org.apache.groovy.contracts.ast.BaseASTTransformation

  `getReaderSource`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### GContractsASTTransformation

    public GContractsASTTransformation()

- ## Method Details

  - ### visit

    public void visit(ASTNode[] nodes, SourceUnit unit)
    `ASTTransformation.visit(org.codehaus.groovy.ast.ASTNode[], org.codehaus.groovy.control.SourceUnit)`
    Parameters:
      `nodes` - The ASTnodes when the call was triggered. Element 0 is the AnnotationNode that triggered this annotation to be activated. Element 1 is the AnnotatedNode decorated, such as a MethodNode or ClassNode. For global transformations it is usually safe to ignore this parameter.
      `unit` - The source unit being compiled. The source unit may contain several classes. For global transformations, information about the AST can be retrieved from this object.