- java.lang.Object
-
- org.eclipse.parsson.JsonPatchImpl
-
- All Implemented Interfaces:
jakarta.json.JsonPatch
public class JsonPatchImpl extends java.lang.Object implements jakarta.json.JsonPatchThis class is an immutable representation of a JSON Patch as specified in RFC 6902.A
The following illustrates both approaches.JsonPatchcan be instantiated withJson.createPatch(JsonArray)by specifying the patch operations in a JSON Patch. Alternately, it can also be constructed with aJsonPatchBuilder.1. Construct a JsonPatch with a JSON Patch.
2. Construct a JsonPatch with JsonPatchBuilder.JsonArray contacts = ... // The target to be patched JsonArray patch = ... ; // JSON Patch JsonPatch jsonpatch = Json.createPatch(patch); JsonArray result = jsonpatch.apply(contacts);JsonPatchBuilder builder = Json.createPatchBuilder(); JsonArray result = builder.add("/John/phones/office", "1234-567") .remove("/Amy/age") .build() .apply(contacts);- Since:
- 1.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classJsonPatchImpl.DiffGenerator
-
Field Summary
Fields Modifier and Type Field Description private JsonContextjsonContextprivate jakarta.json.JsonArraypatch
-
Constructor Summary
Constructors Constructor Description JsonPatchImpl(jakarta.json.JsonArray patch, JsonContext jsonContext)Constructs a JsonPatchImpl
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description jakarta.json.JsonStructureapply(jakarta.json.JsonStructure target)Applies the patch operations to the specifiedtarget.private jakarta.json.JsonStructureapply(jakarta.json.JsonStructure target, jakarta.json.JsonObject operation)Applies a JSON Patch operation to the target.(package private) static jakarta.json.JsonArraydiff(jakarta.json.JsonStructure source, jakarta.json.JsonStructure target, JsonContext jsonContext)Generates a JSON Patch from the source and targetJsonStructure.booleanequals(java.lang.Object obj)Compares thisJsonPatchImplwith another object.private jakarta.json.JsonPointergetPointer(jakarta.json.JsonObject operation, java.lang.String member)private jakarta.json.JsonValuegetValue(jakarta.json.JsonObject operation)inthashCode()Returns the hash code value for thisJsonPatchImpl.private voidmissingMember(java.lang.String op, java.lang.String member)jakarta.json.JsonArraytoJsonArray()java.lang.StringtoString()Returns the JSON Patch text
-
-
-
Field Detail
-
patch
private final jakarta.json.JsonArray patch
-
jsonContext
private final JsonContext jsonContext
-
-
Constructor Detail
-
JsonPatchImpl
public JsonPatchImpl(jakarta.json.JsonArray patch, JsonContext jsonContext)Constructs a JsonPatchImpl- Parameters:
patch- the JSON Patch
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object obj)
Compares thisJsonPatchImplwith another object.- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- the object to compare thisJsonPatchImplagainst- Returns:
- true if the given object is a
JsonPatchImplwith the same reference tokens as this one, false otherwise.
-
hashCode
public int hashCode()
Returns the hash code value for thisJsonPatchImpl.- Overrides:
hashCodein classjava.lang.Object- Returns:
- the hash code value for this
JsonPatchImplobject
-
toString
public java.lang.String toString()
Returns the JSON Patch text- Overrides:
toStringin classjava.lang.Object- Returns:
- the JSON Patch text
-
apply
public jakarta.json.JsonStructure apply(jakarta.json.JsonStructure target)
Applies the patch operations to the specifiedtarget. The target is not modified by the patch.- Specified by:
applyin interfacejakarta.json.JsonPatch- Parameters:
target- the target to apply the patch operations- Returns:
- the transformed target after the patch
- Throws:
jakarta.json.JsonException- if the supplied JSON Patch is malformed or if it contains references to non-existing members
-
toJsonArray
public jakarta.json.JsonArray toJsonArray()
- Specified by:
toJsonArrayin interfacejakarta.json.JsonPatch
-
diff
static jakarta.json.JsonArray diff(jakarta.json.JsonStructure source, jakarta.json.JsonStructure target, JsonContext jsonContext)Generates a JSON Patch from the source and targetJsonStructure. The generated JSON Patch need not be unique.- Parameters:
source- the sourcetarget- the target, must be the same type as the source- Returns:
- a JSON Patch which when applied to the source, yields the target
-
apply
private jakarta.json.JsonStructure apply(jakarta.json.JsonStructure target, jakarta.json.JsonObject operation)Applies a JSON Patch operation to the target.- Parameters:
target- the target to apply the operationoperation- the JSON Patch operation- Returns:
- the target after the patch
-
getPointer
private jakarta.json.JsonPointer getPointer(jakarta.json.JsonObject operation, java.lang.String member)
-
getValue
private jakarta.json.JsonValue getValue(jakarta.json.JsonObject operation)
-
missingMember
private void missingMember(java.lang.String op, java.lang.String member)
-
-