/* * Copyright (c) 2011-2012 ICM Uniwersytet Warszawski All rights reserved. * See LICENCE file for licensing information. */ package eu.emi.security.authn.x509.proxy; /** * Specifies the type of the proxy chain. * * @author K. Benedyczak */ public enum ProxyChainType { /** * A chain contains only legacy Globus 2 proxies. */ LEGACY, /** * A chain contains only draft RFC proxies. */ DRAFT_RFC, /** * A chain contains only RFC 3820 conformant proxies. */ RFC3820, /** * A chain contains proxies of different types (legacy, draft RFC or RFC). */ MIXED; /** * Converts this chain type to {@link ProxyType}. Works only if the * chain is consistent, i.e. if all proxies are of the same type. * @return the chain type as the {@link ProxyType} * @throws IllegalStateException if this enum value is MIXED */ public ProxyType toProxyType() throws IllegalStateException { if (equals(DRAFT_RFC)) return ProxyType.DRAFT_RFC; if (equals(RFC3820)) return ProxyType.RFC3820; if (equals(LEGACY)) return ProxyType.LEGACY; throw new IllegalStateException("Can't convert MIXED ProxyChainType to ProxyType"); } }