Search in sources :

Example 16 with DBNode

use of org.sirix.xquery.node.DBNode in project sirix by sirixdb.

the class SelectNode method execute.

@Override
public Sequence execute(StaticContext sctx, QueryContext ctx, Sequence[] args) throws QueryException {
    final DBNode node = ((DBNode) args[0]);
    final XdmNodeReadTrx rtx = node.getTrx();
    final long nodeKey = FunUtil.getLong(args, 1, "nodeKey", 0, null, true);
    if (rtx.moveTo(nodeKey).hasMoved()) {
        return new DBNode(rtx, node.getCollection());
    } else {
        throw new QueryException(new QNm("Couldn't select node."));
    }
}
Also used : DBNode(org.sirix.xquery.node.DBNode) QNm(org.brackit.xquery.atomic.QNm) QueryException(org.brackit.xquery.QueryException) XdmNodeReadTrx(org.sirix.api.XdmNodeReadTrx)

Aggregations

DBNode (org.sirix.xquery.node.DBNode)16 QueryException (org.brackit.xquery.QueryException)13 QNm (org.brackit.xquery.atomic.QNm)12 XdmNodeReadTrx (org.sirix.api.XdmNodeReadTrx)12 IndexDef (org.sirix.index.IndexDef)11 IndexController (org.sirix.access.IndexController)10 Item (org.brackit.xquery.xdm.Item)8 XdmNodeWriteTrx (org.sirix.api.XdmNodeWriteTrx)5 BaseIter (org.brackit.xquery.sequence.BaseIter)4 LazySequence (org.brackit.xquery.sequence.LazySequence)4 Iter (org.brackit.xquery.xdm.Iter)4 Stream (org.brackit.xquery.xdm.Stream)4 Type (org.brackit.xquery.xdm.Type)4 SirixNodeKeyStream (org.sirix.xquery.stream.SirixNodeKeyStream)4 HashSet (java.util.HashSet)3 Atomic (org.brackit.xquery.atomic.Atomic)3 Int32 (org.brackit.xquery.atomic.Int32)3 Str (org.brackit.xquery.atomic.Str)3 SirixIOException (org.sirix.exception.SirixIOException)3 IndexType (org.sirix.index.IndexType)3