package jp.aonir.fuzzyxml.internal;
import jp.aonir.fuzzyxml.FuzzyXMLDocType;
import jp.aonir.fuzzyxml.FuzzyXMLNode;
public class FuzzyXMLDocTypeImpl extends AbstractFuzzyXMLNode implements FuzzyXMLDocType {
private String _name;
private String _publicId;
private String _systemId;
private String _internalSubset;
public FuzzyXMLDocTypeImpl(FuzzyXMLNode parent, String name, String publicId, String systemId, String internalSubset, int offset, int length) {
super(parent, offset, length);
this._name = name;
this._publicId = publicId;
this._systemId = systemId;
this._internalSubset = internalSubset;
}
public String getName() {
return _name;
}
public String getPublicId() {
return _publicId;
}
public String getSystemId() {
return _systemId;
}
public String getInternalSubset() {
return _internalSubset;
}
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("doctype: " + _name + ", " + _publicId + ", " + _systemId + ", " + _internalSubset + "\n");
}
public void toXMLString(RenderContext renderContext, StringBuffer xmlBuffer) {
xmlBuffer.append("<!DOCTYPE ").append(_name);
if (_publicId != null && !_publicId.equals("")) {
xmlBuffer.append(" PUBLIC ");
xmlBuffer.append("\"").append(_publicId).append("\"");
if (_systemId != null && !_systemId.equals("")) {
xmlBuffer.append(" \"").append(_systemId).append("\"");
}
}
else if (_systemId != null && !_systemId.equals("")) {
xmlBuffer.append(" SYSTEM ");
xmlBuffer.append(" \"").append(_systemId).append("\"");
}
if (_internalSubset != null && !_internalSubset.equals("")) {
xmlBuffer.append("[").append(_internalSubset).append("]");
}
xmlBuffer.append(">");
if (renderContext.isShowNewlines()) {
xmlBuffer.append("\n");
}
}
@Override
public String toString() {
return "DOCTYPE: " + _name;
}
}