mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 10:19:41 +02:00
Rework XML Element hierarchy and XmlStringBuilder
- Reduce the amount of types that are subtypes of NamedElement. See javadoc of NamedElement for rationale. - Work more with XmlEnvironment in XmlStringBuilder. - Some minor changes to XmlStringBuilder API.
This commit is contained in:
parent
e9bcdf3e6d
commit
65576cf3c2
74 changed files with 653 additions and 523 deletions
|
@ -20,7 +20,6 @@ import java.nio.charset.Charset;
|
|||
import java.util.Date;
|
||||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.NamedElement;
|
||||
import org.jivesoftware.smack.util.Objects;
|
||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||
|
||||
|
@ -77,7 +76,7 @@ public class PubkeyElement implements ExtensionElement {
|
|||
XmlStringBuilder xml = new XmlStringBuilder(this)
|
||||
.optAttribute(ATTR_DATE, date)
|
||||
.rightAngleBracket()
|
||||
.element(getDataElement())
|
||||
.append(getDataElement())
|
||||
.closeElement(this);
|
||||
return xml;
|
||||
}
|
||||
|
@ -85,7 +84,7 @@ public class PubkeyElement implements ExtensionElement {
|
|||
/**
|
||||
* Element that contains the base64 encoded public key.
|
||||
*/
|
||||
public static class PubkeyDataElement implements NamedElement {
|
||||
public static class PubkeyDataElement implements ExtensionElement {
|
||||
|
||||
public static final String ELEMENT = "data";
|
||||
|
||||
|
@ -109,9 +108,14 @@ public class PubkeyElement implements ExtensionElement {
|
|||
return ELEMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNamespace() {
|
||||
return NAMESPACE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XmlStringBuilder toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this)
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this, enclosingNamespace)
|
||||
.rightAngleBracket()
|
||||
.append(new String(b64Data, Charset.forName("UTF-8")))
|
||||
.closeElement(this);
|
||||
|
|
|
@ -22,7 +22,6 @@ import java.util.Map;
|
|||
import java.util.TreeMap;
|
||||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.NamedElement;
|
||||
import org.jivesoftware.smack.util.Objects;
|
||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||
|
||||
|
@ -66,9 +65,7 @@ public final class PublicKeysListElement implements ExtensionElement {
|
|||
@Override
|
||||
public XmlStringBuilder toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this).rightAngleBracket();
|
||||
for (PubkeyMetadataElement metadataElement : metadata.values()) {
|
||||
xml.element(metadataElement);
|
||||
}
|
||||
xml.append(metadata.values());
|
||||
xml.closeElement(this);
|
||||
return xml;
|
||||
}
|
||||
|
@ -92,7 +89,7 @@ public final class PublicKeysListElement implements ExtensionElement {
|
|||
}
|
||||
}
|
||||
|
||||
public static class PubkeyMetadataElement implements NamedElement {
|
||||
public static class PubkeyMetadataElement implements ExtensionElement {
|
||||
|
||||
public static final String ELEMENT = "pubkey-metadata";
|
||||
public static final String ATTR_V4_FINGERPRINT = "v4-fingerprint";
|
||||
|
@ -123,6 +120,11 @@ public final class PublicKeysListElement implements ExtensionElement {
|
|||
return ELEMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNamespace() {
|
||||
return NAMESPACE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XmlStringBuilder toXML(org.jivesoftware.smack.packet.XmlEnvironment enclosingNamespace) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue