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:
Immutable, ImmutablePropertyHandler
  • Optional Element Summary

    Optional Elements
    Modifier and Type Optional Element Description
    Class[] knownImmutableClasses
    Allows you to provide @Immutable with a list of classes which are deemed immutable.
    String[] knownImmutables
    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:
      {}