- java.lang.Object
-
- org.glassfish.json.JsonPatchImpl
-
- All Implemented Interfaces:
JsonPatch
public class JsonPatchImpl extends Object implements JsonPatch
This class is an immutable representation of a JSON Patch as specified in RFC 6902.A
The following illustrates both approaches.JsonPatch
can 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/interfaces inherited from interface jakarta.json.JsonPatch
JsonPatch.Operation
-
-
Constructor Summary
Constructors Constructor Description JsonPatchImpl(JsonArray patch)
Constructs a JsonPatchImpl
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description JsonStructure
apply(JsonStructure target)
Applies the patch operations to the specifiedtarget
.static JsonArray
diff(JsonStructure source, JsonStructure target)
Generates a JSON Patch from the source and targetJsonStructure
.boolean
equals(Object obj)
Compares thisJsonPatchImpl
with another object.int
hashCode()
Returns the hash code value for thisJsonPatchImpl
.JsonArray
toJsonArray()
Returns theJsonPatch
asJsonArray
.String
toString()
Returns the JSON Patch text
-
-
-
Constructor Detail
-
JsonPatchImpl
public JsonPatchImpl(JsonArray patch)
Constructs a JsonPatchImpl- Parameters:
patch
- the JSON Patch
-
-
Method Detail
-
equals
public boolean equals(Object obj)
Compares thisJsonPatchImpl
with another object.
-
hashCode
public int hashCode()
Returns the hash code value for thisJsonPatchImpl
.
-
toString
public String toString()
Returns the JSON Patch text
-
apply
public JsonStructure apply(JsonStructure target)
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
public JsonArray toJsonArray()
Description copied from interface:JsonPatch
Returns theJsonPatch
asJsonArray
.- Specified by:
toJsonArray
in interfaceJsonPatch
- Returns:
- this
JsonPatch
asJsonArray
-
diff
public static JsonArray diff(JsonStructure source, JsonStructure target)
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
-
-