/** * Return an iterator over the descendants of this node. * This method is only called after checking that the node is an element or document node. * * @param nodeTest a test that the returned descendants must satisfy * @param includeSelf true if this node is to be included in the result * @return an iterator over the sibling nodes, in axis order. */ protected AxisIterator iterateDescendants(NodeTest nodeTest, boolean includeSelf) { AxisIterator iter = new Navigator.DescendantEnumeration(this, includeSelf, true); if (!(nodeTest instanceof AnyNodeTest)) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
/** * Determines axis iteration algorithm. * @param axisNumber element from {@code AxisInfo} * @param nodeTest filter for iterator * @return {@code AxisIterator} object */ @Override public AxisIterator iterateAxis(byte axisNumber, NodeTest nodeTest) { AxisIterator axisIterator = iterateAxis(axisNumber); if (nodeTest != null) { axisIterator = new Navigator.AxisFilter(axisIterator, nodeTest); } return axisIterator; }
/** * Return an iterator over the descendants of this node. * This method is only called after checking that the node is an element or document node. * * @param nodeTest a test that the returned descendants must satisfy * @param includeSelf true if this node is to be included in the result * @return an iterator over the sibling nodes, in axis order. */ protected AxisIterator iterateDescendants(NodeTest nodeTest, boolean includeSelf) { AxisIterator iter = new Navigator.DescendantEnumeration(this, includeSelf, true); if (!(nodeTest instanceof AnyNodeTest)) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator iterateSiblings(NodeTest nodeTest, boolean forwards) { return new Navigator.AxisFilter( new ChildAxisIterator(this, false, forwards, nodeTest), nodeTest); }
@Override protected AxisIterator iterateAttributes(NodeTest nodeTest) { return new Navigator.AxisFilter( new AttributeAxisIterator(this, nodeTest), nodeTest); }
@Override protected AxisIterator iterateSiblings(NodeTest nodeTest, boolean forwards) { boolean elementOnly = nodeTest.getUType() == UType.ELEMENT; AxisIterator iter = new Navigator.EmptyTextFilter( new ChildEnumeration(this, false, forwards, elementOnly)); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator iterateChildren(NodeTest nodeTest) { boolean elementOnly = nodeTest.getUType() == UType.ELEMENT; AxisIterator iter = new Navigator.EmptyTextFilter( new ChildEnumeration(this, true, true, elementOnly)); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator iterateChildren(NodeTest nodeTest) { if (hasChildNodes()) { return new Navigator.AxisFilter( new ChildAxisIterator(this, true, true, nodeTest), nodeTest); } else { return EmptyIterator.OfNodes.THE_INSTANCE; } }
@Override protected AxisIterator iterateChildren(NodeTest nodeTest) { if (hasChildNodes()) { return new Navigator.AxisFilter( new ChildAxisIterator(this, true, true, nodeTest), nodeTest); } else { return EmptyIterator.OfNodes.THE_INSTANCE; } }
@Override protected AxisIterator iterateAttributes(NodeTest nodeTest) { AxisIterator iter = new AttributeEnumeration(this); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator<NodeInfo> iterateChildren(NodeTest nodeTest) { if (hasChildNodes()) { return new Navigator.AxisFilter( new ChildAxisIterator(this, true, true, nodeTest), nodeTest); } else { return EmptyAxisIterator.emptyAxisIterator(); } }
@Override protected AxisIterator iterateSiblings(NodeTest nodeTest, boolean forwards) { return new Navigator.AxisFilter( new ChildAxisIterator(this, false, forwards, nodeTest), nodeTest); }
@Override protected AxisIterator iterateAttributes(NodeTest nodeTest) { return new Navigator.AxisFilter( new AttributeAxisIterator(this, nodeTest), nodeTest); }
/** * Return an iteration over the nodes reached by the given axis from this node * * @param axisNumber the axis to be used * @param nodeTest A pattern to be matched by the returned nodes * @return a SequenceIterator that scans the nodes reached by the axis in turn. */ /*@NotNull*/ public AxisIterator iterateAxis(byte axisNumber, NodeTest nodeTest) { return new Navigator.AxisFilter(iterateAxis(axisNumber), nodeTest); }
@Override protected AxisIterator iterateChildren(NodeTest nodeTest) { boolean elementOnly = nodeTest.getUType() == UType.ELEMENT; AxisIterator iter = new Navigator.EmptyTextFilter( new ChildEnumeration(this, true, true, elementOnly)); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator iterateSiblings(NodeTest nodeTest, boolean forwards) { boolean elementOnly = nodeTest.getUType() == UType.ELEMENT; AxisIterator iter = new Navigator.EmptyTextFilter( new ChildEnumeration(this, false, forwards, elementOnly)); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
@Override protected AxisIterator<NodeInfo> iterateSiblings(NodeTest nodeTest, boolean forwards) { return new Navigator.AxisFilter( new ChildAxisIterator(this, false, forwards, nodeTest), nodeTest); }
@Override protected AxisIterator iterateAttributes(NodeTest nodeTest) { AxisIterator iter = new AttributeEnumeration(this); if (nodeTest != AnyNodeTest.getInstance()) { iter = new Navigator.AxisFilter(iter, nodeTest); } return iter; }
/** * Return an iteration over the nodes reached by the given axis from this node * * @param axisNumber the axis to be used * @param nodeTest A pattern to be matched by the returned nodes * @return a SequenceIterator that scans the nodes reached by the axis in turn. */ /*@NotNull*/ public AxisIterator iterateAxis(byte axisNumber, NodeTest nodeTest) { return new Navigator.AxisFilter(iterateAxis(axisNumber), nodeTest); }
/** * Determines axis iteration algorithm. * @param axisNumber element from {@code AxisInfo} * @param nodeTest filter for iterator * @return {@code AxisIterator} object */ @Override public AxisIterator iterateAxis(byte axisNumber, NodeTest nodeTest) { AxisIterator axisIterator = iterateAxis(axisNumber); if (nodeTest != null) { axisIterator = new Navigator.AxisFilter(axisIterator, nodeTest); } return axisIterator; }