package org.basex.query.item;
import static org.basex.query.QueryText.*;
import java.io.IOException;
import org.basex.io.serial.Serializer;
import org.basex.util.Util;
import static org.basex.util.Token.*;
import org.w3c.dom.Attr;
/**
* Attribute node fragment.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public final class FAttr extends FNode {
/** Attribute name. */
private final QNm name;
/**
* Default constructor.
* @param n name
* @param v value
*/
public FAttr(final QNm n, final byte[] v) {
super(NodeType.ATT);
name = n;
val = v;
}
/**
* Constructor for DOM nodes.
* Originally provided by Erdal Karaca.
* @param attr DOM node
*/
public FAttr(final Attr attr) {
this(new QNm(token(attr.getName())), token(attr.getValue()));
}
@Override
public QNm qname() {
return name;
}
@Override
public byte[] name() {
return name.string();
}
@Override
public FNode copy() {
return new FAttr(name, val).parent(par);
}
@Override
public void serialize(final Serializer ser) throws IOException {
ser.attribute(name.string(), val);
}
@Override
public void plan(final Serializer ser) throws IOException {
ser.emptyElement(this, NAM, name.string(), VAL, val);
}
@Override
public String toString() {
return Util.info(" %=\"%\"", name.string(), val);
}
}