Class JsonPatch

java.lang.Object
org.forgerock.json.JsonPatch

public final class JsonPatch extends Object
Processes partial modifications to JSON values.
  • Field Details

    • MEDIA_TYPE

      public static final String MEDIA_TYPE
      Internet media type for the JSON Patch format.
      See Also:
    • OP_PTR

      public static final JsonPointer OP_PTR
      Path to the "op" attribute of a patch entry. Required.
    • PATH_PTR

      public static final JsonPointer PATH_PTR
      Path to the "path" attribute of a patch entry. Required.
    • FROM_PTR

      public static final JsonPointer FROM_PTR
      Path to the "from" attribute of a patch entry. Required only for "move" and "copy" operations. Ignored for all others.
    • VALUE_PTR

      public static final JsonPointer 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 of JsonPatchValueTransformer.
  • Method Details

    • diff

      public static JsonValue diff(JsonValue original, JsonValue target)
      Compares two JSON values, and produces a JSON Patch value, which contains the operations necessary to modify the original value to arrive at the target value.
      Parameters:
      original - the original value.
      target - the intended target value.
      Returns:
      the resulting JSON Patch value.
      Throws:
      NullPointerException - if either of original or target are null.
    • isEqual

      public static boolean isEqual(JsonValue value, JsonValue other)
      Compares two JSON values, and returns whether the two objects are identical. Fails fast in that a false is 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 of value or other are null.
      IllegalArgumentException - if the JsonValue contains non-JSON primitive values.
    • patch

      public static void patch(JsonValue original, JsonValue 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

      public static void patch(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. 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.