Package org.forgerock.json
Class JsonValueFunctions
java.lang.Object
org.forgerock.json.JsonValueFunctions
This class contains the utility functions to convert a
JsonValue
to another type.-
Method Summary
Modifier and TypeMethodDescriptionstatic Function<JsonValue,
byte[], JsonValueException> Returns abyte[]
by converting the JsonValue usingJsonValue.asString()
and thenBase64
-decoding the result.static Function<JsonValue,
byte[], JsonValueException> Returns abyte[]
by converting the JsonValue usingJsonValue.asString()
and thenBase64url
-decoding the result.static Function<JsonValue,
Charset, JsonValueException> charset()
Returns the JSON string value as a character set used for byte encoding/decoding.static Function<JsonValue,
JsonValue, JsonValueException> deepTransformBy
(Function<JsonValue, ?, JsonValueException> function) Returns the JSON value as the result of a deep JsonValue object-traversal, applying the provided transformfunction
to each element.static Function<JsonValue,
Duration, JsonValueException> duration()
Returns the JSON string value as aDuration
.static <T extends Enum<T>>
Function<JsonValue,T, JsonValueException> enumConstant
(Class<T> type) Returns the JSON string value as an enum constant of the specified enum type.static Function<JsonValue,
Instant, JsonValueException> Returns aInstant
by converting the JsonValue into a number and interpreting that as the number of seconds since the UTC epoch as perInstant.ofEpochSecond(long)
.static Function<JsonValue,
File, JsonValueException> file()
Returns the JSON string value as aFile
object.static Function<JsonValue,
JsonValue, JsonValueException> identity()
Deprecated.static Function<JsonValue,
Instant, JsonValueException> instant()
integer()
Returns anInteger
by converting the JsonValue usingJsonValue.asInteger()
, or by parsing the JsonValue string usingInteger.parseInt(String)
.Returns the JSON value as aList
containing objects whose type (and value) is specified by a transformation function.static Function<JsonValue,
Optional<JsonValue>, JsonValueException> optional()
Return anOptional
if the given JsonValue has a value, orOptional.empty()
if the JsonValue contains a null value.static <T> Function<JsonValue,
Optional<T>, JsonValueException> optionalOf
(Function<JsonValue, T, JsonValueException> mappingFunction) Return anOptional
of a new type if the given JsonValue has a value, orOptional.empty()
if the JsonValue contains a null value.static Function<JsonValue,
Boolean, NeverThrowsException> Returns aBoolean
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingBoolean.parseBoolean(String)
.static Function<JsonValue,
Long, NumberFormatException> Returns aLong
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingLong.parseLong(String)
.static Function<JsonValue,
Pattern, JsonValueException> pattern()
Returns the JSON string value as a regular expression pattern.pointer()
Returns the JSON string value as a JSON pointer.static <V> Function<JsonValue,
Set<V>, JsonValueException> Returns the JSON value as aSet
containing objects whose type (and value) is specified by the parametertype
.Returns the JSON value as aSet
containing objects whose type (and value) is specified by a transformation function.static Function<JsonValue,
List<String>, JsonValueException> Return a list of string values from the given JsonValue.static Function<JsonValue,
URI, JsonValueException> uri()
Returns the JSON string value as a uniform resource identifier.static Function<JsonValue,
URL, JsonValueException> url()
Returns the JSON string value as a uniform resource locator.static Function<JsonValue,
UUID, JsonValueException> uuid()
Returns the JSON string value as a universally unique identifier (UUID).
-
Method Details
-
charset
Returns the JSON string value as a character set used for byte encoding/decoding. If the JSON value isnull
, this function returnsnull
.- Returns:
- the character set represented by the string value.
- Throws:
JsonValueException
- if the JSON value is not a string or the character set specified is invalid.
-
duration
- Returns:
- the duration represented by the string value.
- Throws:
JsonValueException
- if the JSON value is not a string or the duration specified is invalid.
-
enumConstant
public static <T extends Enum<T>> Function<JsonValue,T, enumConstantJsonValueException> (Class<T> type) Returns the JSON string value as an enum constant of the specified enum type. The string value and enum constants are compared, ignoring case considerations. If the JSON value isnull
, this method returnsnull
.- Type Parameters:
T
- the enum type sub-class.- Parameters:
type
- the enum type to match constants with the value.- Returns:
- the enum constant represented by the string value.
- Throws:
IllegalArgumentException
- iftype
does not represent an enum type. or if the JSON value does not match any of the enum's constants.NullPointerException
- iftype
isnull
.
-
file
Returns the JSON string value as aFile
object. If the JSON value isnull
, this method returnsnull
.- Returns:
- a file represented by the string value.
- Throws:
JsonValueException
- if the JSON value is not a string.
-
instant
Returns aFunction
to transform aJsonValue
representing a UTC format datetime to anInstant
. The function returns null if the JSON represents a null value and will raise if JSON date is not in UTC format.- Returns:
- a function that will create an
Instant
representation of a JSON UTC date
-
pattern
Returns the JSON string value as a regular expression pattern. If the JSON value isnull
, this method returnsnull
.- Returns:
- the compiled regular expression pattern.
- Throws:
JsonValueException
- if the pattern is not a string or the value is not a valid regular expression pattern.
-
pointer
Returns the JSON string value as a JSON pointer. If the JSON value isnull
, this method returnsnull
.- Returns:
- the JSON pointer represented by the JSON value string.
- Throws:
JsonValueException
- if the JSON value is not a string or valid JSON pointer.
-
uri
Returns the JSON string value as a uniform resource identifier. If the JSON value isnull
, this method returnsnull
.- Returns:
- the URI represented by the string value.
- Throws:
JsonValueException
- if the given string violates URI syntax.
-
url
Returns the JSON string value as a uniform resource locator. If the JSON value isnull
, this method returnsnull
.- Returns:
- the URL represented by the string value.
- Throws:
JsonValueException
- if the given string violates URL syntax.
-
uuid
Returns the JSON string value as a universally unique identifier (UUID). If the JSON value isnull
, this method returnsnull
.- Returns:
- the UUID represented by the JSON value string.
- Throws:
JsonValueException
- if the JSON value is not a string or valid UUID.
-
listOf
public static <V,E extends Exception> Function<JsonValue,List<V>, listOfE> (Function<JsonValue, V, E> transformFunction) Returns the JSON value as aList
containing objects whose type (and value) is specified by a transformation function. If the value isnull
, this method returnsnull
. It is up to the transformation function to transform/enforce source types of the elements in the Json source collection. If any of the elements of the list are not of the appropriate type, or the type-transformation cannot occur, the exception specified by the transformation function is thrown.- Type Parameters:
V
- the type of elements in this listE
- the type of exception thrown by the transformation function- Parameters:
transformFunction
- aFunction
to transform an element of the JsonValue list to the desired type- Returns:
- the list value, or
null
if no value. - Throws:
NullPointerException
- iftransformFunction
isnull
.
-
setOf
public static <V,E extends Exception> Function<JsonValue,Set<V>, setOfE> (Function<JsonValue, V, E> transformFunction) Returns the JSON value as aSet
containing objects whose type (and value) is specified by a transformation function. If the value isnull
, this method returnsnull
. It is up to the transformation function to transform/enforce source types of the elements in the Json source collection. If called on an object which wraps a List, this method will drop duplicates performing element comparisons using equals/hashCode. If any of the elements of the collection are not of the appropriate type, or the type-transformation cannot occur, the exception specified by the transformation function is thrown.- Type Parameters:
V
- the type of elements in this setE
- the type of exception thrown by the transformation function- Parameters:
transformFunction
- aFunction
to transform an element of the JsonValue set to the desired type- Returns:
- the set value, or
null
if no value. - Throws:
NullPointerException
- iftransformFunction
isnull
.
-
setOf
Returns the JSON value as aSet
containing objects whose type (and value) is specified by the parametertype
. If the value isnull
, this method returnsnull
. If called on an object which wraps a List, this method will drop duplicates performing element comparisons using equals/hashCode. If any of the elements of the collection are not of the appropriate type, or the type-transformation cannot occur,JsonValueException
is thrown.- Type Parameters:
V
- the type of elements in this set- Parameters:
type
- aClass
that specifies the desired type of each element in the resultant JsonValue set- Returns:
- the set value, or
null
if no value. - Throws:
NullPointerException
- iftype
isnull
.JsonValueException
- if the elements of the collection cannot be cast astype
.
-
deepTransformBy
public static Function<JsonValue,JsonValue, deepTransformByJsonValueException> (Function<JsonValue, ?, JsonValueException> function) Returns the JSON value as the result of a deep JsonValue object-traversal, applying the provided transformfunction
to each element.- Parameters:
function
- aFunction
that applies the desired element transformation in the resultant JsonValue set- Returns:
- the transformed JsonValue
- Throws:
JsonValueException
- if the elements of the JsonValue cannot be transformed byfunction
.
-
identity
Deprecated.useJsonValue::copy
directly insteadReturns an identity function that will copy the inputJsonValue
.- Returns:
- an identity function that will copy the input
JsonValue
. - Throws:
JsonValueException
- if an error occurred while copying the input.
-
integer
Returns anInteger
by converting the JsonValue usingJsonValue.asInteger()
, or by parsing the JsonValue string usingInteger.parseInt(String)
.- Returns:
- an integer
- Throws:
NumberFormatException
- if unable to parse the JsonValue as anInteger
-
parseLong
Returns aLong
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingLong.parseLong(String)
.- Returns:
- a
Long
- Throws:
NumberFormatException
- if unable to parse the JsonValue as anLong
-
parseBoolean
Returns aBoolean
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingBoolean.parseBoolean(String)
.- Returns:
- a
Boolean
-
base64urlBinary
Returns abyte[]
by converting the JsonValue usingJsonValue.asString()
and thenBase64url
-decoding the result.- Returns:
- the base64url-decoded data, or
null
if the JsonValue is null.
-
base64Binary
Returns abyte[]
by converting the JsonValue usingJsonValue.asString()
and thenBase64
-decoding the result.- Returns:
- the base64-decoded data, or
null
if the JsonValue is null.
-
epochSecondsInstant
Returns aInstant
by converting the JsonValue into a number and interpreting that as the number of seconds since the UTC epoch as perInstant.ofEpochSecond(long)
.- Returns:
- the decoded
Instant
, ornull
if the JsonValue is null.
-
stringOrListOfStrings
Return a list of string values from the given JsonValue. If the JsonValue is a list of strings then they are returned, otherwise the JsonValue is assumed to be a string and returned as a list of one element. In either case, the returned list is immutable.- Returns:
- the list of strings from the given JsonValue, or
null
if the JsonValue is null.
-
optional
Return anOptional
if the given JsonValue has a value, orOptional.empty()
if the JsonValue contains a null value.- Returns:
- an Optional of the JsonValue
-
optionalOf
public static <T> Function<JsonValue,Optional<T>, optionalOfJsonValueException> (Function<JsonValue, T, JsonValueException> mappingFunction) Return anOptional
of a new type if the given JsonValue has a value, orOptional.empty()
if the JsonValue contains a null value.- Type Parameters:
T
- the expected result type- Parameters:
mappingFunction
- a mapping function to convert the object in the JsonValue to a new type- Returns:
- an Optional of the given
mappingFunction
value
-
JsonValue::copy
directly instead