package jp.aonir.fuzzyxml.internal;
import jp.aonir.fuzzyxml.FuzzyXMLElement;
import jp.aonir.fuzzyxml.FuzzyXMLProcessingInstruction;
public class FuzzyXMLProcessingInstructionImpl extends AbstractFuzzyXMLNode implements FuzzyXMLProcessingInstruction {
private String _name;
private String _data;
public FuzzyXMLProcessingInstructionImpl(String name, String data) {
super();
this._name = name;
this._data = data;
}
public FuzzyXMLProcessingInstructionImpl(FuzzyXMLElement parent, String name, String data, int offset, int length) {
super(parent, offset, length);
this._name = name;
this._data = data;
}
public String getData() {
return _data;
}
public String getName() {
return _name;
}
public void setData(String data) {
int length = this._data.length();
this._data = data;
fireModifyEvent(toXMLString(new RenderContext(false)), getOffset(), getLength());
appendOffset((FuzzyXMLElement) getParentNode(), getOffset(), data.length() - length);
}
@Override
public String toString() {
return "PI: " + _name;
}
public String toDebugString() {
StringBuffer sb = new StringBuffer();
toDebugString(sb, 0);
return sb.toString();
}
public void toDebugString(StringBuffer buffer, int indent) {
for (int i = 0; i < indent; i ++) {
buffer.append(" ");
}
buffer.append("processingInstruction: " + _name + ", " + _data + "\n");
}
public void toXMLString(RenderContext renderContext, StringBuffer xmlBuffer) {
xmlBuffer.append("<?" + _name + " " + _data + "?>");
if (renderContext.isShowNewlines()) {
xmlBuffer.append("\n");
}
}
}