org.openid4java.discovery.xrds.XrdsServiceEndpoint Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openid4java-shaded Show documentation
Show all versions of openid4java-shaded Show documentation
openid4java (Third party dependencies shaded)
package org.openid4java.discovery.xrds;
import java.util.Set;
import java.util.Arrays;
/**
* Encapsulates the (OpenID-related) information extracted in
* service elements discovered through Yadis.
*
* Note: this class has a natural ordering that is inconsistent with equals.
* Only the URI priority and Service priority fields are used for comparison.
*
* @author jbufu
*/
public class XrdsServiceEndpoint implements Comparable {
private int servicePriority;
private int uriPriority;
private Set types;
private String uri;
private String localId;
private String delegate;
public static final int LOWEST_PRIORITY = -1;
private String canonicalId;
public XrdsServiceEndpoint(String uri, Set types,
int servicePriority, int uriPriority, String localId, String delegate, String canonicalId)
{
this.servicePriority = servicePriority;
this.uriPriority = uriPriority;
this.types = types;
this.uri = uri;
this.localId = localId;
this.delegate = delegate;
this.canonicalId = canonicalId;
}
public int getServicePriority() {
return servicePriority;
}
public void setServicePriority(int servicePriority) {
this.servicePriority = servicePriority;
}
public int getUriPriority() {
return uriPriority;
}
public void setUriPriority(int uriPriority) {
this.uriPriority = uriPriority;
}
public Set getTypes() {
return types;
}
public void setTypes(Set types) {
this.types = types;
}
public boolean matchesType(String type)
{
return types != null && types.contains(type);
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getLocalId() {
return localId;
}
public void setLocalId(String localId) {
this.localId = localId;
}
public String getDelegate() {
return delegate;
}
public void setDelegate(String delegate) {
this.delegate = delegate;
}
public String getCanonicalId() {
return canonicalId;
}
public void setCanonicalId(String canonicalId) {
this.canonicalId = canonicalId;
}
public int compareTo(Object o) {
XrdsServiceEndpoint other = (XrdsServiceEndpoint) o;
if (servicePriority == LOWEST_PRIORITY && other.servicePriority != LOWEST_PRIORITY)
return 1;
if (other.servicePriority == LOWEST_PRIORITY && servicePriority != LOWEST_PRIORITY)
return -1;
if (servicePriority < other.servicePriority) return -1;
if (servicePriority > other.servicePriority) return 1;
if (uriPriority == LOWEST_PRIORITY && other.uriPriority != LOWEST_PRIORITY)
return 1;
if (other.uriPriority == LOWEST_PRIORITY && uriPriority != LOWEST_PRIORITY)
return -1;
if (uriPriority < other.uriPriority) return -1;
if (uriPriority > other.uriPriority) return 1;
// XRI spec says the consumer should pick at random here
return 0;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Service priority: ").append(servicePriority);
sb.append("\nType: ").append(types.toString());
sb.append("\nURI: ").append(uri);
sb.append("\nURI Priority: ").append(uriPriority);
sb.append("\nLocalID: ").append(localId);
return sb.toString();
}
}