package org.basex.tests.bxapi.xdm; import java.util.*; import org.basex.query.value.*; import org.basex.query.value.seq.*; import org.basex.query.value.type.*; import org.basex.util.*; /** * Wrapper for representing XQuery values. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ final class XdmSequence extends XdmValue { /** Wrapped sequence. */ final Seq seq; /** * Constructor. * @param seq sequence */ XdmSequence(final Seq seq) { this.seq = seq; } @Override public SeqType getType() { return seq.seqType(); } @Override public int size() { return (int) seq.size(); } @Override public Iterator<XdmItem> iterator() { return new Iterator<XdmItem>() { private final int ss = size(); private int s; @Override public boolean hasNext() { return s < ss; } @Override public XdmItem next() { return XdmItem.get(seq.itemAt(s++)); } @Override public void remove() { throw Util.notExpected(); } }; } @Override public Value internal() { return seq; } @Override public String toString() { final StringBuilder sb = new StringBuilder("("); for(final XdmItem it : this) { if(sb.length() != 1) sb.append(','); sb.append(it); } return sb.append(')').toString(); } }