Package org.forgerock.json
Class JsonPatch
java.lang.Object
org.forgerock.json.JsonPatch
Processes partial modifications to JSON values.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final JsonPointerPath to the "from" attribute of a patch entry.static final StringInternet media type for the JSON Patch format.static final JsonPointerPath to the "op" attribute of a patch entry.static final JsonPointerPath to the "path" attribute of a patch entry.static final JsonPointerPath to the "value" attribute of a patch entry. -
Method Summary
Modifier and TypeMethodDescriptionstatic JsonValueCompares two JSON values, and produces a JSON Patch value, which contains the operations necessary to modify theoriginalvalue to arrive at thetargetvalue.static booleanCompares two JSON values, and returns whether the two objects are identical.static JsonValueCreates a new JSON value which combines the contents two JSON values.static voidApplies a set of modifications in a JSON patch value to an original value, resulting in the intended target value.static voidpatch(JsonValue original, JsonValue patch, JsonPatchValueTransformer transform) Applies a set of modifications in a JSON patch value to an original value, resulting in the intended target value.
-
Field Details
-
MEDIA_TYPE
Internet media type for the JSON Patch format.- See Also:
-
OP_PTR
Path to the "op" attribute of a patch entry. Required. -
PATH_PTR
Path to the "path" attribute of a patch entry. Required. -
FROM_PTR
Path to the "from" attribute of a patch entry. Required only for "move" and "copy" operations. Ignored for all others. -
VALUE_PTR
Path to the "value" attribute of a patch entry. Required for "add", "replace" and "test" operations; Ignored for all others. This is public to allow for alternate implementations ofJsonPatchValueTransformer.
-
-
Method Details
-
diff
Compares two JSON values, and produces a JSON Patch value, which contains the operations necessary to modify theoriginalvalue to arrive at thetargetvalue.- Parameters:
original- the original value.target- the intended target value.- Returns:
- the resulting JSON Patch value.
- Throws:
NullPointerException- if either oforiginalortargetarenull.
-
merge
Creates a new JSON value which combines the contents two JSON values.If there are any matching pointers in the two JSON values, then the value in
secondoverrides the value in thefirst.- Parameters:
first- the first JSON value.second- the second JSON value.- Returns:
- a new JSON value which combines the contents of
firstandsecond. - Throws:
NullPointerException- if either offirstorsecondarenull.
-
isEqual
Compares two JSON values, and returns whether the two objects are identical. Fails fast in that afalseis returned as soon as a difference is detected.- Parameters:
value- a value.other- another value.- Returns:
- whether the two inputs are equal.
- Throws:
NullPointerException- if either ofvalueorotherarenull.IllegalArgumentException- if theJsonValuecontains non-JSON primitive values.
-
patch
Applies a set of modifications in a JSON patch value to an original value, resulting in the intended target value. In the event of a failure, this method does not revert any modifications applied up to the point of failure.- Parameters:
original- the original value on which to apply the modifications.patch- the JSON Patch value, specifying the modifications to apply to the original value.- Throws:
JsonValueException- if application of the patch failed.
-
patch
Applies a set of modifications in a JSON patch value to an original value, resulting in the intended target value. In the event of a failure, this method does not revert any modifications applied up to the point of failure.- Parameters:
original- the original value on which to apply the modifications.patch- the JSON Patch value, specifying the modifications to apply to the original value.transform- a custom transform used to determine the target value.- Throws:
JsonValueException- if application of the patch failed.
-