Introspection (enum)

The available policies as to how class introspection should process members, supporting methods and callback methods.

Particularly whether to consider or ignore non-public members as contributors to the meta-model (encapsulation). And also whether or not to enforce presence of the Domain.Include annotation on those members.

API

Introspection.java
enum Introspection {
  NOT_SPECIFIED     (1)
  AS_CONFIGURED     (2)
  ENCAPSULATION_ENABLED     (3)
  ANNOTATION_REQUIRED     (4)
  ANNOTATION_OPTIONAL     (5)
  boolean isNotSpecified()
  boolean isAsConfigured()
}
1 NOT_SPECIFIED

Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or super-classes/interfaces).

2 AS_CONFIGURED

Introspection should be handled as per the default introspection policy configured in application.properties .

3 ENCAPSULATION_ENABLED

Introspect public and non-public members.

4 ANNOTATION_REQUIRED

Introspect public members only, while presence of at least one appropriate domain annotation is enforced.

5 ANNOTATION_OPTIONAL

Introspect public members only, while presence of domain annotations is optional.

Members

NOT_SPECIFIED

Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or super-classes/interfaces).

AS_CONFIGURED

Introspection should be handled as per the default introspection policy configured in application.properties .

If not configured, then encapsulation is disabled and presence of the Domain.Include annotation is not enforced.

ENCAPSULATION_ENABLED

Introspect public and non-public members.

All methods intended to be part of the meta-model (whether representing a member or a supporting method) must be annotated. Members using one of Action , Property , Collection , while supporting methods with Domain.Include (usually as a meta-annotation on MemberSupport ). However, the methods can have any visibility, including private.

For mixins (where the mixin class itself is annotated with Action , Property or Collection , then the member method should instead be annotated the same as the supporting methods, Domain.Include or MemberSupport .

ANNOTATION_REQUIRED

Introspect public members only, while presence of at least one appropriate domain annotation is enforced.

All public methods intended to represent members must be annotated (or meta-annotated) with Action , Property or Collection .

Any non-excluded public methods with a supporting method prefix do not need to be annotated and are automatically associated with their corresponding member method. If no corresponding member method can be found, meta-model validation will fail with an 'orphaned member support' method violation.

For mixins (where the mixin class itself is annotated with Action , Property or Collection , then the member method should instead be annotated the same as the supporting methods, Domain.Include or MemberSupport .

ANNOTATION_OPTIONAL

Introspect public members only, while presence of domain annotations is optional.

All public methods are considered as part of the meta-model, unless explicitly excluded using Domain.Exclude (usually as a meta-annotation on Programmatic ).

Any non-excluded public methods with a supporting method prefix do not need to be annotated and are automatically associated with their corresponding member method. If no corresponding member method can be found, meta-model validation will fail with an 'orphaned member support' method violation.