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 JsSpecany()spec that is conformed by any valuestatic JsSpecReturns a specification that accepts any JSON value for which the given predicate evaluates to true.static JsArraySpecarray()non-nullable array specstatic JsArraySpecReturns a specification for a non-nullable array, where each element of the array satisfies the given predicate.static JsArraySpecnon-nullable array of integral numbers specstatic JsArraySpecarrayOfBigInt(int minLength, int maxLength) Returns a specification for an array of big integers with a specified minimum and maximum length.static JsArraySpecarrayOfBigInt(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 JsArraySpecarrayOfBigInt(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 JsArraySpecarrayOfBigIntSuchThat(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 JsArraySpecnon-nullable array of booleans specstatic JsArraySpecarrayOfBool(int minLength, int maxLength) Returns a specification for an array of booleans with a specified minimum and maximum length.static JsArraySpecarrayOfBoolSuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of booleans that satisfies the given predicate.static JsArraySpecnon-nullable array of decimal numbers specstatic JsArraySpecarrayOfDec(int minLength, int maxLength) Returns a specification for an array of decimal numbers with a specified minimum and maximum length.static JsArraySpecarrayOfDec(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 JsArraySpecarrayOfDec(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 JsArraySpecarrayOfDecSuchThat(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 JsArraySpecnon-nullable array of double numbers specstatic JsArraySpecarrayOfDouble(int minLength, int maxLength) Returns a specification for an array of double with a specified minimum and maximum length.static JsArraySpecarrayOfDouble(DoublePredicate predicate, int minLength, int maxLength) static JsArraySpecarrayOfDouble(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 JsArraySpecarrayOfDoubleSuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of double that satisfies the given predicate.static JsArraySpecnon-nullable array of integer numbers specstatic JsArraySpecarrayOfInt(int minLength, int maxLength) Returns a specification for an array of integers with a specified minimum and maximum length.static JsArraySpecarrayOfInt(IntPredicate predicate) Returns a specification for a non-nullable array of integer numbers, where each element of the array satisfies the given predicate.static JsArraySpecarrayOfInt(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 JsArraySpecarrayOfIntSuchThat(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 JsArraySpecnon-nullable array of long numbers specstatic JsArraySpecarrayOfLong(int minLength, int maxLength) Returns a specification for an array of long numbers with a specified minimum and maximum length.static JsArraySpecarrayOfLong(LongPredicate predicate) Returns a specification for a non-nullable array of long numbers, where each element of the array satisfies the given predicate.static JsArraySpecarrayOfLong(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 JsArraySpecarrayOfLongSuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of long numbers that satisfies the given predicate.static JsArraySpecnon-nullable array of objects specstatic JsArraySpecarrayOfObj(int minLength, int maxLength) Returns a specification for an array of objects with a specified minimum and maximum length.static JsArraySpecarrayOfObj(Predicate<JsObj> predicate) Returns a specification for a non-nullable array of objects, where each element of the array satisfies the given predicate.static JsArraySpecarrayOfObj(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 JsArraySpecarrayOfObjSuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of objects that satisfies the given predicate.static JsArraySpecarrayOfSpec(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 JsArraySpecarrayOfSpec(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 JsArraySpecnon-nullable array of strings specstatic JsArraySpecarrayOfStr(int minLength, int maxLength) Returns a specification for an array of strings with a specified minimum and maximum length.static JsArraySpecarrayOfStr(Predicate<String> predicate) Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.static JsArraySpecarrayOfStr(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 JsArraySpecarrayOfStrSuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array of strings, where each element of the array satisfies the given predicate.static JsArraySpecarraySuchThat(Predicate<JsArray> predicate) Returns a specification for a non-nullable array that satisfies the given predicate.static JsSpecnon-nullable integral numberstatic JsSpecbigInteger(Predicate<BigInteger> predicate) Returns a specification for a non-nullable integral number that satisfies the given predicate.static JsSpecbinary()non-nullable binary specstatic JsSpecReturns a specification for a non-nullable JSON binary data that satisfies the given predicate.static JsSpecbool()non-nullable booleanstatic JsSpecReturns a required and non-nullable specification that specifies a constant value.static JsSpecdecimal()non-nullable decimal numberstatic JsSpecdecimal(Predicate<BigDecimal> predicate) Returns a specification for a non-nullable decimal number that satisfies the given predicate.static JsSpecnon-nullable long numberstatic JsSpecdoubleNumber(DoublePredicate predicate) Returns a specification for a non-nullable double number that satisfies the given predicate.static JsSpecfixedBinary(int size) static JsSpecinstant()non-nullable array specstatic JsSpecReturns a specification for a non-nullable JSON instant that satisfies the given predicate.static JsSpecinteger()non-nullable integer numberstatic JsSpecinteger(IntPredicate predicate) Returns a specification for a non-nullable integer number that satisfies the given predicate.static JsSpecnon-nullable long numberstatic JsSpeclongInteger(LongPredicate predicate) Returns a specification for a non-nullable long number that satisfies the given predicate.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a big integer.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a binary.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a boolean.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a decimal number.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a double.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is an instant.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is an integer.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is a long number.static JsSpecReturns a specification that validates that the JSON is an object, and the value of each key is an object.static JsSpecReturns 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 JsSpecmapOfStr()Returns a specification that validates that the JSON is an object, and the value of each key is a string.static JsSpecobj()non-nullable json object specstatic JsSpecReturns a specification for a non-nullable JSON object that satisfies the given predicate.static JsSpecofNamedSpec(String name) Returns a named spec from the cache based on the provided name.static JsSpecofNamedSpec(String name, JsSpec spec) static JsSpecReturns a specification that validates if a JSON value is one of the given possible specifications.static JsSpecReturns a specification that validates if a JSON value is one of the given possible specifications.static JsSpeconeStringOf(String elem, String... others) Returns a specification that validates if a JSON value is one of the given possible symbols.static JsSpeconeStringOf(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 JsSpecstr()non-nullable stringstatic JsSpecstr(int min, int max) Returns a non-nullable string specification that validates strings based on their length within the specified range.static JsSpecReturns a specification for a non-nullable string, where the string satisfies the given predicate.static JsSpecReturns a non-nullable string specification with the specified regular expression pattern.static JsArraySpecReturns 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 theJsObjSpecBuilderand 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:
-
ofNamedSpec
-