Package org.glassfish.json
Class JsonPatchImpl
java.lang.Object
org.glassfish.json.JsonPatchImpl
- All Implemented Interfaces:
JsonPatch
This class is an immutable representation of a JSON Patch as specified in
RFC 6902.
A JsonPatch
can be instantiated with Json.createPatch(JsonArray)
by specifying the patch operations in a JSON Patch. Alternately, it
can also be constructed with a JsonPatchBuilder
.
1. Construct a JsonPatch with a JSON Patch.
JsonArray contacts = ... // The target to be patched
JsonArray patch = ... ; // JSON Patch
JsonPatch jsonpatch = Json.createPatch(patch);
JsonArray result = jsonpatch.apply(contacts);
2. Construct a JsonPatch with JsonPatchBuilder.
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 ClassesNested classes/interfaces inherited from interface javax.json.JsonPatch
JsonPatch.Operation
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply
(JsonStructure target) Applies the patch operations to the specifiedtarget
.private JsonStructure
apply
(JsonStructure target, JsonObject operation) Applies a JSON Patch operation to the target.static JsonArray
diff
(JsonStructure source, JsonStructure target) Generates a JSON Patch from the source and targetJsonStructure
.boolean
Compares thisJsonPatchImpl
with another object.private JsonPointer
getPointer
(JsonObject operation, String member) private JsonValue
getValue
(JsonObject operation) int
hashCode()
Returns the hash code value for thisJsonPatchImpl
.private void
missingMember
(String op, String member) Returns theJsonPatch
asJsonArray
.toString()
Returns the JSON Patch text
-
Field Details
-
patch
-
-
Constructor Details
-
JsonPatchImpl
Constructs a JsonPatchImpl- Parameters:
patch
- the JSON Patch
-
-
Method Details
-
equals
Compares thisJsonPatchImpl
with another object. -
hashCode
public int hashCode()Returns the hash code value for thisJsonPatchImpl
. -
toString
Returns the JSON Patch text -
apply
Applies the patch operations to the specifiedtarget
. The target is not modified by the patch.- Specified by:
apply
in interfaceJsonPatch
- Parameters:
target
- the target to apply the patch operations- Returns:
- the transformed target after the patch
- Throws:
JsonException
- if the supplied JSON Patch is malformed or if it contains references to non-existing members
-
toJsonArray
Description copied from interface:JsonPatch
Returns theJsonPatch
asJsonArray
.- Specified by:
toJsonArray
in interfaceJsonPatch
- Returns:
- this
JsonPatch
asJsonArray
-
diff
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
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
-
getValue
-
missingMember
-