Interface RestContext.ContextKind

All Known Implementing Classes:
RestContext.ContextKind.Child, RestContext.ContextKind.Mixin, RestContext.ContextKind.Root
Enclosing class:
RestContext

The build-time kind of a 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