Interface RestContext.ContextKind
- All Known Implementing Classes:
RestContext.ContextKind.Child,RestContext.ContextKind.Mixin,RestContext.ContextKind.Root
- Enclosing class:
- RestContext
RestContext — which of the three construction flavors produced it.
Replaces the former boolean mixinContext flag on RestContext.Args with a typed discriminator so the
three flavors are explicit and self-documenting at every call site, and so the MIXIN flavor can
carry the RestContext.ResolvedMixin that produced it (the single home for the host-declared override payload,
consumed at build time when the mixin sub-context resolves its settings).
Mixin vs. child asymmetry (important — do not assume symmetry): a RestContext.ContextKind.Mixin sub-context is
parent-linked to the host and inherits the host's @Rest annotation chain
(RestContext.getRestAnnotationsForProperty(String) walks host→mixin), so @Mixin overrides
layer on top of an inherited chain. A RestContext.ContextKind.Child is isolated (RestContext.HOST_ONLY_PROPERTIES
includes "children"; children retain pre-10.0.0 isolated resolution with
no parent walk). A @Child seed therefore does not override an inherited chain the way a
@Mixin override does — instead, RestContext.computeRawRestAnnotations() injects the seed's synthetic
@Rest at the least-derived slot of the child's own (still fully isolated) annotation chain,
between the child's real @Rest declarations and the synthesized DefaultConfig fallback. This ranks the seed below
everything the child itself declares (so the child's own explicit value wins for child-wins scalars, and
the child's own noInherit cutoff naturally cuts the seed too) but above the framework defaults.
- Since:
- 10.0.0
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordA routed child resource (mounted viaRest.children()/Rest.childrenDefs()); isolated resolution, with an optional host-seeded@Childpayload injected at the least-derived slot of its own annotation chain (see the class javadoc above).static final recordA per-mixin sub-context (composed viaRest.mixins()/Rest.mixinDefs()); inherits the host chain.static final recordA top-level (host) resource, mock context, or servlet-mounted resource. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final RestContext.ContextKindSharedRestContext.ContextKind.Rootsingleton (the common case).
-
Field Details
-
ROOT
SharedRestContext.ContextKind.Rootsingleton (the common case).
-