package org.jboss.as.remoting; import java.util.HashMap; import java.util.Locale; import java.util.Map; import org.jboss.dmr.ModelNode; /** * Protocols that can be used for a remoting connection * * @author Stuart Douglas */ public enum Protocol { REMOTE("remote"), REMOTE_HTTP("remote+http"), HTTP_REMOTING("http-remoting"), HTTPS_REMOTING("https-remoting"), REMOTE_HTTPS("remote+https"); private static final Map<String, Protocol> MAP; static { final Map<String, Protocol> map = new HashMap<String, Protocol>(); for (Protocol value : values()) { map.put(value.localName, value); } MAP = map; } public static Protocol forName(String localName) { final Protocol value = localName != null ? MAP.get(localName.toLowerCase(Locale.ENGLISH)) : null; return value == null && localName != null ? Protocol.valueOf(localName.toUpperCase(Locale.ENGLISH)) : value; } private final String localName; Protocol(final String localName) { this.localName = localName; } @Override public String toString() { return localName; } public ModelNode toModelNode() { return new ModelNode().set(toString()); } }