package org.jivesoftware.smackx.ikey.element; import org.jivesoftware.smack.packet.NamedElement; import org.jivesoftware.smack.packet.XmlEnvironment; import org.jivesoftware.smack.util.Objects; import org.jivesoftware.smack.util.StringUtils; import org.jivesoftware.smack.util.XmlStringBuilder; import java.net.URI; 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 = "fpr"; private final URI subUri; private final String subFingerprint; public SubordinateElement(URI subKeyItemUri, String subKeyFingerprint) { this.subUri = Objects.requireNonNull(subKeyItemUri, "uri MUST NOT be null nor empty."); this.subFingerprint = StringUtils.requireNotNullNorEmpty(subKeyFingerprint, "fpr MUST NOT be null nor empty."); } public URI 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().toString()) .attribute(ATTR_SUB_FINGERPRINT, getFingerprint()) .closeEmptyElement(); return xml; } }