package org.lttpp.eemory.dom.impl;
import org.apache.commons.lang3.StringUtils;
import org.lttpp.eemory.Constants;
import org.lttpp.eemory.dom.DocumentType;
import org.lttpp.eemory.dom.Node;
import org.lttpp.eemory.util.ConstantsUtil;
public class DocumentTypeImpl extends NodeImpl implements DocumentType {
private String name;
private String publicId;
private String systemId;
protected DocumentTypeImpl(final String name, final String publicId, final String systemId) {
this.name = name;
this.publicId = publicId;
this.systemId = systemId;
}
@Override
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
@Override
public String getPublicId() {
return publicId;
}
public void setPublicId(final String publicId) {
this.publicId = publicId;
}
@Override
public String getSystemId() {
return systemId;
}
public void setSystemId(final String systemId) {
this.systemId = systemId;
}
@Override
public short getNodeType() {
return Node.DOCUMENT_TYPE_NODE;
}
@Override
public boolean isEqualNode(final Node other) {
if (!super.isEqualNode(other)) {
return false;
}
if (!getPublicId().equals(((DocumentTypeImpl) other).getPublicId()) || !getSystemId().equals(((DocumentTypeImpl) other).getSystemId())) {
return false;
}
return true;
}
@Override
public String toString() {
if (StringUtils.isBlank(publicId)) {
return ConstantsUtil.LEFT_ANGLE_BRACKET + ConstantsUtil.EXCLAMATION + Constants.ENML_DOCTYPE + StringUtils.SPACE + name + StringUtils.SPACE + Constants.ENML_DOCTYPE_SYSTEM + StringUtils.SPACE + ConstantsUtil.DOUBLE_QUOTE + systemId + ConstantsUtil.DOUBLE_QUOTE + ConstantsUtil.RIGHT_ANGLE_BRACKET;
} else {
return ConstantsUtil.LEFT_ANGLE_BRACKET + ConstantsUtil.EXCLAMATION + Constants.ENML_DOCTYPE + StringUtils.SPACE + name + StringUtils.SPACE + Constants.ENML_DOCTYPE_PUBLIC + StringUtils.SPACE + ConstantsUtil.DOUBLE_QUOTE + publicId + ConstantsUtil.DOUBLE_QUOTE + StringUtils.SPACE + ConstantsUtil.DOUBLE_QUOTE + systemId + ConstantsUtil.DOUBLE_QUOTE + ConstantsUtil.RIGHT_ANGLE_BRACKET;
}
}
}