public static Sequence atomize(Sequence input) throws XPathException { if (input.hasOne()) return input.itemAt(0).atomize(); Item next; ValueSequence result = new ValueSequence(); for (SequenceIterator i = input.iterate(); i.hasNext(); ) { next = i.nextItem(); result.add(next.atomize()); } return result; }
/* (non-Javadoc) * @see org.exist.xquery.value.AbstractSequence#addAll(org.exist.xquery.value.Sequence) */ public void addAll(Sequence other) throws XPathException { if (other.hasOne()) { add(other.itemAt(0)); } else if (!other.isEmpty()) { for (final SequenceIterator i = other.iterate(); i.hasNext(); ) { final Item next = i.nextItem(); if (next != null) { add(next); } } } }
/* (non-Javadoc) * @see org.exist.xquery.Expression#eval(org.exist.dom.DocumentSet, org.exist.xquery.value.Sequence, org.exist.xquery.value.Item) */ public Sequence eval(Sequence contextSequence, Item contextItem) throws XPathException { logger.error( "Use of deprecated function fn:doctype(). " + "It will be removed soon. Please " + "use util:doctype() instead."); if (context.getProfiler().isEnabled()) { context.getProfiler().start(this); context .getProfiler() .message( this, Profiler.DEPENDENCIES, "DEPENDENCIES", Dependency.getDependenciesName(this.getDependencies())); if (contextSequence != null) context .getProfiler() .message(this, Profiler.START_SEQUENCES, "CONTEXT SEQUENCE", contextSequence); if (contextItem != null) context .getProfiler() .message(this, Profiler.START_SEQUENCES, "CONTEXT ITEM", contextItem.toSequence()); } MutableDocumentSet docs = new DefaultDocumentSet(); for (int i = 0; i < getArgumentCount(); i++) { Sequence seq = getArgument(i).eval(contextSequence, contextItem); for (SequenceIterator j = seq.iterate(); j.hasNext(); ) { String next = j.nextItem().getStringValue(); context.getBroker().getXMLResourcesByDoctype(next, docs); } } NodeSet result = new ExtArrayNodeSet(1); for (Iterator i = docs.getDocumentIterator(); i.hasNext(); ) { result.add(new NodeProxy((DocumentImpl) i.next(), NodeId.DOCUMENT_NODE)); } if (context.getProfiler().isEnabled()) context.getProfiler().end(this, "", result); return result; }