Mercury-IM/domain/src/main/java/org/jivesoftware/smackx/ikey/element/SubordinateElement.java

66 lines
2.0 KiB
Java

package org.jivesoftware.smackx.ikey.element;
import org.jivesoftware.smack.packet.NamedElement;
import org.jivesoftware.smack.packet.XmlEnvironment;
import org.jivesoftware.smack.util.EqualsUtil;
import org.jivesoftware.smack.util.HashCode;
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;
}
@Override
public int hashCode() {
return HashCode.builder()
.append(getElementName())
.append(getFingerprint())
.append(getUri())
.build();
}
@Override
public boolean equals(Object other) {
return EqualsUtil.equals(this, other, (e, o) -> e
.append(getElementName(), o.getElementName())
.append(getFingerprint(), o.getFingerprint())
.append(getUri(), o.getUri()));
}
}