Class Cursors.PathCursor

  • All Implemented Interfaces:
    java.util.Iterator<IndexRow>, Cursor
    Enclosing class:
    Cursors

    public static class Cursors.PathCursor
    extends Cursors.AbstractCursor
    PathCursor implements a simple Cursor that iterates over a String based path Iterable.
    • Constructor Summary

      Constructors 
      Constructor Description
      PathCursor​(java.util.Iterator<java.lang.String> paths, boolean distinct, QueryLimits settings)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean hasNext()  
      IndexRow next()
      The next row within this index.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Constructor Detail

      • PathCursor

        public PathCursor​(java.util.Iterator<java.lang.String> paths,
                          boolean distinct,
                          QueryLimits settings)
    • Method Detail

      • next

        public IndexRow next()
        Description copied from interface: Cursor
        The next row within this index.

        The row may only contains the path, if a path is available. It may also (or just) contain so-called "pseudo-properties" such as "jcr:score" and "rep:excerpt", in case the index supports those properties and if the properties were requested when running the query. The query engine will indicate that those pseudo properties were requested by setting an appropriate (possibly unrestricted) filter condition.

        The index should return a row with those properties that are stored in the index itself, so that the query engine doesn't have to load the whole row / node unnecessarily (avoiding to load the whole row is sometimes called "index only scan"), specially for rows that are anyway skipped. If the index does not have an (efficient) way to return some (or any) of the properties, it doesn't have to provide those values. In this case, the query engine will load the node itself if required. If all conditions match, the query engine will sometimes load the node to do access checks, but this is not always the case, and it is not the case if any of the (join) conditions do not match.

        Returns:
        the row
      • hasNext

        public boolean hasNext()