Interface IrPathNode

All Known Subinterfaces:
IrPredicate
All Known Implementing Classes:
IrAbsMethod, IrArithmeticBinary, IrArithmeticUnary, IrArrayAccessor, IrCeilingMethod, IrComparisonPredicate, IrConjunctionPredicate, IrConstantJsonSequence, IrContextVariable, IrDatetimeMethod, IrDescendantMemberAccessor, IrDisjunctionPredicate, IrDoubleMethod, IrExistsPredicate, IrFilter, IrFloorMethod, IrIsUnknownPredicate, IrJsonNull, IrKeyValueMethod, IrLastIndexVariable, IrLiteral, IrMemberAccessor, IrNamedJsonVariable, IrNamedValueVariable, IrNegationPredicate, IrPredicateCurrentItemVariable, IrSizeMethod, IrStartsWithPredicate, IrTypeMethod

  • Method Summary

    Modifier and Type
    Method
    Description
    default <R, C> R
    accept(IrJsonPathVisitor<R,C> visitor, C context)
     
    default Optional<Type>
    Get the result type, whenever known.
  • Method Details

    • accept

      default <R, C> R accept(IrJsonPathVisitor<R,C> visitor, C context)
    • type

      default Optional<Type> type()
      Get the result type, whenever known. Type might be known for IrPathNodes returning a singleton sequence (e.g. IrArithmeticBinary), as well as for IrPathNodes returning a sequence of arbitrary length (e.g. IrSizeMethod). If the node potentially returns a non-singleton sequence, this method shall return Type only if the type is the same for all elements of the sequence. NOTE: Type is not applicable to every IrPathNode. If the IrPathNode produces an empty sequence, a JSON null, or a sequence containing non-literal JSON items, Type cannot be determined.