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.
 
 -