mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-15 16:14:52 +02:00
Prototype first ikey classes
This commit is contained in:
parent
c9e2c48060
commit
07ce987d20
|
@ -0,0 +1,8 @@
|
|||
package org.jivesoftware.smackx.ikey;
|
||||
|
||||
public class IkeyConstants {
|
||||
|
||||
public static final String NAMESPACE = "urn:xmpp:ikey:0";
|
||||
public static final String IKEY_NODE = NAMESPACE + ":ikey";
|
||||
public static final String SUB_NODE = NAMESPACE + ":sub";
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package org.jivesoftware.smackx.ikey;
|
||||
|
||||
public enum IkeyType {
|
||||
OX,
|
||||
X509
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package org.jivesoftware.smackx.ikey.element;
|
||||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||
import org.jivesoftware.smackx.ikey.IkeyConstants;
|
||||
import org.jivesoftware.smackx.ikey.IkeyType;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
public class PlainIKeyElement implements ExtensionElement {
|
||||
|
||||
public static final String NAMESPACE = IkeyConstants.NAMESPACE;
|
||||
public static final String ELEMENT = "ikey";
|
||||
public static final String ATTR_IKEY_TYPE = "type";
|
||||
|
||||
private final IkeyType type;
|
||||
|
||||
private final QName QNAME = new QName(IkeyConstants.NAMESPACE, ELEMENT);
|
||||
|
||||
public PlainIKeyElement() {
|
||||
this.type = IkeyType.OX;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNamespace() {
|
||||
return NAMESPACE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return ELEMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this, xmlEnvironment);
|
||||
return xml;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package org.jivesoftware.smackx.ikey.element;
|
||||
|
||||
import org.jivesoftware.smack.packet.NamedElement;
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.util.StringUtils;
|
||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||
|
||||
public class SubordinateElement implements NamedElement {
|
||||
|
||||
public static final String ELEMENT = "sub";
|
||||
public static final String ATTR_SUB_URI = "uri";
|
||||
public static final String ATTR_SUB_FINGERPRINT = "fingerprint";
|
||||
|
||||
private final String subUri;
|
||||
private final String subFingerprint;
|
||||
|
||||
public SubordinateElement(String subKeyItemUri, String subKeyFingerprint) {
|
||||
this.subUri = StringUtils.requireNotNullNorEmpty(subKeyItemUri, "uri MUST NOT be null nor empty.");
|
||||
this.subFingerprint = StringUtils.requireNotNullNorEmpty(subKeyFingerprint, "fingerprint MUST NOT be null nor empty.");
|
||||
}
|
||||
|
||||
public String getUri() {
|
||||
return subUri;
|
||||
}
|
||||
|
||||
public String getFingerprint() {
|
||||
return subFingerprint;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return ELEMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this)
|
||||
.attribute(ATTR_SUB_URI, getUri())
|
||||
.attribute(ATTR_SUB_FINGERPRINT, getFingerprint())
|
||||
.closeEmptyElement();
|
||||
return xml;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package org.jivesoftware.smackx.ikey.element;
|
||||
|
||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||
import org.jivesoftware.smack.util.Objects;
|
||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||
import org.jivesoftware.smackx.ikey.IkeyConstants;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SubordinateListElement implements ExtensionElement {
|
||||
|
||||
public static final String NAMESPACE = IkeyConstants.NAMESPACE;
|
||||
public static final String ELEMENT = "subordinates";
|
||||
|
||||
private final List<SubordinateElement> subordinates;
|
||||
|
||||
public SubordinateListElement(List<SubordinateElement> subordinates) {
|
||||
this.subordinates = Objects.requireNonNullNorEmpty(subordinates, "List of subordinates MUST NOT be null nor empty.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNamespace() {
|
||||
return NAMESPACE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getElementName() {
|
||||
return ELEMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
|
||||
XmlStringBuilder xml = new XmlStringBuilder(this, xmlEnvironment)
|
||||
.rightAngleBracket()
|
||||
.append(subordinates)
|
||||
.closeElement(this);
|
||||
return xml;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package org.jivesoftware.smackx.ikey.element;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class SubordinateListElementTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
SubordinateListElement listElement = buildElement(
|
||||
new SubordinateElement("xmpp:hamlet@denmark.lit?;node=urn:xmpp:openpgp:0:public-keys:1357B01865B2503C18453D208CAC2A9678548E35" +
|
||||
";item=2020-01-21T10:46:21Z", "1357B01865B2503C18453D208CAC2A9678548E35"),
|
||||
new SubordinateElement("xmpp:hamlet@denmark.lit?;node=urn:xmpp:omemo:1:bundles" +
|
||||
";item=123456", "e64dc9166dd34db64c9247bd502c5969e365a98f3aa41c87247d120487fdd32f")
|
||||
);
|
||||
|
||||
System.out.println(listElement.toXML());
|
||||
}
|
||||
|
||||
private SubordinateListElement buildElement(SubordinateElement... subordinateElements) {
|
||||
return new SubordinateListElement(Arrays.asList(subordinateElements));
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue