Package io.vertx.core.json.pointer
Interface JsonPointer
-
public interface JsonPointer
Implementation of RFC6901 Json Pointers.- Author:
- Francesco Guardiani @slinkydeveloper
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description JsonPointer
append(int index)
Append theindex
as reference token to JsonPointerJsonPointer
append(JsonPointer pointer)
Append all tokens ofpointer
to this pointer
Note: The base URI of this pointer will remain untouchedJsonPointer
append(String token)
Append an unescapedtoken
to this pointer
Note: If you provide escaped path the behaviour is undefinedJsonPointer
append(List<String> tokens)
Append an unescaped list oftokens
to JsonPointer
Note: If you provide escaped paths the behaviour is undefinedJsonPointer
copy()
Copy a JsonPointerstatic JsonPointer
create()
Build an empty JsonPointerstatic JsonPointer
from(String pointer)
Build a JsonPointer from a json pointer stringstatic JsonPointer
fromURI(URI uri)
Build a JsonPointer from a URI.URI
getURIWithoutFragment()
Return the underlying URI without the fragmentboolean
isLocalPointer()
Returntrue
if the pointer is local (URI with only fragment)boolean
isParent(JsonPointer child)
Returntrue
if this pointer is a parent pointer ofchild
.boolean
isRootPointer()
Returntrue
if the pointer is a root pointerJsonPointer
parent()
Remove last reference token of this pointerdefault Object
query(Object objectToQuery, JsonPointerIterator iterator)
QueryobjectToQuery
using the providedJsonPointerIterator
.default Object
queryJson(Object jsonElement)
QueryjsonElement
.default Object
queryJsonOrDefault(Object jsonElement, Object defaultValue)
QueryjsonElement
.Object
queryOrDefault(Object objectToQuery, JsonPointerIterator iterator, Object defaultValue)
QueryobjectToQuery
using the providedJsonPointerIterator
.String
toString()
Build a string representation of the JSON PointerURI
toURI()
Build a URI representation of the JSON PointerList<Object>
tracedQuery(Object objectToQuery, JsonPointerIterator iterator)
QueryobjectToQuery
tracing each element walked during the query, including the first and the result (if any).
The first element of the list is objectToQuery and the last is the result, or the element before the first null was encounteredObject
write(Object objectToWrite, JsonPointerIterator iterator, Object newElement, boolean createOnMissing)
WritenewElement
inobjectToWrite
using this pointer.default Object
writeJson(Object jsonElement, Object newElement)
WritenewElement
injsonElement
using this pointer.default Object
writeJson(Object jsonElement, Object newElement, boolean createOnMissing)
WritenewElement
injsonElement
using this pointer.
-
-
-
Method Detail
-
isRootPointer
boolean isRootPointer()
Returntrue
if the pointer is a root pointer
-
isLocalPointer
boolean isLocalPointer()
Returntrue
if the pointer is local (URI with only fragment)
-
isParent
boolean isParent(JsonPointer child)
Returntrue
if this pointer is a parent pointer ofchild
.
For instance"/properties"
pointer is parent pointer of"/properties/parent"
- Parameters:
child
-
-
toString
String toString()
Build a string representation of the JSON Pointer
-
toURI
URI toURI()
Build a URI representation of the JSON Pointer
-
getURIWithoutFragment
URI getURIWithoutFragment()
Return the underlying URI without the fragment
-
append
JsonPointer append(String token)
Append an unescapedtoken
to this pointer
Note: If you provide escaped path the behaviour is undefined- Parameters:
token
- the unescaped reference token- Returns:
- a reference to this, so the API can be used fluently
-
append
JsonPointer append(int index)
Append theindex
as reference token to JsonPointer- Parameters:
index
-- Returns:
- a reference to this, so the API can be used fluently
-
append
JsonPointer append(List<String> tokens)
Append an unescaped list oftokens
to JsonPointer
Note: If you provide escaped paths the behaviour is undefined- Parameters:
tokens
- unescaped reference tokens- Returns:
- a reference to this, so the API can be used fluently
-
append
JsonPointer append(JsonPointer pointer)
Append all tokens ofpointer
to this pointer
Note: The base URI of this pointer will remain untouched- Parameters:
pointer
- other pointer- Returns:
- a reference to this, so the API can be used fluently
-
parent
JsonPointer parent()
Remove last reference token of this pointer- Returns:
- a reference to this, so the API can be used fluently
-
query
default Object query(Object objectToQuery, JsonPointerIterator iterator)
QueryobjectToQuery
using the providedJsonPointerIterator
.
If you need to query Vert.x json data structures, usequeryJson(Object)
Note: if this pointer is a root pointer, this function returns the provided object- Parameters:
objectToQuery
- the object to queryiterator
- the json pointer iterator that provides the logic to access to the objectToQuery- Returns:
- null if pointer points to not existing value, otherwise the requested value
-
queryOrDefault
Object queryOrDefault(Object objectToQuery, JsonPointerIterator iterator, Object defaultValue)
QueryobjectToQuery
using the providedJsonPointerIterator
. If the query result is null, returns the default.
If you need to query Vert.x json data structures, usequeryJsonOrDefault(Object, Object)
Note: if this pointer is a root pointer, this function returns the provided object- Parameters:
objectToQuery
- the object to queryiterator
- the json pointer iterator that provides the logic to access to the objectToQuerydefaultValue
- default value if query result is null- Returns:
- null if pointer points to not existing value, otherwise the requested value
-
queryJson
default Object queryJson(Object jsonElement)
QueryjsonElement
.
Note: if this pointer is a root pointer, this function returns the provided json element- Parameters:
jsonElement
- the json element to query- Returns:
- null if pointer points to not existing value, otherwise the requested value
-
queryJsonOrDefault
default Object queryJsonOrDefault(Object jsonElement, Object defaultValue)
QueryjsonElement
. If the query result is null, returns the default.
Note: if this pointer is a root pointer, this function returns the provided object- Parameters:
jsonElement
- the json element to querydefaultValue
- default value if query result is null- Returns:
- null if pointer points to not existing value, otherwise the requested value
-
tracedQuery
List<Object> tracedQuery(Object objectToQuery, JsonPointerIterator iterator)
QueryobjectToQuery
tracing each element walked during the query, including the first and the result (if any).
The first element of the list is objectToQuery and the last is the result, or the element before the first null was encountered- Parameters:
objectToQuery
- the object to queryiterator
- the json pointer iterator that provides the logic to access to the objectToQuery- Returns:
- the stream of walked elements
-
write
Object write(Object objectToWrite, JsonPointerIterator iterator, Object newElement, boolean createOnMissing)
WritenewElement
inobjectToWrite
using this pointer. The path token "-" is handled as append to end of array
If you need to write in Vert.x json data structures, usewriteJson(Object, Object)
(Object)}- Parameters:
objectToWrite
- object to writeiterator
- the json pointer iterator that provides the logic to access to the objectToMutatenewElement
- object to insertcreateOnMissing
- create objects when missing a object key or an array index- Returns:
- a reference to objectToWrite if the write was completed, a reference to newElement if the pointer is a root pointer, null if the write failed
-
writeJson
default Object writeJson(Object jsonElement, Object newElement)
WritenewElement
injsonElement
using this pointer. The path token "-" is handled as append to end of array.- Parameters:
jsonElement
- json element to query and writenewElement
- json to insert- Returns:
- a reference to json if the write was completed, a reference to newElement if the pointer is a root pointer, null if the write failed
-
writeJson
default Object writeJson(Object jsonElement, Object newElement, boolean createOnMissing)
WritenewElement
injsonElement
using this pointer. The path token "-" is handled as append to end of array.- Parameters:
jsonElement
- json to query and writenewElement
- json to insertcreateOnMissing
- create JsonObject when missing a object key or an array index- Returns:
- a reference to json if the write was completed, a reference to newElement if the pointer is a root pointer, null if the write failed
-
copy
JsonPointer copy()
Copy a JsonPointer- Returns:
- a copy of this pointer
-
create
static JsonPointer create()
Build an empty JsonPointer- Returns:
- a new empty JsonPointer
-
from
static JsonPointer from(String pointer)
Build a JsonPointer from a json pointer string- Parameters:
pointer
- the string representing a pointer- Returns:
- new instance of JsonPointer
- Throws:
IllegalArgumentException
- if the pointer provided is not valid
-
fromURI
static JsonPointer fromURI(URI uri)
Build a JsonPointer from a URI.- Parameters:
uri
- uri representing a json pointer- Returns:
- new instance of JsonPointer
- Throws:
IllegalArgumentException
- if the pointer provided is not valid
-
-