Package: groovy.transform

## [Java] Annotation Type ExternalizeVerifier

- groovy.transform.ExternalizeVerifier

- Class annotation used to assist in the creation of `Externalizable` classes. The `@ExternalizeVerifier` annotation instructs the compiler to check that a class has `writeExternal()` and `readExternal()` methods, implements the `Externalizable` interface and that each property (and optionally field) is not final and, optionally for non-primitives, has a type which is either `Externalizable` or `Serializable`. Properties or fields marked as `transient` are ignored. This annotation is typically used in conjunction with the `@ExternalizeMethods` annotation but most usually not directly but rather via `@AutoExternalizable` which is a shortcut for both annotations.

- - ### Element Summary

    Optional Element Summary
    Type | Name and Description
    --- | ---
    `boolean` | `checkPropertyTypes` Turns on strict type checking for property (or field) types.
    `String[]` | `excludes` Comma separated list of property names to exclude from externalization verification.
    `boolean` | `includeFields` Include fields as well as properties when verifying externalization properties.

  - ### Inherited Methods Summary

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

- - ### Element Detail

    - #### public boolean checkPropertyTypes

      Turns on strict type checking for property (or field) types. In strict mode, such types must also implement Serializable or Externalizable. If your properties have interface types that don't implement Serializable but all the concrete implementations do, or the type is of a non-Serializable class but the property will be null at runtime, then your instances will still be serializable but you can't turn on strict checking.

      Default:
        false

    - #### public String[] excludes

      Comma separated list of property names to exclude from externalization verification. For convenience, a String with comma separated names can be used in addition to an array (using Groovy's literal list notation) of String values.

      Default:
        {}

    - #### public boolean includeFields

      Include fields as well as properties when verifying externalization properties.

      Default:
        false