Annotation Type ImmutableOptions


@Documented @Retention(SOURCE) @Target(TYPE) public @interface ImmutableOptions
Class annotation used to assist in the creation of immutable classes. Defines any known immutable properties (or fields) or known immutable classes.
Since:
2.5.0
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Allows you to provide @Immutable with a list of classes which are deemed immutable.
    Allows you to provide @Immutable with a list of property names which are deemed immutable.
  • Element Details

    • knownImmutableClasses

      Class[] knownImmutableClasses
      Allows you to provide @Immutable with a list of classes which are deemed immutable. By supplying a class in this list, you are vouching for its immutability and @Immutable will do no further checks. Example:
      import groovy.transform.*
      @Immutable(knownImmutableClasses = [Address])
      class Person {
          String first, last
          Address address
      }
      
      @TupleConstructor
      class Address {
          final String street
      }
      
      Default:
      {}
    • knownImmutables

      String[] knownImmutables
      Allows you to provide @Immutable with a list of property names which are deemed immutable. By supplying a property's name in this list, you are vouching for its immutability and @Immutable will do no further checks. Example:
      @groovy.transform.Immutable(knownImmutables = ['address'])
      class Person {
          String first, last
          Address address
      }
      ...
      
      Default:
      {}