package org.basex.api.dom;
import org.basex.query.item.ANode;
import org.basex.util.Token;
import org.basex.util.Util;
import org.w3c.dom.CharacterData;
import org.w3c.dom.DOMException;
/**
* DOM - Character data implementation.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
abstract class BXChar extends BXNode implements CharacterData {
/**
* Constructor.
* @param n node reference
*/
BXChar(final ANode n) {
super(n);
}
@Override
public final String getData() {
return getNodeValue();
}
@Override
public final String getNodeValue() {
return Token.string(node.string());
}
@Override
public final int getLength() {
return node.string().length;
}
@Override
public final String substringData(final int off, final int count) {
final String val = getNodeValue();
if(count < 0 || off < 0 || off >= val.length()) throw new DOMException(
DOMException.INDEX_SIZE_ERR, "Invalid size values.");
return val.substring(off, Math.min(val.length(), off + count));
}
@Override
public final void appendData(final String value) {
Util.notimplemented();
}
@Override
public final void deleteData(final int off, final int count) {
Util.notimplemented();
}
@Override
public final void insertData(final int off, final String value) {
Util.notimplemented();
}
@Override
public final void replaceData(final int off, final int count,
final String value) {
Util.notimplemented();
}
@Override
public final void setData(final String dat) {
Util.notimplemented();
}
}