Package: org.apache.groovy.contracts.ast

## [Java] Class ModifiesASTTransformation

- org.apache.groovy.contracts.ast.ModifiesASTTransformation

- All Implemented Interfaces and Traits:
    ASTTransformation

      public class ModifiesASTTransformation
      extends Object
      implements ASTTransformation

  Handles Modifies annotations placed on methods. Extracts the declared modification targets (fields and parameters) from the annotation closure and stores them as node metadata on the MethodNode.

  The metadata key is {@value #MODIFIES_FIELDS_KEY} and the value is a `Set<String>` of field/parameter names. Downstream processors (such as `@Ensures` validation) can read this metadata.

  Since:
    6.0.0
  See Also:
    Modifies

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `MODIFIES_FIELDS_KEY` | Node metadata key for the set of modifiable field/parameter names.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `visit(ASTNode[] nodes, SourceUnit source)` Extracts the modifiable targets declared by `@Modifies` and stores them as method metadata.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### public static final String MODIFIES_FIELDS_KEY

      Node metadata key for the set of modifiable field/parameter names.

  - ### Method Detail

    - #### public void visit(ASTNode[] nodes, SourceUnit source)

      Extracts the modifiable targets declared by `@Modifies` and stores them as method metadata.

      Parameters:
        `nodes` - the annotated AST nodes supplied by the compiler
        `source` - the current source unit