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
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 |
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.