Package groovy.transform.options

# Class ImmutablePropertyHandler

java.lang.Object
groovy.transform.options.PropertyHandler
groovy.transform.options.ImmutablePropertyHandler

Direct Known Subclasses:
  `LegacyHashMapPropertyHandler`

    public class ImmutablePropertyHandler
    extends PropertyHandler

- ## Field Summary

  ### Fields inherited from class groovy.transform.options.PropertyHandler

  `PROPERTY_OPTIONS_TYPE`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ImmutablePropertyHandler()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `protected Statement` | `checkFinalArgNotOverridden​(ClassNode cNode, FieldNode fNode)` |
  `protected Expression` | `cloneCollectionExpr​(Expression fieldExpr, ClassNode type)` |
  `protected Expression` | `createAsImmutableX​(Expression expr, ClassNode type)` |
  `protected Statement` | `createConstructorStatement​(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, boolean namedArgs)` | Deprecated.
  `protected Statement` | `createConstructorStatement​(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)` |
  `Statement` | `createPropGetter​(PropertyNode pNode)` | Create the getter block used when reading the property including any defensive copying.
  `Statement` | `createPropInit​(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)` | Create a statement that will initialize the property including any defensive copying.
  `Statement` | `createPropSetter​(PropertyNode pNode)` | Create the setter block used when setting the property.
  `boolean` | `validateAttributes​(AbstractASTTransformation xform, AnnotationNode anno)` |
  `boolean` | `validateProperties​(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props)` |

  ### Methods inherited from class groovy.transform.options.PropertyHandler

  `createPropertyHandler, isValidAttribute`

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

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

- ## Constructor Details

  - ### ImmutablePropertyHandler

    public ImmutablePropertyHandler()

- ## Method Details

  - ### createPropGetter

    public Statement createPropGetter​(PropertyNode pNode)
    Description copied from class: `PropertyHandler`
    Create the getter block used when reading the property including any defensive copying.
    Overrides:
      `createPropGetter` in class `PropertyHandler`
    Parameters:
      `pNode` - the property node

  - ### createPropSetter

    public Statement createPropSetter​(PropertyNode pNode)
    Description copied from class: `PropertyHandler`
    Create the setter block used when setting the property. Can be null for read-only properties.
    Overrides:
      `createPropSetter` in class `PropertyHandler`
    Parameters:
      `pNode` - the property node

  - ### validateAttributes

    public boolean validateAttributes​(AbstractASTTransformation xform, AnnotationNode anno)
    Specified by:
      `validateAttributes` in class `PropertyHandler`

  - ### validateProperties

    public boolean validateProperties​(AbstractASTTransformation xform, BlockStatement body, ClassNode cNode, List<PropertyNode> props)
    Overrides:
      `validateProperties` in class `PropertyHandler`

  - ### createPropInit

    public Statement createPropInit​(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)
    Description copied from class: `PropertyHandler`
    Create a statement that will initialize the property including any defensive copying. Null if no statement should be added.
    Specified by:
      `createPropInit` in class `PropertyHandler`
    Parameters:
      `xform` - the transform being processed
      `anno` - the '@ImmutableBase' annotation node
      `cNode` - the classnode containing the property
      `pNode` - the property node to initialize
      `namedArgsMap` - an "args" Map if the property value should come from a named arg map or null if not

  - ### cloneCollectionExpr

    protected Expression cloneCollectionExpr​(Expression fieldExpr, ClassNode type)

  - ### createAsImmutableX

    protected Expression createAsImmutableX​(Expression expr, ClassNode type)

  - ### createConstructorStatement

    @Deprecated protected Statement createConstructorStatement​(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, boolean namedArgs)
    Deprecated.

  - ### createConstructorStatement

    protected Statement createConstructorStatement​(AbstractASTTransformation xform, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap)

  - ### checkFinalArgNotOverridden

    protected Statement checkFinalArgNotOverridden​(ClassNode cNode, FieldNode fNode)