Package jsonvalues

Interface Position

All Superinterfaces:
Comparable<Position>
All Known Implementing Classes:
Index, Key

public sealed interface Position extends Comparable<Position> permits Index, Key
Represents the location of a first-level element in a JSON, either a Key in a JsObj or an Index in a JsArray.
  • Method Summary

    Modifier and Type
    Method
    Description
    Casts this position into an Index, throwing an exception if it's a Key.
    Casts this position into a Key, throwing an exception if it's an index.
    boolean
    Returns true if this position is an index.
    default boolean
    isIndex(IntPredicate predicate)
    Returns true if this position is an index, and its index tested on a given predicate is true.
    boolean
    Returns true if this position is a key.
    default boolean
    isKey(Predicate<String> predicate)
    Returns true if this position is a key, and its name tested on a given predicate is true.
    default <T> T
    match(Function<String,T> keyFn, IntFunction<T> indexFn)
    Returns a new value applying pattern matching on the Position type.

    Methods inherited from interface java.lang.Comparable

    compareTo
  • Method Details

    • isKey

      default boolean isKey(Predicate<String> predicate)
      Returns true if this position is a key, and its name tested on a given predicate is true.
      Parameters:
      predicate - the given predicate
      Returns:
      true if this position is a key, and its name tested on a given predicate is true
    • isIndex

      boolean isIndex()
      Returns true if this position is an index.
      Returns:
      true if this position is an index
    • asKey

      Key asKey()
      Casts this position into a Key, throwing an exception if it's an index.
      Returns:
      this position as a Key
      Throws:
      UserError - if this position is an Index
    • isIndex

      default boolean isIndex(IntPredicate predicate)
      Returns true if this position is an index, and its index tested on a given predicate is true.
      Parameters:
      predicate - the given predicate
      Returns:
      true if this position is an index, and its index tested on a given predicate is true
    • isKey

      boolean isKey()
      Returns true if this position is a key.
      Returns:
      true if this position is a key
    • asIndex

      Index asIndex()
      Casts this position into an Index, throwing an exception if it's a Key.
      Returns:
      this position as an Index
      Throws:
      UserError - if this position is a Key
    • match

      default <T> T match(Function<String,T> keyFn, IntFunction<T> indexFn)
      Returns a new value applying pattern matching on the Position type.
      Type Parameters:
      T - the type of the object returned
      Parameters:
      keyFn - function to apply if this Position is a key
      indexFn - function to apply if this Position is an index
      Returns:
      an object of type T