Package jsonvalues

Interface JsValue

All Known Subinterfaces:
Json<T>
All Known Implementing Classes:
JsArray, JsBigDec, JsBigInt, JsBinary, JsBool, JsDouble, JsInstant, JsInt, JsLong, JsNothing, JsNull, JsNumber, JsObj, JsPrimitive, JsStr

public interface JsValue
Represents a json element of any type. Every json type implements this interface. This interface implements two kind of methods:
  • Classificatory methods, which starts with the prefix isXXX
  • Accessory methods to convert the JsValue to the real implementation, which starts with the prefix asJsXXX
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    id()
     
    default JsValue
    returns the specified default value if nothing or the same this object
    default JsValue
    ifNull(JsValue value)
    returns the specified default value if null or the same this object
    default boolean
    Returns true if this JsValue is a JsArray
    default boolean
    Returns true if this elem is a JsArray and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsBigDec
    default boolean
    Returns true if this elem is a JsBigDec and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsBigInt
    default boolean
    Returns true if this elem is a JsBigInt and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsBinary or a JsString which value is an array of
    default boolean
    Returns true if this JsValue is a JsBool
    default boolean
    Returns true if this element is an decimal number (JsDouble or JsBigDec)
    default boolean
    Returns true if this JsValue is a JsDouble
    default boolean
    Returns true if this elem is a JsDouble and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsBool, and it's false
    default boolean
    Returns true if this JsValue is a JsInstant or a JsString which value is a date formatted in ISO-8601
    default boolean
    Returns true if this elem is a JsInstant and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsInt
    default boolean
    isInt(IntPredicate predicate)
    Returns true if this elem is a JsInt and satisfies the given predicate
    default boolean
    Returns true if this element is an integral number (JsInt or JsLong or JsBigInt)
    default boolean
    Returns true if this JsValue is a Json (JsObj or JsArray)
    default boolean
    isJson(Predicate<Json<?>> predicate)
    Returns true if this elem is a Json and satisfies the given predicate
    default boolean
    Returns this JsValue as a JsLong
    default boolean
    isLong(LongPredicate predicate)
    Returns true if this elem is a JsLong and satisfies the given predicate
    default boolean
    Returns true if this element is JsNothing
    default boolean
    Returns true if this element is not JsNothing
    default boolean
    Return true if this element is not null
    default boolean
    Returns true if this element is not a number
    default boolean
    Returns true if this element is null
    default boolean
    Returns true if this element is a number
    default boolean
    Returns true if this JsValue is a JsObj
    default boolean
    isObj(Predicate<JsObj> predicate)
    Returns true if this elem is a JsObj and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a not a Json (neither JsObj nor JsArray)
    default boolean
    returns true if this elem and the given have the same type
    default boolean
    Returns true if this JsValue is a JsStr
    default boolean
    isStr(Predicate<String> predicate)
    Returns true if this elem is a JsStr and satisfies the given predicate
    default boolean
    Returns true if this JsValue is a JsBool, and it's true
    default JsArray
    Returns this JsValue as a JsArray
    default JsBigDec
    Returns this JsValue as a JsBigDec
    default JsBigInt
    Retruns this JsValue as a JsBigInt
    default JsBinary
    Returns this JsValue as a JsBinary
    default JsBool
    Returns this JsValue as a JsBool
    default JsDouble
    Returns this JsValue as a JsDouble
    default JsInstant
    Returns this JsValue as a JsInstant
    default JsInt
    Returns this JsValue as a JsInt
    default JsLong
    Returns this JsValue as a JsLong
    default JsNumber
    Returns this JsValue as a JsStr
    default JsObj
    Returns this JsValue as a JsObj
    default Json<?>
    Returns this JsValue as a Json
     
    default JsStr
    Returns this JsValue as a JsStr
  • Method Details

    • id

      int id()
    • toJsBool

      default JsBool toJsBool()
      Returns this JsValue as a JsBool
      Returns:
      this JsValue as a JsBool
      Throws:
      UserError - if this JsValue is not a JsBool
    • toJsPrimitive

      JsPrimitive toJsPrimitive()
    • isBinary

      default boolean isBinary()
      Returns true if this JsValue is a JsBinary or a JsString which value is an array of
      Returns:
      true if this JsValue is a JsBinary or a JsString which value is an array of bytes encoded in base64
    • isInstant

      default boolean isInstant()
      Returns true if this JsValue is a JsInstant or a JsString which value is a date formatted in ISO-8601
      Returns:
      true if this JsValue is a JsInstant or a JsString which value is a date formatted in ISO-8601
    • isInstant

      default boolean isInstant(Predicate<Instant> predicate)
      Returns true if this elem is a JsInstant and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsInstant and satisfies the predicate
    • isBool

      default boolean isBool()
      Returns true if this JsValue is a JsBool
      Returns:
      true if this JsValue is a JsBool
    • isSameType

      default boolean isSameType(JsValue that)
      returns true if this elem and the given have the same type
      Parameters:
      that - the given elem
      Returns:
      true if this JsValue and the given have the same type
    • isTrue

      default boolean isTrue()
      Returns true if this JsValue is a JsBool, and it's true
      Returns:
      true if this JsValue is a JsBool, and it's true
    • isFalse

      default boolean isFalse()
      Returns true if this JsValue is a JsBool, and it's false
      Returns:
      true if this JsValue is a JsBool, and it's false
    • isInt

      default boolean isInt(IntPredicate predicate)
      Returns true if this elem is a JsInt and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsInt and satisfies the predicate
    • isInt

      default boolean isInt()
      Returns true if this JsValue is a JsInt
      Returns:
      true if this JsValue is a JsInt
    • toJsInt

      default JsInt toJsInt()
      Returns this JsValue as a JsInt
      Returns:
      this JsValue as a JsInt
      Throws:
      UserError - if this JsValue is not a JsInt
    • toJsInstant

      default JsInstant toJsInstant()
      Returns this JsValue as a JsInstant
      Returns:
      this JsValue as a JsInstant
      Throws:
      UserError - if this JsValue is not a JsInt
    • toJsBinary

      default JsBinary toJsBinary()
      Returns this JsValue as a JsBinary
      Returns:
      this JsValue as a JsBinary
      Throws:
      UserError - if this JsValue is not a JsBinary
    • isDouble

      default boolean isDouble(DoublePredicate predicate)
      Returns true if this elem is a JsDouble and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsDouble and satisfies the predicate
    • isDouble

      default boolean isDouble()
      Returns true if this JsValue is a JsDouble
      Returns:
      true if this JsValue is a JsDouble
    • toJsDouble

      default JsDouble toJsDouble()
      Returns this JsValue as a JsDouble
      Returns:
      this JsValue as a JsDouble
      Throws:
      UserError - if this JsValue is not a JsDouble
    • isBigDec

      default boolean isBigDec(Predicate<BigDecimal> predicate)
      Returns true if this elem is a JsBigDec and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsBigDec and satisfies the predicate
    • isBigDec

      default boolean isBigDec()
      Returns true if this JsValue is a JsBigDec
      Returns:
      true if this JsValue is a JsBigDec
    • toJsBigDec

      default JsBigDec toJsBigDec()
      Returns this JsValue as a JsBigDec
      Returns:
      this JsValue as a JsBigDec
      Throws:
      UserError - if this JsValue is not a JsBigDec or a JsDouble
    • isLong

      default boolean isLong(LongPredicate predicate)
      Returns true if this elem is a JsLong and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsLong and satisfies the predicate
    • isLong

      default boolean isLong()
      Returns this JsValue as a JsLong
      Returns:
      true if this JsValue is a JsLong
    • toJsLong

      default JsLong toJsLong()
      Returns this JsValue as a JsLong
      Returns:
      this JsValue as a JsLong
      Throws:
      UserError - if this JsValue is not a JsLong or a JsInt
    • isPrimitive

      default boolean isPrimitive()
      Returns true if this JsValue is a not a Json (neither JsObj nor JsArray)
      Returns:
      true if this JsValue is a not a Json (neither JsObj nor JsArray)
    • isJson

      default boolean isJson()
      Returns true if this JsValue is a Json (JsObj or JsArray)
      Returns:
      true if this JsValue is a Json (JsObj or JsArray)
    • isObj

      default boolean isObj()
      Returns true if this JsValue is a JsObj
      Returns:
      true if this JsValue is a JsObj
    • isArray

      default boolean isArray()
      Returns true if this JsValue is a JsArray
      Returns:
      true if this JsValue is a JsArray
    • isJson

      default boolean isJson(Predicate<Json<?>> predicate)
      Returns true if this elem is a Json and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a Json and satisfies the predicate
    • toJson

      default Json<?> toJson()
      Returns this JsValue as a Json
      Returns:
      this JsValue as a Json
      Throws:
      UserError - if this JsValue is not a JsObj or a JsArray
    • toJsObj

      default JsObj toJsObj()
      Returns this JsValue as a JsObj
      Returns:
      this JsValue as a JsObj
      Throws:
      UserError - if this JsValue is not a JsObj
    • toJsArray

      default JsArray toJsArray()
      Returns this JsValue as a JsArray
      Returns:
      this JsValue as a JsArray
      Throws:
      UserError - if this JsValue is not a JsArray
    • isObj

      default boolean isObj(Predicate<JsObj> predicate)
      Returns true if this elem is a JsObj and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsObj and satisfies the predicate
    • isArray

      default boolean isArray(Predicate<JsArray> predicate)
      Returns true if this elem is a JsArray and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsArray and satisfies the predicate
    • toJsNumber

      default JsNumber toJsNumber()
      Returns this JsValue as a JsStr
      Returns:
      this JsValue as a JsStr
      Throws:
      UserError - if this JsValue is not a JsStr
    • isBigInt

      default boolean isBigInt(Predicate<BigInteger> predicate)
      Returns true if this elem is a JsBigInt and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsBigInt and satisfies the predicate
    • isBigInt

      default boolean isBigInt()
      Returns true if this JsValue is a JsBigInt
      Returns:
      true if this JsValue is a JsBigInt
    • toJsBigInt

      default JsBigInt toJsBigInt()
      Retruns this JsValue as a JsBigInt
      Returns:
      this JsValue as a JsBigInt
      Throws:
      UserError - if this JsValue is not a JsBigInt or JsLong or JsInt
    • isStr

      default boolean isStr(Predicate<String> predicate)
      Returns true if this elem is a JsStr and satisfies the given predicate
      Parameters:
      predicate - the given predicate
      Returns:
      true if this JsValue is a JsStr and satisfies the predicate
    • isStr

      default boolean isStr()
      Returns true if this JsValue is a JsStr
      Returns:
      true if this JsValue is a JsStr
    • toJsStr

      default JsStr toJsStr()
      Returns this JsValue as a JsStr
      Returns:
      this JsValue as a JsStr
      Throws:
      UserError - if this JsValue is not a JsStr
    • isIntegral

      default boolean isIntegral()
      Returns true if this element is an integral number (JsInt or JsLong or JsBigInt)
      Returns:
      true if this element is an integral number (JsInt or JsLong or JsBigInt)
    • isDecimal

      default boolean isDecimal()
      Returns true if this element is an decimal number (JsDouble or JsBigDec)
      Returns:
      true if this element is an decimal number (JsDouble or JsBigDec)
    • isNotNull

      default boolean isNotNull()
      Return true if this element is not null
      Returns:
      true if this element is not null
    • isNull

      default boolean isNull()
      Returns true if this element is null
      Returns:
      true if this element is null
    • isNotNothing

      default boolean isNotNothing()
      Returns true if this element is not JsNothing
      Returns:
      true if this element is not JsNothing
    • isNothing

      default boolean isNothing()
      Returns true if this element is JsNothing
      Returns:
      true if this element is JsNothing
    • isNotNumber

      default boolean isNotNumber()
      Returns true if this element is not a number
      Returns:
      true if this element is not a number
    • isNumber

      default boolean isNumber()
      Returns true if this element is a number
      Returns:
      true if this element is a number
    • ifNull

      default JsValue ifNull(JsValue value)
      returns the specified default value if null or the same this object
      Parameters:
      value - the default value
      Returns:
      a json value
    • ifNothing

      default JsValue ifNothing(JsValue value)
      returns the specified default value if nothing or the same this object
      Parameters:
      value - the default value
      Returns:
      a json value