Class DBNodeSeq

All Implemented Interfaces:
Iterable<Item>
Direct Known Subclasses:
DBNodes

public class DBNodeSeq extends Seq
Sequence, containing at least two nodes in distinct document order (DDO).
Author:
BaseX Team 2005-21, BSD License, Christian Gruen
  • Field Details

    • data

      protected final Data data
      Data reference.
    • all

      protected final boolean all
      Pre values reference all documents of the database.
    • pres

      protected int[] pres
      Pre values.
  • Constructor Details

    • DBNodeSeq

      protected DBNodeSeq(int[] pres, Data data, Type type, boolean all)
      Constructor.
      Parameters:
      pres - pre values
      data - data reference
      type - node type
      all - pre values reference all documents of the database
  • Method Details

    • data

      public Data data()
      Description copied from class: Expr
      Returns the data reference bound to this expression. This method is currently overwritten by DBNode, DBNodeSeq, AxisPath and VarRef.
      Overrides:
      data in class Expr
      Returns:
      data reference (can be null)
    • ebv

      public Item ebv(QueryContext qc, InputInfo ii)
      Description copied from class: Expr

      Checks if the effective boolean value can be computed for this expression:

      • If it yields an empty sequence, Bln.FALSE will be returned.
      • If it yields a single item, this item will be returned.
      • If it yields nodes, the first node will be returned.
      • Otherwise, an error will be raised.

      A single numeric item may later be evaluated as positional predicate.

      Parameters:
      qc - query context
      ii - input info (required for Seq instances, which have no input info)
      Returns:
      item
    • ddo

      public boolean ddo()
      Description copied from class: Expr
      Indicates if this expression returns nodes in document order without duplicates.
      Overrides:
      ddo in class Seq
      Returns:
      result of check
    • itemAt

      public DBNode itemAt(long pos)
      Description copied from class: Value
      Returns the item at the given position in the value. The specified value must be lie within the valid bounds.
      Specified by:
      itemAt in class Value
      Parameters:
      pos - position
      Returns:
      item
    • atomValue

      public Value atomValue(QueryContext qc, InputInfo ii)
      Description copied from class: Expr
      Evaluates the expression and returns the atomized items.
      Parameters:
      qc - query context
      ii - input info (only required by Seq instances, which have no input info)
      Returns:
      atomized item
    • pres

      public int[] pres()
      Returns the internal pre value array.
      Returns:
      pre values
    • pre

      public int pre(int index)
      Returns the specified pre value.
      Parameters:
      index - index of pre value
      Returns:
      pre value
    • all

      public boolean all()
      Indicates if pre values reference all documents of the database.
      Returns:
      flag
    • reverse

      public Value reverse(QueryContext qc)
      Description copied from class: Value
      Returns all items of this value in reverse order.
      Specified by:
      reverse in class Value
      Parameters:
      qc - query context
      Returns:
      items in reverse order
    • equals

      public boolean equals(Object obj)
      Description copied from class: Expr
      This function is e.g. called by:
      Overrides:
      equals in class Seq
    • plan

      public void plan(QueryString qs)
      Description copied from class: ExprInfo
      Creates a query string.
      Overrides:
      plan in class Seq
      Parameters:
      qs - query string builder
    • get

      public static Value get(int[] pres, Data data, Type type, boolean all)
      Creates a sequence with the specified items.
      Parameters:
      pres - pre values
      data - data reference
      type - node type (can be null)
      all - pre values reference all documents of the database
      Returns:
      value
    • get

      public static Value get(int[] pres, Data data, Expr expr)
      Creates a sequence with the specified items.
      Parameters:
      pres - pre values
      data - data reference
      expr - expression (can be null)
      Returns:
      value
    • get

      public static Value get(IntList pres, Data data, boolean docs, boolean all)
      Creates a node sequence with the given data reference and pre values.
      Parameters:
      pres - pre values
      data - data reference
      docs - all values reference document nodes
      all - pre values reference all documents of the database
      Returns:
      value
    • cache

      public final void cache(boolean lazy, InputInfo ii)
      Description copied from class: Value
      Caches lazy values.
      Specified by:
      cache in class Value
      Parameters:
      lazy - lazy caching
      ii - input info
    • atomSize

      public final long atomSize()
      Description copied from class: Value
      Computes the number of atomized items.
      Specified by:
      atomSize in class Value
      Returns:
      atomized item
    • insert

      public final Value insert(long pos, Item item, QueryContext qc)
      Inserts an item at the given position into this sequence and returns the resulting sequence. Because this function will mostly be invoked recursively, the standard implementation will be called, because its runtime outweighs the possibly higher memory consumption.
      Specified by:
      insert in class Seq
      Parameters:
      pos - position at which the item should be inserted, must be between 0 and Seq.size
      item - item to insert
      qc - query context
      Returns:
      resulting value
    • remove

      public final Value remove(long pos, QueryContext qc)
      Removes the item at the given position in this sequence and returns the resulting sequence. Because this function will mostly be invoked recursively, the standard implementation will be called, because its runtime outweighs the possibly higher memory consumption.
      Specified by:
      remove in class Seq
      Parameters:
      pos - position of the item to remove, must be between 0 and Seq.size - 1
      qc - query context
      Returns:
      resulting sequence