Class JsSpecs


  • public final class JsSpecs
    extends Object
    • Field Detail

      • TRUE

        public static final JsSpec TRUE
        true constant spec
      • FALSE

        public static final JsSpec FALSE
        false constant spec
    • Method Detail

      • arrayOfNumber

        public static JsArraySpec arrayOfNumber()
        non-nullable array of numbers spec
        Returns:
        a spec
      • arrayOfDec

        public static JsArraySpec arrayOfDec()
        non-nullable array of decimal numbers spec
        Returns:
        a spec
      • arrayOfBigInt

        public static JsArraySpec arrayOfBigInt()
        non-nullable array of integral numbers spec
        Returns:
        a spec
      • arrayOfObj

        public static JsArraySpec arrayOfObj()
        non-nullable array of objects spec
        Returns:
        a spec
      • arrayOfBool

        public static JsArraySpec arrayOfBool()
        non-nullable array of booleans spec
        Returns:
        a spec
      • instant

        public static JsSpec instant()
        non-nullable array spec
        Returns:
        a spec
      • arrayOfLong

        public static JsArraySpec arrayOfLong()
        non-nullable array of long numbers spec
        Returns:
        a spec
      • arrayOfInt

        public static JsArraySpec arrayOfInt()
        non-nullable array of integer numbers spec
        Returns:
        a spec
      • arrayOfStr

        public static JsArraySpec arrayOfStr()
        non-nullable array of strings spec
        Returns:
        a spec
      • binary

        public static JsSpec binary()
        non-nullable array spec
        Returns:
        a spec
      • bigInteger

        public static JsSpec bigInteger()
        non-nullable integral number
        Returns:
        a spec
      • longInteger

        public static JsSpec longInteger()
        non-nullable long number
        Returns:
        a spec
      • bool

        public static JsSpec bool()
        non-nullable boolean
        Returns:
        a spec
      • decimal

        public static JsSpec decimal()
        non-nullable decimal number
        Returns:
        a spec
      • integer

        public static JsSpec integer()
        non-nullable integer number
        Returns:
        a spec
      • obj

        public static JsSpec obj()
        non-nullable json object spec
        Returns:
        a spec
      • array

        public static JsArraySpec array()
        non-nullable array spec
        Returns:
        a spec
      • any

        public static JsSpec any()
        spec that is conformed by any value
        Returns:
        a spec
      • str

        public static JsSpec str()
        non-nullable string
        Returns:
        a spec
      • number

        public static JsSpec number()
        non-nullable number
        Returns:
        a spec
      • arrayOfInt

        public static JsArraySpec arrayOfInt​(int minLength,
                                             int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfBigInt

        public static JsArraySpec arrayOfBigInt​(int minLength,
                                                int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfNumber

        public static JsArraySpec arrayOfNumber​(int minLength,
                                                int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfObj

        public static JsArraySpec arrayOfObj​(int minLength,
                                             int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfDec

        public static JsArraySpec arrayOfDec​(int minLength,
                                             int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfBool

        public static JsArraySpec arrayOfBool​(int minLength,
                                              int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfStr

        public static JsArraySpec arrayOfStr​(int minLength,
                                             int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfLong

        public static JsArraySpec arrayOfLong​(int minLength,
                                              int maxLength)
        Parameters:
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • arrayOfObjSpec

        public static JsArraySpec arrayOfObjSpec​(JsObjSpec spec)
        A required and none nullable spec that specifies an array of objects that conform the given spec
        Parameters:
        spec - the given spec that every object in the array has to conform
        Returns:
        a spec
      • arrayOfObjSpec

        public static JsArraySpec arrayOfObjSpec​(JsObjSpec spec,
                                                 int minLength,
                                                 int maxLength)
        A required and none nullable spec that specifies an array of objects that conform the given spec
        Parameters:
        spec - the given spec that every object in the array has to conform
        minLength - minimum length of the array (inclusive)
        maxLength - maximum length of the array (inclusive)
        Returns:
        a spec
      • cons

        public static JsSpec cons​(JsValue value)
        a required and non nullable spec that specifies a constant
        Parameters:
        value - the constant
        Returns:
        a spec
      • str

        public static JsSpec str​(Predicate<String> predicate)
        non-nullable string that satisfies the given predicate
        Parameters:
        predicate - the predicate
        Returns:
        a JsSpec
      • number

        public static JsSpec number​(Predicate<JsNumber> predicate)
        non-nullable number that satisfies the given predicate
        Parameters:
        predicate - the predicate
        Returns:
        a JsSpec
      • arrayOfIntSuchThat

        public static JsArraySpec arrayOfIntSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of numbers that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arrayOfDec

        public static JsArraySpec arrayOfDec​(Predicate<BigDecimal> predicate)
        non-nullable array of decimal numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each decimal number of the array is tested on
        Returns:
        an array spec
      • arrayOfDec

        public static JsArraySpec arrayOfDec​(Predicate<BigDecimal> predicate,
                                             int minLength,
                                             int maxLength)
        non-nullable array of decimal numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each decimal 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 spec
      • arrayOfDecSuchThat

        public static JsArraySpec arrayOfDecSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of decimal numbers that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arrayOfBigInt

        public static JsArraySpec arrayOfBigInt​(Predicate<BigInteger> predicate)
        non-nullable array of integral numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each integral number of the array is tested on
        Returns:
        an array spec
      • arrayOfBigInt

        public static JsArraySpec arrayOfBigInt​(Predicate<BigInteger> predicate,
                                                int minLength,
                                                int maxLength)
        non-nullable array of integral numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each integral 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 spec
      • arrayOfBigIntSuchThat

        public static JsArraySpec arrayOfBigIntSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of integral numbers that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arrayOfNumber

        public static JsArraySpec arrayOfNumber​(Predicate<JsNumber> predicate)
        non-nullable array of numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each number of the array is tested on
        Returns:
        an array spec
      • arrayOfNumber

        public static JsArraySpec arrayOfNumber​(Predicate<JsNumber> predicate,
                                                int minLength,
                                                int maxLength)
        non-nullable array of numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each 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 spec
      • arrayOfNumberSuchThat

        public static JsArraySpec arrayOfNumberSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of numbers that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arrayOfObj

        public static JsArraySpec arrayOfObj​(Predicate<JsObj> predicate)
        non-nullable array of objects, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each object of the array is tested on
        Returns:
        an array spec
      • arrayOfObj

        public static JsArraySpec arrayOfObj​(Predicate<JsObj> predicate,
                                             int minLength,
                                             int maxLength)
        non-nullable array of objects, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each object 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 spec
      • arrayOfObjSuchThat

        public static JsArraySpec arrayOfObjSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of objects that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • integer

        public static JsSpec integer​(IntPredicate predicate)
        non-nullable integer number that satisfies the given predicate
        Parameters:
        predicate - the predicate the integer is tested on
        Returns:
        a spec
      • arrayOfStrSuchThat

        public static JsArraySpec arrayOfStrSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of strings that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • array

        public static JsArraySpec array​(Predicate<JsValue> predicate)
        non-nullable array, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each value of the array is tested on
        Returns:
        an array spec
      • arrayOfLong

        public static JsArraySpec arrayOfLong​(LongPredicate predicate)
        non-nullable array of long numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each long number of the array is tested on
        Returns:
        an array spec
      • arrayOfLong

        public static JsArraySpec arrayOfLong​(LongPredicate predicate,
                                              int minLength,
                                              int maxLength)
        non-nullable array of long numbers, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each long 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 spec
      • arrayOfBoolSuchThat

        public static JsArraySpec arrayOfBoolSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of booleans that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • longInteger

        public static JsSpec longInteger​(LongPredicate predicate)
        non-nullable long number that satisfies the given predicate
        Parameters:
        predicate - the predicate the long is tested on
        Returns:
        a spec
      • decimal

        public static JsSpec decimal​(Predicate<BigDecimal> predicate)
        non-nullable decimal number that satisfies the given predicate
        Parameters:
        predicate - the predicate the decimal is tested on
        Returns:
        a spec
      • bigInteger

        public static JsSpec bigInteger​(Predicate<BigInteger> predicate)
        non-nullable integral number that satisfies the given predicate
        Parameters:
        predicate - the predicate the integral number is tested on
        Returns:
        a spec
      • arrayOfStr

        public static JsArraySpec arrayOfStr​(Predicate<String> predicate)
        non-nullable array of strings, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each string of the array is tested on
        Returns:
        an array spec
      • arrayOfStr

        public static JsArraySpec arrayOfStr​(Predicate<String> predicate,
                                             int minLength,
                                             int maxLength)
        non-nullable array of strings, where each element of the array satisfies the given predicate
        Parameters:
        predicate - the predicate each string 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 spec
      • any

        public static JsSpec any​(Predicate<JsValue> predicate)
        returns a spec that conforms any value that is evaluated to true on the predicate. When the type is not specified by the spec, positive numbers are parsed as Long by default, which has to be taken into account in order to define any condition.
        Parameters:
        predicate - the predicate
        Returns:
        a spec
      • binary

        public static JsSpec binary​(Predicate<byte[]> predicate)
        non-nullable json object that satisfies the given predicate
        Parameters:
        predicate - the predicate the json object is tested on
        Returns:
        a spec
      • instant

        public static JsSpec instant​(Predicate<Instant> predicate)
        non-nullable json object that satisfies the given predicate
        Parameters:
        predicate - the predicate the json object is tested on
        Returns:
        a spec
      • obj

        public static JsSpec obj​(Predicate<JsObj> predicate)
        non-nullable json object that satisfies the given predicate
        Parameters:
        predicate - the predicate the json object is tested on
        Returns:
        a spec
      • arrayOfLongSuchThat

        public static JsArraySpec arrayOfLongSuchThat​(Predicate<JsArray> predicate)
        non-nullable array of long numbers that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arraySuchThat

        public static JsArraySpec arraySuchThat​(Predicate<JsArray> predicate)
        non-nullable array that satisfies the given predicate
        Parameters:
        predicate - the predicate the array is tested on
        Returns:
        an array spec
      • arrayOfInt

        public static JsArraySpec arrayOfInt​(IntPredicate predicate)
        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 spec
      • arrayOfInt

        public static JsArraySpec arrayOfInt​(IntPredicate predicate,
                                             int minLength,
                                             int maxLength)
        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 spec
      • tuple

        public static JsTupleSpec tuple​(JsSpec spec,
                                        JsSpec... others)
        returns a tuple spec. Each nth-element of the tuple is specified by the nth given spec
        Parameters:
        spec - the spec of the first element
        others - the rest of specs
        Returns:
        a spec
      • oneOf

        public static <O extends JsValueJsSpec oneOf​(List<O> cons)
        returns an enum spec
        Type Parameters:
        O - the type of the possible values (subtype of JsValue)
        Parameters:
        cons - the list of possible values
        Returns:
        a spec