package org.basex.query.expr; import static org.basex.query.QueryText.*; import static org.basex.query.util.Err.*; import org.basex.query.QueryContext; import org.basex.query.QueryException; import org.basex.query.item.FDoc; import org.basex.util.InputInfo; import org.basex.util.Token; /** * Document fragment. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class CDoc extends CFrag { /** * Constructor. * @param ii input info * @param e expression */ public CDoc(final InputInfo ii, final Expr e) { super(ii, e); } @Override public FDoc item(final QueryContext ctx, final InputInfo ii) throws QueryException { final Constr c = new Constr(ii, ctx).add(expr); if(c.errAtt || c.atts.size() != 0) XPATT.thrw(ii); if(c.errNS || c.nspaces.size() != 0) XPNS.thrw(ii); final FDoc doc = new FDoc(c.children, Token.EMPTY); for(int n = 0; n < c.children.size(); ++n) { c.children.get(n).parent(doc); } return doc; } @Override public String description() { return info(DOCUMENT); } @Override public String toString() { return toString(DOCUMENT); } }