Package org.forgerock.json
Class JsonValueFunctions
- java.lang.Object
-
- org.forgerock.json.JsonValueFunctions
-
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static Function<JsonValue,byte[],JsonValueException>
base64Binary()
Returns abyte[]
by converting the JsonValue usingJsonValue.asString()
and thenBase64
-decoding the result.static Function<JsonValue,byte[],JsonValueException>
base64urlBinary()
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>
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)
.static Function<JsonValue,File,JsonValueException>
file()
Returns the JSON string value as aFile
object.static Function<JsonValue,JsonValue,JsonValueException>
identity()
Deprecated.useJsonValue::copy
directly insteadstatic Function<JsonValue,Instant,JsonValueException>
instant()
static Function<JsonValue,Integer,NumberFormatException>
integer()
Returns anInteger
by converting the JsonValue usingJsonValue.asInteger()
, or by parsing the JsonValue string usingInteger.parseInt(String)
.static <V,E extends Exception>
Function<JsonValue,List<V>,E>listOf(Function<JsonValue,V,E> transformFunction)
Returns the JSON value as aList
containing objects whose type (and value) is specified by a transformation function.static Function<JsonValue,Boolean,NeverThrowsException>
parseBoolean()
Returns aBoolean
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingBoolean.parseBoolean(String)
.static Function<JsonValue,Long,NumberFormatException>
parseLong()
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.static Function<JsonValue,JsonPointer,JsonValueException>
pointer()
Returns the JSON string value as a JSON pointer.static <V> Function<JsonValue,Set<V>,JsonValueException>
setOf(Class<V> type)
Returns the JSON value as aSet
containing objects whose type (and value) is specified by the parametertype
.static <V,E extends Exception>
Function<JsonValue,Set<V>,E>setOf(Function<JsonValue,V,E> transformFunction)
Returns the JSON value as aSet
containing objects whose type (and value) is specified by a transformation function.static Function<JsonValue,List<String>,JsonValueException>
stringOrListOfStrings()
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 Detail
-
charset
public static Function<JsonValue,Charset,JsonValueException> 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
public static Function<JsonValue,Duration,JsonValueException> 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,JsonValueException> enumConstant(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
public static Function<JsonValue,File,JsonValueException> 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
public static Function<JsonValue,Instant,JsonValueException> 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
public static Function<JsonValue,Pattern,JsonValueException> 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
public static Function<JsonValue,JsonPointer,JsonValueException> 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
public static Function<JsonValue,URI,JsonValueException> 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
public static Function<JsonValue,URL,JsonValueException> 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
public static Function<JsonValue,UUID,JsonValueException> 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>,E> listOf(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>,E> setOf(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
public static <V> Function<JsonValue,Set<V>,JsonValueException> setOf(Class<V> type)
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,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.- 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 public static Function<JsonValue,JsonValue,JsonValueException> 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
public static Function<JsonValue,Integer,NumberFormatException> 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
public static Function<JsonValue,Long,NumberFormatException> 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
public static Function<JsonValue,Boolean,NeverThrowsException> parseBoolean()
Returns aBoolean
by converting the JsonValue usingJsonValue.asLong()
, or by parsing the JsonValue string usingBoolean.parseBoolean(String)
.- Returns:
- a
Boolean
-
base64urlBinary
public static Function<JsonValue,byte[],JsonValueException> 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
public static Function<JsonValue,byte[],JsonValueException> 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
public static Function<JsonValue,Instant,JsonValueException> 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
public static Function<JsonValue,List<String>,JsonValueException> 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.
-
-