Пример #1
0
 @Override
 public Sequence<? extends Item> eval(Sequence<? extends Item> contextSeq, DynamicContext dynEnv)
     throws XQueryException {
   if (contextSeq == null) {
     throw new DynamicError("err:XPDY0002", "ContextItem is not set");
   }
   final INodeSequence<XQNode> src = ProxyNodeSequence.wrap(contextSeq, dynEnv);
   final IFocus<XQNode> srcItor = src.iterator();
   if (srcItor.hasNext()) {
     final XQNode n = srcItor.next();
     if (srcItor.hasNext()) {
       srcItor.closeQuietly();
       reportError(
           "err:XPTY0020", "Context item is expected to be a node, but was node sequence.");
     }
     final XQNode parent = n.parent();
     if (parent != null) {
       srcItor.closeQuietly();
       return new AncestorOrSelfEmuration(parent, getNodeTest(), dynEnv);
     }
   }
   srcItor.closeQuietly();
   return NodeSequence.<XQNode>emptySequence();
 }