public static XdmSequenceIterator<XdmNode> ofNodes(AxisIterator base) { return new XdmSequenceIterator<>(base); }
@Override public void run() { XdmSequenceIterator.this.close(); } });
@Override public Stream<XdmAtomicValue> apply(XdmItem item) { UnfailingIterator<StringValue> iter = new Whitespace.Tokenizer(item.getStringValue()); return XdmSequenceIterator.ofAtomicValues(iter).stream(); } };
@Override public boolean hasNext() { return sequence.hasNext(); }
public static XdmNode getContextFromLog( net.sf.saxon.s9api.DocumentBuilder builder, Document log) throws Exception { Element starttest = (Element) log.getElementsByTagName("starttest") .item(0); NodeList nl = starttest.getElementsByTagName("context"); if (nl == null || nl.getLength() == 0) { return null; } else { Element context = (Element) nl.item(0); Element value = (Element) context.getElementsByTagName("value") .item(0); nl = value.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { Node n = nl.item(i); if (n.getNodeType() == Node.ATTRIBUTE_NODE) { String s = DomUtils.serializeNode(value); XdmNode xn = builder.build(new StreamSource( new CharArrayReader(s.toCharArray()))); return (XdmNode) xn.axisIterator(Axis.ATTRIBUTE).next(); } else if (n.getNodeType() == Node.ELEMENT_NODE) { Document doc = DomUtils.createDocument(n); return builder.build(new DOMSource(doc)); } } } return null; }
/** * Returns the next element in the iteration. Calling this method * repeatedly until the {@link #hasNext()} method returns false will * return each element in the underlying collection exactly once. * * @return the next element in the iteration. * @throws java.util.NoSuchElementException * iteration has no more elements. */ public T next() { switch (state) { case ON_ITEM: state = BEFORE_ITEM; return next; case FINISHED: throw new java.util.NoSuchElementException(); case BEFORE_ITEM: if (hasNext()) { state = BEFORE_ITEM; return next; } else { throw new java.util.NoSuchElementException(); } default: throw new IllegalStateException(); } }
public static XdmNode getContextFromLog( net.sf.saxon.s9api.DocumentBuilder builder, Document log) throws Exception { Element starttest = (Element) log.getElementsByTagName("starttest") .item(0); NodeList nl = starttest.getElementsByTagName("context"); if (nl == null || nl.getLength() == 0) { return null; } else { Element context = (Element) nl.item(0); Element value = (Element) context.getElementsByTagName("value") .item(0); nl = value.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { Node n = nl.item(i); if (n.getNodeType() == Node.ATTRIBUTE_NODE) { String s = DomUtils.serializeNode(value); XdmNode xn = builder.build(new StreamSource( new CharArrayReader(s.toCharArray()))); return (XdmNode) xn.axisIterator(Axis.ATTRIBUTE).next(); } else if (n.getNodeType() == Node.ELEMENT_NODE) { Document doc = DomUtils.createDocument(n); return builder.build(new DOMSource(doc)); } } } return null; }
@Override public Stream<XdmAtomicValue> apply(XdmItem item) { UnfailingIterator<StringValue> iter = new Whitespace.Tokenizer(item.getStringValue()); return XdmSequenceIterator.ofAtomicValues(iter).stream(); } };
/** * Returns the next element in the iteration. Calling this method * repeatedly until the {@link #hasNext()} method returns false will * return each element in the underlying collection exactly once. * * @return the next element in the iteration. * @throws java.util.NoSuchElementException * iteration has no more elements. */ public XdmItem next() { switch (state) { case ON_ITEM: state = BEFORE_ITEM; return next; case FINISHED: throw new java.util.NoSuchElementException(); case BEFORE_ITEM: if (hasNext()) { state = BEFORE_ITEM; return next; } else { throw new java.util.NoSuchElementException(); } default: throw new IllegalStateException(); } }
for (QName elemName : elemNames) { String value = lastNode.axisIterator(Axis.CHILD, new net.sf.saxon.s9api.QName(elemName)).next().getStringValue();
public static XdmSequenceIterator<XdmAtomicValue> ofAtomicValues(UnfailingIterator<? extends AtomicValue> base) { return new XdmSequenceIterator<>(base); }
@Override public void run() { XdmSequenceIterator.this.close(); } });
/** * Returns the next element in the iteration. Calling this method * repeatedly until the {@link #hasNext()} method returns false will * return each element in the underlying collection exactly once. * * @return the next element in the iteration. * @throws java.util.NoSuchElementException * iteration has no more elements. */ public T next() { switch (state) { case ON_ITEM: state = BEFORE_ITEM; return next; case FINISHED: throw new java.util.NoSuchElementException(); case BEFORE_ITEM: if (hasNext()) { state = BEFORE_ITEM; return next; } else { throw new java.util.NoSuchElementException(); } default: throw new IllegalStateException(); } }
@Override public Object next() { XdmItem item = sequence.next(); String stringValue = item.getStringValue(); switch (getType()) { case STRING: case TEXT: return stringValue; case INT: return Integer.valueOf (stringValue); case LONG: return Long.valueOf (stringValue); case SOLR_FIELD: return getSchemaField().createField(stringValue, 1.0f); default: throw new IllegalStateException (getType() + " is not a valid type for an XPathField"); } }
public static XdmSequenceIterator<XdmNode> ofNodes(AxisIterator base) { return new XdmSequenceIterator<>(base); }
public boolean hasNext() { hasNext = true; // This code is funky because XdmSequenceIterator.hasNext() consumes an item if (next == null) { boolean hasNext = iter.hasNext(); finished = finished || !hasNext; if (finished) { return false; } // If we got here, there must be a next next = (XdmNode) iter.next(); while (next != null && !ok(next)) { if (iter.hasNext()) { next = (XdmNode) iter.next(); } else { next = null; } } return ok(next); } else { return true; } }
public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException { try { String axes = arguments[0].head().getStringValue(); NodeInfo tableElement = (NodeInfo)arguments[1].head(); // FIXME: why does this not work? // URI base = new URI(tableElement.getBaseURI()); XdmNode result = Iterators.getOnlyElement( SaxonHelper.transform( new TableAsList(axes), Collections.singleton(tableElement).iterator(), context.getConfiguration())); result = (XdmNode)result.axisIterator(Axis.CHILD).next(); // because result is document-node return result.getUnderlyingNode(); } catch (TransformerException e) { throw new XPathException("css:render-table-by failed", XProcException.javaError(e, 0)); } } };