JsonDomDocument.java
// Generated by delombok at Fri Nov 29 09:48:08 UTC 2024
package de.larssh.json.dom;
import static de.larssh.utils.Finals.constant;
import static java.util.Collections.singletonList;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Comment;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.EntityReference;
import org.w3c.dom.Node;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
import de.larssh.json.dom.values.JsonDomValue;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.Nullable;
/**
* JSON DOM implementation of {@link Document}.
*
* @param <T> implementation specific JSON element type
*/
public class JsonDomDocument<T> extends JsonDomNode<T> implements Document {
/**
* Node name of the document element
*/
public static final String DOCUMENT_ELEMENT_NODE_NAME = constant("root");
/**
* Document element with node name {@code root}
*/
private final JsonDomElement<T> documentElement;
/**
* Constructor of {@link JsonDomDocument}.
*
* @param jsonDomValue wrapped JSON element
*/
public JsonDomDocument(final JsonDomValue<T> jsonDomValue) {
super(null, "#document");
documentElement = new JsonDomElement<>(this, DOCUMENT_ELEMENT_NODE_NAME, jsonDomValue);
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public Node adoptNode(@Nullable @SuppressWarnings("unused") final Node source) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomAttribute<T> createAttribute(@Nullable @SuppressWarnings("unused") final String name) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomAttribute<T> createAttributeNS(@Nullable @SuppressWarnings("unused") final String namespaceURI, @Nullable @SuppressWarnings("unused") final String qualifiedName) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public CDATASection createCDATASection(@Nullable @SuppressWarnings("unused") final String data) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public Comment createComment(@Nullable @SuppressWarnings("unused") final String data) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public DocumentFragment createDocumentFragment() {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomElement<T> createElement(@Nullable @SuppressWarnings("unused") final String tagName) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomElement<T> createElementNS(@Nullable @SuppressWarnings("unused") final String namespaceURI, @Nullable @SuppressWarnings("unused") final String qualifiedName) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public EntityReference createEntityReference(@Nullable @SuppressWarnings("unused") final String name) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public ProcessingInstruction createProcessingInstruction(@Nullable @SuppressWarnings("unused") final String target, @Nullable @SuppressWarnings("unused") final String data) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public Text createTextNode(@Nullable @SuppressWarnings("unused") final String data) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
@SuppressWarnings("PMD.ReturnEmptyCollectionRatherThanNull")
public JsonDomNamedNodeMap<JsonDomAttribute<T>> getAttributes() {
return null;
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomNodeList<JsonDomNode<T>> getChildNodes() {
return new JsonDomNodeList<>(singletonList(getDocumentElement()));
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public DocumentType getDoctype() {
return null;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getDocumentURI() {
return null;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public DOMConfiguration getDomConfig() {
return null;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public JsonDomElement<T> getElementById(@Nullable @SuppressWarnings("unused") final String elementId) {
return null;
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomNodeList<JsonDomElement<T>> getElementsByTagName(@Nullable final String tagName) {
return getDocumentElement().getElementsByTagName(tagName);
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomNodeList<JsonDomElement<T>> getElementsByTagNameNS(@Nullable @SuppressWarnings("unused") final String namespaceURI, @Nullable @SuppressWarnings("unused") final String localName) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public DOMImplementation getImplementation() {
return null;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getInputEncoding() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public T getJsonElement() {
return getDocumentElement().getJsonElement();
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public JsonDomNode<T> getNextSibling() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public short getNodeType() {
return DOCUMENT_NODE;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getNodeValue() {
return null;
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomDocument<T> getOwnerDocument() {
return this;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public JsonDomNode<T> getPreviousSibling() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public boolean getStrictErrorChecking() {
return true;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getTextContent() {
return null;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getXmlEncoding() {
return null;
}
/**
* {@inheritDoc}
*/
@Override
public boolean getXmlStandalone() {
return false;
}
/**
* {@inheritDoc}
*/
@Nullable
@Override
public String getXmlVersion() {
return null;
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomNode<T> importNode(@Nullable @SuppressWarnings("unused") final Node importedNode, @SuppressWarnings("unused") final boolean deep) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Override
public void normalizeDocument() {
// do nothing
}
/**
* {@inheritDoc}
*/
@NonNull
@Override
public JsonDomNode<T> renameNode(@Nullable @SuppressWarnings("unused") final Node node, @Nullable @SuppressWarnings("unused") final String namespaceURI, @Nullable @SuppressWarnings("unused") final String qualifiedName) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Override
public void setDocumentURI(@Nullable @SuppressWarnings("unused") final String documentURI) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Override
public void setStrictErrorChecking(@SuppressWarnings("unused") final boolean strictErrorChecking) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Override
public void setXmlStandalone(@SuppressWarnings("unused") final boolean xmlStandalone) {
throw new JsonDomNotSupportedException();
}
/**
* {@inheritDoc}
*/
@Override
public void setXmlVersion(@Nullable @SuppressWarnings("unused") final String xmlVersion) {
throw new JsonDomNotSupportedException();
}
/**
* Document element with node name {@code root}
*
* @return document element
*/
@java.lang.SuppressWarnings("all")
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(justification = "generated code")
@lombok.Generated
public JsonDomElement<T> getDocumentElement() {
return this.documentElement;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(justification = "generated code")
@lombok.Generated
public boolean equals(@edu.umd.cs.findbugs.annotations.Nullable final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof JsonDomDocument)) return false;
final JsonDomDocument<?> other = (JsonDomDocument<?>) o;
if (!other.canEqual((java.lang.Object) this)) return false;
if (!super.equals(o)) return false;
final java.lang.Object this$documentElement = this.getDocumentElement();
final java.lang.Object other$documentElement = other.getDocumentElement();
if (this$documentElement == null ? other$documentElement != null : !this$documentElement.equals(other$documentElement)) return false;
return true;
}
@java.lang.SuppressWarnings("all")
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(justification = "generated code")
@lombok.Generated
protected boolean canEqual(@edu.umd.cs.findbugs.annotations.Nullable final java.lang.Object other) {
return other instanceof JsonDomDocument;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(justification = "generated code")
@lombok.Generated
public int hashCode() {
final int PRIME = 59;
int result = super.hashCode();
final java.lang.Object $documentElement = this.getDocumentElement();
result = result * PRIME + ($documentElement == null ? 43 : $documentElement.hashCode());
return result;
}
}