Class JsSpecs

java.lang.Object
jsonvalues.spec.JsSpecs

public final class JsSpecs extends Object
  • Field Details

    • TRUE

      public static final JsSpec TRUE
      true constant spec
    • FALSE

      public static final JsSpec FALSE
      false constant spec
  • Method Details

    • 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
    • arrayOfIntegral

      public static JsArraySpec arrayOfIntegral()
      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
    • integral

      public static JsSpec integral()
      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
    • arrayOfIntegral

      public static JsArraySpec arrayOfIntegral(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
    • arrayOfIntegral

      public static JsArraySpec arrayOfIntegral(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
    • arrayOfIntegral

      public static JsArraySpec arrayOfIntegral(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
    • arrayOfIntegralSuchThat

      public static JsArraySpec arrayOfIntegralSuchThat(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
    • integral

      public static JsSpec integral(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 JsValue> JsSpec 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