Interface PatchPresence<T>

All Known Implementing Classes:
PatchPresence.Omitted, PatchPresence.Present

public sealed interface PatchPresence<T> permits PatchPresence.Omitted<T>, PatchPresence.Present<T>
Backend-independent tri-state presence for a single patchable PATCH DTO member. The current Jackson adapters populate it through caller-configured Jackson conversion.

A patchable attribute or relationship declared as PatchPresence<T> on an annotated PATCH DTO distinguishes three states: the member was omitted from the update document (PatchPresence.Omitted), the member was supplied with a non-null value (value), or the member was supplied with an explicit JSON null / null relationship linkage (PatchPresence.Present with a null value). Present with a null value is present — it is not omission.

The type is deliberately backend-independent and models only presence. It does not own mapping, validation, persistence, or business semantics; applications inspect the tri-state and decide how to apply each member. Because nullable Optional is a distinct concern, PatchPresence<Optional<T>> remains meaningful: an omitted member is PatchPresence.Omitted, while a supplied null becomes Present(Optional.empty()) when that is the inner type's normal conversion result.

Consume the tri-state with exhaustive pattern matching over PatchPresence.Omitted and PatchPresence.Present, or use the isOmitted() convenience.