package org.basex.query.item; import static org.basex.query.util.Err.*; import static org.basex.util.Token.*; import java.io.IOException; import org.basex.io.serial.Serializer; import org.basex.query.QueryException; import org.basex.util.InputInfo; import org.basex.util.Util; import org.w3c.dom.Comment; /** * Comment node fragment. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class FComm extends FNode { /** Two dashes, marking the start/end of a comment. */ private static final byte[] DASHES = { '-', '-' }; /** * Constructor. * @param t text value */ public FComm(final byte[] t) { super(NodeType.COM); val = t; } /** * Constructor for DOM nodes. * Originally provided by Erdal Karaca. * @param com DOM node */ FComm(final Comment com) { this(token(com.getData())); } @Override public void serialize(final Serializer ser) throws IOException { ser.comment(val); } @Override public FNode copy() { return new FComm(val).parent(par); } @Override public String toString() { return Util.info("<!--%-->", val); } /** * Checks the specified token for validity. * @param str token to be checked * @param ii input info * @return token * @throws QueryException query exception */ public static byte[] parse(final byte[] str, final InputInfo ii) throws QueryException { if(contains(str, DASHES) || endsWith(str, '-')) COMINVALID.thrw(ii, str); return str; } }