Package com.kazforge.jsonapi.patch
Interface PatchChange
- All Known Implementing Classes:
PatchChange.AttributeChange,PatchChange.RelationshipChange,PatchChange.RelationshipMetaChange,PatchChange.ResourceMetaChange
public sealed interface PatchChange
permits PatchChange.AttributeChange, PatchChange.RelationshipChange, PatchChange.ResourceMetaChange, PatchChange.RelationshipMetaChange
Backend-independent requested change in a
PatchCommand: a supplied mapped attribute,
relationship, or resource-side meta location. The current Jackson adapters populate it through
caller-configured Jackson. Identifier meta (ResourceIdentifier.meta) is not an
independent change variant; applications that need it opt into RelationshipLinkage and it participates only as part of
whole-linkage replacement on PatchChange.RelationshipChange.
Omitted members never appear. Explicit attribute JSON null is value == null on
a present PatchChange.AttributeChange. Relationship NullLinkage is Java null or empty
Optional as the Jackson adapter binder would produce. Resource and relationship meta
changes carry either a converted atomic replacement or, for a recursively traversed object, a
StructuredPatch. Containers remain atomic replacements.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final recordA supplied mapped attribute change.static final recordA supplied mapped relationship linkage replacement.static final recordA supplied relationshipmetachange for a specific mapped relationship.static final recordA supplied resource-sidemetachange. -
Method Summary
Modifier and TypeMethodDescriptionFinal JSON:API member name (including attribute/relationship renames).Logical application-property identity on the annotated DTO (Java field, record component, or JavaBean name).@Nullable Objectvalue()Converted property value;nullmeans explicit null / null linkage, not omission.
-
Method Details
-
jsonapiName
String jsonapiName()Final JSON:API member name (including attribute/relationship renames). -
logicalName
String logicalName()Logical application-property identity on the annotated DTO (Java field, record component, or JavaBean name). Distinct fromjsonapiName(), which is the final JSON:API member name after configured-Jackson external naming applies. This value does not carry the configured-Jackson external property name as a third field; the current adapters translate between the two through caller-configured Jackson. -
value
@Nullable Object value()Converted property value;nullmeans explicit null / null linkage, not omission.
-