Class JsonPatchBuilderImpl

java.lang.Object
org.glassfish.json.JsonPatchBuilderImpl
All Implemented Interfaces:
JsonPatchBuilder

public final class JsonPatchBuilderImpl extends Object implements JsonPatchBuilder
A builder for constructing a JSON Patch by adding JSON Patch operations incrementally.

The following illustrates the approach.

   JsonPatchBuilder builder = Json.createPatchBuilder();
   JsonPatch patch = builder.add("/John/phones/office", "1234-567")
                            .remove("/Amy/age")
                            .build();
 
The result is equivalent to the following JSON Patch.
 [
    {"op" = "add", "path" = "/John/phones/office", "value" = "1234-567"},
    {"op" = "remove", "path" = "/Amy/age"}
 ] 
Since:
1.1
  • Field Details

  • Constructor Details

    • JsonPatchBuilderImpl

      public JsonPatchBuilderImpl(JsonArray patch)
      Creates a JsonPatchBuilderImpl, starting with the specified JSON Patch
      Parameters:
      patch - the JSON Patch
    • JsonPatchBuilderImpl

      public JsonPatchBuilderImpl()
      Creates JsonPatchBuilderImpl with empty JSON Patch
  • Method Details

    • apply

      public <T extends JsonStructure> T apply(T target)
      A convenience method for new JsonPatchImpl(build()).apply(target). The target is not modified by the patch.
      Type Parameters:
      T - the target type, must be a subtype of JsonStructure
      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
    • add

      public JsonPatchBuilder add(String path, JsonValue value)
      Adds an "add" JSON Patch operation.
      Specified by:
      add in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • add

      public JsonPatchBuilder add(String path, String value)
      Adds an "add" JSON Patch operation
      Specified by:
      add in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • add

      public JsonPatchBuilder add(String path, int value)
      Adds an "add" JSON Patch operation
      Specified by:
      add in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • add

      public JsonPatchBuilder add(String path, boolean value)
      Adds an "add" JSON Patch operation
      Specified by:
      add in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • remove

      public JsonPatchBuilder remove(String path)
      Adds a "remove" JSON Patch operation.
      Specified by:
      remove in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      Returns:
      this JsonPatchBuilder
    • replace

      public JsonPatchBuilder replace(String path, JsonValue value)
      Adds a "replace" JSON Patch operation.
      Specified by:
      replace in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • replace

      public JsonPatchBuilder replace(String path, String value)
      Adds a "replace" JSON Patch operation.
      Specified by:
      replace in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • replace

      public JsonPatchBuilder replace(String path, int value)
      Adds a "replace" JSON Patch operation.
      Specified by:
      replace in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • replace

      public JsonPatchBuilder replace(String path, boolean value)
      Adds a "replace" JSON Patch operation.
      Specified by:
      replace in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • move

      public JsonPatchBuilder move(String path, String from)
      Adds a "move" JSON Patch operation.
      Specified by:
      move in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      from - the "from" member of the operation
      Returns:
      this JsonPatchBuilder
    • copy

      public JsonPatchBuilder copy(String path, String from)
      Adds a "copy" JSON Patch operation.
      Specified by:
      copy in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      from - the "from" member of the operation
      Returns:
      this JsonPatchBuilder
    • test

      public JsonPatchBuilder test(String path, JsonValue value)
      Adds a "test" JSON Patch operation.
      Specified by:
      test in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • test

      public JsonPatchBuilder test(String path, String value)
      Adds a "test" JSON Patch operation.
      Specified by:
      test in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • test

      public JsonPatchBuilder test(String path, int value)
      Adds a "test" JSON Patch operation.
      Specified by:
      test in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • test

      public JsonPatchBuilder test(String path, boolean value)
      Adds a "test" JSON Patch operation.
      Specified by:
      test in interface JsonPatchBuilder
      Parameters:
      path - the "path" member of the operation
      value - the "value" member of the operation
      Returns:
      this JsonPatchBuilder
    • buildAsJsonArray

      public JsonArray buildAsJsonArray()
      Returns the patch operations in a JsonArray
      Returns:
      the patch operations in a JsonArray
    • build

      public JsonPatch build()
      Returns the patch operation in a JsonPatch
      Specified by:
      build in interface JsonPatchBuilder
      Returns:
      the patch operation in a JsonPatch