Class JsSpecs
JSON specifications are essential for parsing and validating JSON data in applications, ensuring that the data adheres to predefined rules before processing or storing it.
This class simplifies the creation of these specifications for various JSON data types, including numbers, strings, arrays, objects, and more.
It provides factory methods for creating specifications for different JSON types, including numbers, strings, arrays, and objects. Additionally, custom validation predicates can be specified to enforce specific constraints on JSON data.
JSON specifications created with this class are immutable and can be reused for validating multiple JSON data instances.
-
Method Summary
Modifier and TypeMethodDescriptionstatic JsSpec
any()
spec that is conformed by any valuestatic JsSpec
Returns a specification that accepts any JSON value for which the given predicate evaluates to true.static JsArraySpec
array()
non-nullable array specstatic JsArraySpec
Returns a specification for a non-nullable array, where each element of the array satisfies the given predicate.static JsArraySpec
non-nullable array of integral numbers specstatic JsArraySpec
arrayOfBigInt
(int minLength, int maxLength) Returns a specification for an array of big integers with a specified minimum and maximum length.static JsArraySpec
arrayOfBigInt
(Predicate<BigInteger> predicate) Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfBigInt
(Predicate<BigInteger> predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfBigIntSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate.static JsArraySpec
non-nullable array of booleans specstatic JsArraySpec
arrayOfBool
(int minLength, int maxLength) Returns a specification for an array of booleans with a specified minimum and maximum length.static JsArraySpec
arrayOfBoolSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of booleans that satisfies the given predicate.static JsArraySpec
non-nullable array of decimal numbers specstatic JsArraySpec
arrayOfDec
(int minLength, int maxLength) Returns a specification for an array of decimal numbers with a specified minimum and maximum length.static JsArraySpec
arrayOfDec
(Predicate<BigDecimal> predicate) Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfDec
(Predicate<BigDecimal> predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfDecSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.static JsArraySpec
non-nullable array of double numbers specstatic JsArraySpec
arrayOfDouble
(int minLength, int maxLength) Returns a specification for an array of double with a specified minimum and maximum length.static JsArraySpec
arrayOfDouble
(DoublePredicate predicate, int minLength, int maxLength) static JsArraySpec
arrayOfDouble
(Predicate<Double> predicate) Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfDoubleSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of double that satisfies the given predicate.static JsArraySpec
non-nullable array of integer numbers specstatic JsArraySpec
arrayOfInt
(int minLength, int maxLength) Returns a specification for an array of integers with a specified minimum and maximum length.static JsArraySpec
arrayOfInt
(IntPredicate predicate) Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfInt
(IntPredicate predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfIntSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.static JsArraySpec
non-nullable array of long numbers specstatic JsArraySpec
arrayOfLong
(int minLength, int maxLength) Returns a specification for an array of long numbers with a specified minimum and maximum length.static JsArraySpec
arrayOfLong
(LongPredicate predicate) Returns a specification for a non-nullable array of long numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfLong
(LongPredicate predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of long numbers, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfLongSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of long numbers that satisfies the given predicate.static JsArraySpec
non-nullable array of objects specstatic JsArraySpec
arrayOfObj
(int minLength, int maxLength) Returns a specification for an array of objects with a specified minimum and maximum length.static JsArraySpec
arrayOfObj
(Predicate<JsObj> predicate) Returns a specification for a non-nullable array of objects, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfObj
(Predicate<JsObj> predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of objects, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfObjSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of objects that satisfies the given predicate.static JsArraySpec
arrayOfSpec
(JsSpec spec) Returns a specification that validates that the JSON is an array, and the value of each element is a value that conforms the given spec.static JsArraySpec
arrayOfSpec
(JsSpec spec, int min, int max) Returns a specification that validates that the JSON is an array within the limits of the specified bounds, and the value of each element is a value that conforms the given spec.static JsArraySpec
non-nullable array of strings specstatic JsArraySpec
arrayOfStr
(int minLength, int maxLength) Returns a specification for an array of strings with a specified minimum and maximum length.static JsArraySpec
arrayOfStr
(Predicate<String> predicate) Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfStr
(Predicate<String> predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.static JsArraySpec
arrayOfStrSuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.static JsArraySpec
arraySuchThat
(Predicate<JsArray> predicate) Returns a specification for a non-nullable array that satisfies the given predicate.static JsSpec
non-nullable integral numberstatic JsSpec
bigInteger
(Predicate<BigInteger> predicate) Returns a specification for a non-nullable integral number that satisfies the given predicate.static JsSpec
binary()
non-nullable binary specstatic JsSpec
Returns a specification for a non-nullable JSON binary data that satisfies the given predicate.static JsSpec
bool()
non-nullable booleanstatic JsSpec
Returns a required and non-nullable specification that specifies a constant value.static JsSpec
decimal()
non-nullable decimal numberstatic JsSpec
decimal
(Predicate<BigDecimal> predicate) Returns a specification for a non-nullable decimal number that satisfies the given predicate.static JsSpec
non-nullable long numberstatic JsSpec
doubleNumber
(DoublePredicate predicate) Returns a specification for a non-nullable double number that satisfies the given predicate.static JsSpec
fixedBinary
(int size) static JsSpec
instant()
non-nullable array specstatic JsSpec
Returns a specification for a non-nullable JSON instant that satisfies the given predicate.static JsSpec
integer()
non-nullable integer numberstatic JsSpec
integer
(IntPredicate predicate) Returns a specification for a non-nullable integer number that satisfies the given predicate.static JsSpec
non-nullable long numberstatic JsSpec
longInteger
(LongPredicate predicate) Returns a specification for a non-nullable long number that satisfies the given predicate.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a big integer.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a binary.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a boolean.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a decimal number.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a double.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is an instant.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is an integer.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a long number.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is an object.static JsSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a value that conforms the given spec.static JsSpec
mapOfStr()
Returns a specification that validates that the JSON is an object, and the value of each key is a string.static JsSpec
obj()
non-nullable json object specstatic JsSpec
Returns a specification for a non-nullable JSON object that satisfies the given predicate.static JsSpec
ofNamedSpec
(String name) Returns a named spec from the cache based on the provided name.static JsSpec
Returns a specification that validates if a JSON value is one of the given possible specifications.static JsSpec
Returns a specification that validates if a JSON value is one of the given possible specifications.static JsSpec
oneStringOf
(String elem, String... others) Returns a specification that validates if a JSON value is one of the given possible symbols.static JsSpec
oneStringOf
(List<String> cons) Returns a specification that validates if a JSON value is one of the given possible symbols.Returns a specification that validates if a JSON value is one of the given possible values.oneValOf
(O elem, O... others) Returns a specification that validates if a JSON value is one of the given possible values.static JsSpec
str()
non-nullable stringstatic JsSpec
str
(int min, int max) Returns a non-nullable string specification that validates strings based on their length within the specified range.static JsSpec
Returns a specification for a non-nullable string, where the string satisfies the given predicate.static JsSpec
Returns a non-nullable string specification with the specified regular expression pattern.static JsArraySpec
Returns a tuple specification where each nth element of the tuple is specified by the nth given spec.
-
Method Details
-
arrayOfDec
non-nullable array of decimal numbers spec- Returns:
- a spec
-
arrayOfBigInt
non-nullable array of integral numbers spec- Returns:
- a spec
-
arrayOfDouble
non-nullable array of double numbers spec- Returns:
- a spec
-
arrayOfObj
non-nullable array of objects spec- Returns:
- a spec
-
arrayOfBool
non-nullable array of booleans spec- Returns:
- a spec
-
instant
non-nullable array spec- Returns:
- a spec
-
arrayOfLong
non-nullable array of long numbers spec- Returns:
- a spec
-
arrayOfInt
non-nullable array of integer numbers spec- Returns:
- a spec
-
arrayOfStr
non-nullable array of strings spec- Returns:
- a spec
-
binary
non-nullable binary spec- Returns:
- a spec
- See Also:
-
fixedBinary
-
bigInteger
non-nullable integral number- Returns:
- a spec
-
longInteger
non-nullable long number- Returns:
- a spec
-
doubleNumber
non-nullable long number- Returns:
- a spec
-
bool
non-nullable boolean- Returns:
- a spec
-
decimal
non-nullable decimal number- Returns:
- a spec
-
integer
non-nullable integer number- Returns:
- a spec
-
obj
non-nullable json object spec- Returns:
- a spec
-
array
non-nullable array spec- Returns:
- a spec
-
any
spec that is conformed by any value- Returns:
- a spec
-
str
non-nullable string- Returns:
- a spec
-
str
Returns a non-nullable string specification that validates strings based on their length within the specified range.- Parameters:
min
- The minimum allowed length for strings (inclusive).max
- The maximum allowed length for strings (inclusive).- Returns:
- A specification for strings that have a length within the specified range.
- Throws:
IllegalArgumentException
- If the provided min is negative, max is non-positive, or min is greater than max.
-
str
Returns a non-nullable string specification with the specified regular expression pattern.- Parameters:
pattern
- The regular expression pattern to match strings against.- Returns:
- A specification for strings that match the given pattern.
- Throws:
NullPointerException
- If the provided pattern is null.
-
arrayOfInt
Returns a specification for an array of integers with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of integers with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfDouble
Returns a specification for an array of double with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of double with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfDouble
-
arrayOfBigInt
Returns a specification for an array of big integers with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of big integers with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfObj
Returns a specification for an array of objects with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of objects with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfDec
Returns a specification for an array of decimal numbers with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of decimal numbers with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfBool
Returns a specification for an array of booleans with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of booleans with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfStr
Returns a specification for an array of strings with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of strings with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfLong
Returns a specification for an array of long numbers with a specified minimum and maximum length.- Parameters:
minLength
- The minimum length of the array (inclusive).maxLength
- The maximum length of the array (inclusive).- Returns:
- A specification for an array of long numbers with the specified length constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
cons
Returns a required and non-nullable specification that specifies a constant value.- Parameters:
value
- The constant value.- Returns:
- A specification that enforces the provided constant value.
-
str
Returns a specification for a non-nullable string, where the string satisfies the given predicate.- Parameters:
predicate
- The predicate that the string must satisfy.- Returns:
- A specification for strings based on the specified predicate.
-
arrayOfIntSuchThat
Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that the entire array must satisfy.- Returns:
- An array specification for integer numbers based on the specified predicate.
-
arrayOfDec
Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each decimal number in the array must satisfy.- Returns:
- An array specification for decimal numbers based on the specified predicate.
-
arrayOfDouble
Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each decimal number in the array must satisfy.- Returns:
- An array specification for decimal numbers based on the specified predicate.
-
arrayOfDec
Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate. The array must have a size within the specified range.- Parameters:
predicate
- The predicate that each decimal number in the array must satisfy.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification for decimal numbers based on the specified predicate and size range.
- Throws:
IllegalArgumentException
- If the maximum length is lower than the minimum length.
-
arrayOfDecSuchThat
Returns a specification for a non-nullable array of decimal numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each decimal number in the array must satisfy.- Returns:
- An array specification for decimal numbers based on the specified predicate.
-
arrayOfBigInt
Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each integral number in the array must satisfy.- Returns:
- An array specification for integral numbers based on the specified predicate.
-
arrayOfBigInt
public static JsArraySpec arrayOfBigInt(Predicate<BigInteger> predicate, int minLength, int maxLength) Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate. The array must have a minimum and maximum size as specified by the parameters.- Parameters:
predicate
- The predicate that each integral number in the array must satisfy.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification for integral numbers based on the specified predicate and size constraints.
- Throws:
IllegalArgumentException
- If the maximum size is lower than the minimum size.
-
arrayOfBigIntSuchThat
Returns a specification for a non-nullable array of integral numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each integral number in the array must satisfy.- Returns:
- An array specification for integral numbers based on the specified predicate.
-
arrayOfObj
Returns a specification for a non-nullable array of objects, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each object in the array must satisfy.- Returns:
- An array specification for objects based on the specified predicate.
-
arrayOfObj
Returns a specification for a non-nullable array of objects, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each object in the array must satisfy.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification for objects based on the specified predicate and size constraints.
- Throws:
IllegalArgumentException
- If the maximum length is less than the minimum length.
-
arrayOfObjSuchThat
Returns a specification for a non-nullable array of objects that satisfies the given predicate.- Parameters:
predicate
- The predicate that the array must satisfy.- Returns:
- An array specification for objects based on the specified predicate.
-
integer
Returns a specification for a non-nullable integer number that satisfies the given predicate.- Parameters:
predicate
- The predicate that the integer must satisfy.- Returns:
- A specification for integer numbers based on the specified predicate.
-
arrayOfStrSuchThat
Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that the array must satisfy.- Returns:
- An array specification for strings based on the specified predicate.
-
array
Returns a specification for a non-nullable array, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each value in the array must satisfy.- Returns:
- An array specification for values based on the specified predicate.
-
arrayOfLong
Returns a specification for a non-nullable array of long numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each long number in the array must satisfy.- Returns:
- An array specification for long numbers based on the specified predicate.
-
arrayOfLong
Returns a specification for a non-nullable array of long numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each long number in the array must satisfy.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification for long numbers based on the specified predicate.
- Throws:
IllegalArgumentException
- If maxLength is less than minLength.
-
arrayOfBoolSuchThat
Returns a specification for a non-nullable array of booleans that satisfies the given predicate.- Parameters:
predicate
- The predicate that the array must satisfy.- Returns:
- An array specification for booleans based on the specified predicate.
-
arrayOfDoubleSuchThat
Returns a specification for a non-nullable array of double that satisfies the given predicate.- Parameters:
predicate
- The predicate that the array must satisfy.- Returns:
- An array specification for double based on the specified predicate.
-
longInteger
Returns a specification for a non-nullable long number that satisfies the given predicate.- Parameters:
predicate
- The predicate that the long number must satisfy.- Returns:
- A specification for long numbers based on the specified predicate.
-
doubleNumber
Returns a specification for a non-nullable double number that satisfies the given predicate.- Parameters:
predicate
- The predicate that the double number must satisfy.- Returns:
- A specification for long numbers based on the specified predicate.
-
decimal
Returns a specification for a non-nullable decimal number that satisfies the given predicate.- Parameters:
predicate
- The predicate that the decimal number must satisfy.- Returns:
- A specification for decimal numbers based on the specified predicate.
-
bigInteger
Returns a specification for a non-nullable integral number that satisfies the given predicate.- Parameters:
predicate
- The predicate that the integral number must satisfy.- Returns:
- A specification for integral numbers based on the specified predicate.
-
arrayOfStr
Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each string in the array must satisfy.- Returns:
- An array specification for strings based on the specified predicate.
-
arrayOfStr
Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate that each string in the array must satisfy.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification for strings based on the specified predicate and size constraints.
- Throws:
IllegalArgumentException
- If maxLength is less than minLength.
-
any
Returns a specification that accepts any JSON value for which the given predicate evaluates to true. When the type is not specified by the spec, positive numbers are parsed as Long by default, which has to be taken into account when defining the condition.- Parameters:
predicate
- The predicate that determines whether a JSON value is accepted.- Returns:
- A specification that validates JSON values based on the specified predicate.
-
binary
Returns a specification for a non-nullable JSON binary data that satisfies the given predicate.- Parameters:
predicate
- The predicate the JSON binary data is tested on.- Returns:
- A specification that enforces the specified condition for JSON binary data.
- See Also:
-
instant
Returns a specification for a non-nullable JSON instant that satisfies the given predicate.- Parameters:
predicate
- The predicate the JSON instant is tested on.- Returns:
- A specification that enforces the specified condition for JSON instants.
-
obj
Returns a specification for a non-nullable JSON object that satisfies the given predicate.- Parameters:
predicate
- The predicate the JSON object is tested on.- Returns:
- A specification that enforces the specified condition for JSON objects.
-
arrayOfLongSuchThat
Returns a specification for a non-nullable array of long numbers that satisfies the given predicate.- Parameters:
predicate
- The predicate the array is tested on.- Returns:
- An array specification that enforces the specified condition for arrays of long numbers.
-
arraySuchThat
Returns a specification for a non-nullable array that satisfies the given predicate.- Parameters:
predicate
- The predicate the array is tested on.- Returns:
- An array specification that enforces the specified condition for arrays.
-
arrayOfInt
Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate each integer number of the array is tested on.- Returns:
- An array specification that enforces the specified condition for integer elements.
-
arrayOfInt
Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.- Parameters:
predicate
- The predicate each integer number of the array is tested on.minLength
- The minimum size of the array (inclusive).maxLength
- The maximum size of the array (inclusive).- Returns:
- An array specification that enforces the specified conditions.
- Throws:
IllegalArgumentException
- If maxLength is less than minLength.
-
tuple
Returns a tuple specification where each nth element of the tuple is specified by the nth given spec.- Parameters:
spec
- The specification for the first element.others
- The specifications for the rest of the elements.- Returns:
- A specification for a tuple that enforces the specified structure.
-
oneValOf
Returns a specification that validates if a JSON value is one of the given possible values.- Type Parameters:
O
- The type of the possible JSON values (subtype of JsValue).- Parameters:
cons
- The list of possible JSON values.- Returns:
- A specification that checks if a JSON value matches one of the provided values.
-
oneValOf
Returns a specification that validates if a JSON value is one of the given possible values.- Type Parameters:
O
- The type of the possible JSON values (subtype of JsValue).- Parameters:
elem
- The first possible JSON value.others
- Additional possible JSON values.- Returns:
- A specification that checks if a JSON value matches one of the provided values.
-
oneSpecOf
Returns a specification that validates if a JSON value is one of the given possible specifications.- Parameters:
specs
- The list of possible JSON specifications.- Returns:
- A specification that checks if a JSON value matches one of the provided specifications.
-
oneSpecOf
Returns a specification that validates if a JSON value is one of the given possible specifications.- Parameters:
elem
- The first possible JSON specification.others
- Additional possible JSON specifications.- Returns:
- A specification that checks if a JSON value matches one of the provided specifications.
-
oneStringOf
Returns a specification that validates if a JSON value is one of the given possible symbols.- Parameters:
cons
- The list of possible JSON values.- Returns:
- A specification that checks if a JSON value matches one of the provided values.
-
oneStringOf
Returns a specification that validates if a JSON value is one of the given possible symbols.- Parameters:
elem
- The first possible symbol value.others
- Additional possible symbol values.- Returns:
- A specification that checks if a JSON value matches one of the provided symbol values.
-
mapOfLong
Returns a specification that validates that the JSON is an object, and the value of each key is a long number.- Returns:
- A JSON specification for objects with long number values.
-
mapOfInteger
Returns a specification that validates that the JSON is an object, and the value of each key is an integer.- Returns:
- A JSON specification for objects with integer values.
-
mapOfBigInteger
Returns a specification that validates that the JSON is an object, and the value of each key is a big integer.- Returns:
- A JSON specification for objects with big integer values.
-
mapOfBinary
Returns a specification that validates that the JSON is an object, and the value of each key is a binary.- Returns:
- A JSON specification for objects with binary values.
-
mapOfDouble
Returns a specification that validates that the JSON is an object, and the value of each key is a double.- Returns:
- A JSON specification for objects with double values.
-
mapOfDecimal
Returns a specification that validates that the JSON is an object, and the value of each key is a decimal number.- Returns:
- A JSON specification for objects with decimal number values.
-
mapOfBool
Returns a specification that validates that the JSON is an object, and the value of each key is a boolean.- Returns:
- A JSON specification for objects with boolean values.
-
mapOfInstant
Returns a specification that validates that the JSON is an object, and the value of each key is an instant.- Returns:
- A JSON specification for objects with instant values.
-
mapOfObj
Returns a specification that validates that the JSON is an object, and the value of each key is an object.- Parameters:
spec
- the spec of the values of the map- Returns:
- A JSON specification for objects with object values.
-
mapOfStr
Returns a specification that validates that the JSON is an object, and the value of each key is a string.- Returns:
- A JSON specification for objects with string values.
-
mapOfSpec
Returns a specification that validates that the JSON is an object, and the value of each key is a value that conforms the given spec.- Parameters:
spec
- the spec of the values- Returns:
- A JSON specification for maps.
-
arrayOfSpec
Returns a specification that validates that the JSON is an array, and the value of each element is a value that conforms the given spec.- Parameters:
spec
- the spec of the elements- Returns:
- A JSON specification for arrays.
-
arrayOfSpec
Returns a specification that validates that the JSON is an array within the limits of the specified bounds, and the value of each element is a value that conforms the given spec.- Parameters:
spec
- the spec of the elementsmin
- the minimum length of the arraymax
- the maximum length of the array- Returns:
- A JSON specification for arrays.
-
ofNamedSpec
Returns a named spec from the cache based on the provided name. Named specs are created using theJsObjSpecBuilder
and are cached for efficient retrieval and use in recursive specifications.Named specs represent reusable specifications that can be referenced in other specs, allowing for the creation of recursive data structures. Example usage:
var spec = JsObjSpecBuilder.withName("person") .build(JsObjSpec.of("name", JsSpecs.str(), "age", JsSpecs.integer(), "father", JsSpecs.ofNamedSpec("person") ) .withOptKeys("father") );
- Parameters:
name
- The name of the named spec to retrieve from the cache.- Returns:
- A named spec with the specified name.
- Throws:
IllegalArgumentException
- If the specified name does not correspond to a cached named spec.- See Also:
-