jimu-decompiled/sources/com/thoughtworks/xstream/io/xml/DomWriter.java
2025-05-13 19:24:51 +02:00

72 lines
2.4 KiB
Java

package com.thoughtworks.xstream.io.xml;
import com.thoughtworks.xstream.io.naming.NameCoder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/* loaded from: classes.dex */
public class DomWriter extends AbstractDocumentWriter {
private final Document document;
private boolean hasRootElement;
public DomWriter(Document document) {
this(document, new XmlFriendlyNameCoder());
}
private Element top() {
return (Element) getCurrent();
}
@Override // com.thoughtworks.xstream.io.HierarchicalStreamWriter
public void addAttribute(String str, String str2) {
top().setAttribute(encodeAttribute(str), str2);
}
@Override // com.thoughtworks.xstream.io.xml.AbstractDocumentWriter
protected Object createNode(String str) {
Element createElement = this.document.createElement(encodeNode(str));
if (top() != null) {
top().appendChild(createElement);
} else if (!this.hasRootElement) {
this.document.appendChild(createElement);
this.hasRootElement = true;
}
return createElement;
}
@Override // com.thoughtworks.xstream.io.HierarchicalStreamWriter
public void setValue(String str) {
top().appendChild(this.document.createTextNode(str));
}
public DomWriter(Element element) {
this(element, new XmlFriendlyNameCoder());
}
public DomWriter(Document document, NameCoder nameCoder) {
this(document.getDocumentElement(), document, nameCoder);
}
public DomWriter(Element element, Document document, NameCoder nameCoder) {
super(element, nameCoder);
this.document = document;
this.hasRootElement = document.getDocumentElement() != null;
}
public DomWriter(Element element, NameCoder nameCoder) {
this(element, element.getOwnerDocument(), nameCoder);
}
public DomWriter(Document document, XmlFriendlyReplacer xmlFriendlyReplacer) {
this(document.getDocumentElement(), document, (NameCoder) xmlFriendlyReplacer);
}
public DomWriter(Element element, Document document, XmlFriendlyReplacer xmlFriendlyReplacer) {
this(element, document, (NameCoder) xmlFriendlyReplacer);
}
public DomWriter(Element element, XmlFriendlyReplacer xmlFriendlyReplacer) {
this(element, element.getOwnerDocument(), (NameCoder) xmlFriendlyReplacer);
}
}