package org.atricore.idbus.capabilities.oauth2.common; import javax.xml.namespace.QName; /** * @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a> */ public enum OAuth2Service { AuthorizationService(new QName(OAuth2Constants.OAUTH2_SERVICE_BASE_URI, "AuthorizationService")), SSOAssertionConsumerService(new QName(OAuth2Constants.SSO_SERVICE_BASE_URI, "AssertionConsumerService")), SSOSingleSignOnService(new QName(OAuth2Constants.SSO_SERVICE_BASE_URI, "SingleSignOnService")), TokenService(new QName(OAuth2Constants.OAUTH2_SERVICE_BASE_URI, "TokenService")), ; private QName qname; OAuth2Service(String uri, String localPart) { this(new QName(uri, localPart)); } OAuth2Service(QName qname) { this.qname = qname; } public QName getQname() { return qname; } public static OAuth2Service asEnum(String name) { String localPart = name.substring(name.lastIndexOf("}") + 1); String uri = name.lastIndexOf("}") > 0 ? name.substring(1, name.lastIndexOf("}")) : ""; QName qname = new QName(uri, localPart); return asEnum(qname); } public static OAuth2Service asEnum(QName qname) { for (OAuth2Service et : values()) { if (et.getQname().equals(qname)) return et; } throw new IllegalArgumentException("Invalid endpoint type: " + qname); } @Override public String toString() { return qname.toString(); } }