package org.basex.tests.bxapi.xdm; import java.util.*; import org.basex.query.value.item.*; import org.basex.query.value.node.*; import org.basex.util.*; /** * Wrapper for representing XQuery items. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ public abstract class XdmItem extends XdmValue { /** * Returns a new XQuery value. * @param val value * @return result */ public static XdmItem get(final Item val) { return val instanceof ANode ? new XdmNode((ANode) val) : new XdmAtomic(val); } @Override public int size() { return 1; } @Override public abstract Item internal(); @Override public final Iterator<XdmItem> iterator() { return new Iterator<XdmItem>() { private boolean more = true; @Override public boolean hasNext() { return more; } @Override public XdmItem next() { more = false; return XdmItem.this; } @Override public void remove() { throw Util.notExpected(); } }; } }