/*
 * Copyright 2010 david varnes.
 *
 * Licensed under the Apache License, version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at:
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.freeswitch.esl.client.transport.message;

/**
 * Container class for enumeration of ESL message header names, and some commonly used
 * header string values.
 */
public class EslHeaders {
	/**
	 * Standard ESL header names.
	 * <p/>
	 * Note this enum will need to be kept in synch with any new headers introduced on the server side.
	 */
	public enum Name {
		/*
				*  Minor optimization - put most often used headers at the top for fastest resolution
				*  in static fromLiteral().
				*/

		/**
		 * {@code "Content-Type"}
		 */
		CONTENT_TYPE("Content-Type"),
		/**
		 * {@code "Content-Length"}
		 */
		CONTENT_LENGTH("Content-Length"),
		/**
		 * {@code "Reply-Text"}
		 */
		REPLY_TEXT("Reply-Text"),
		/**
		 * {@code "Job-UUID"}
		 */
		JOB_UUID("Job-UUID"),
		/**
		 * {@code "Socket-Mode"}
		 */
		SOCKET_MODE("Socket-Mode"),
		/**
		 * {@code "Control"}
		 */
		Control("Control"),;

		private final String literal;

		private Name(String literal) {
			this.literal = literal;
		}

		public String literal() {
			return literal;
		}

		public static Name fromLiteral(String literal) {
			for (Name name : values()) {
				if (name.literal.equalsIgnoreCase(literal)) {
					return name;
				}
			}

			return null;
		}
	}

	/**
	 * Some common ESL header values. These are provided as a convenience for commonly used values.
	 * <p/>
	 * This values are not coded as an enum to allow for the very large range of possible values,
	 * since they are just Strings.
	 */
	public static final class Value {
		/**
		 * {@code "+OK"}
		 */
		public static final String OK = "+OK";
		/**
		 * {@code "auth/request"}
		 */
		public static final String AUTH_REQUEST = "auth/request";
		/**
		 * {@code "api/response"}
		 */
		public static final String API_RESPONSE = "api/response";
		/**
		 * {@code "command/reply"}
		 */
		public static final String COMMAND_REPLY = "command/reply";
		/**
		 * {@code "text/event-plain"}
		 */
		public static final String TEXT_EVENT_PLAIN = "text/event-plain";
		/**
		 * {@code "text/event-xml"}
		 */
		public static final String TEXT_EVENT_XML = "text/event-xml";
		/**
		 * {@code "text/disconnect-notice"}
		 */
		public static final String TEXT_DISCONNECT_NOTICE = "text/disconnect-notice";
		/**
		 * {@code "-ERR invalid"}
		 */
		public static final String ERR_INVALID = "-ERR invalid";
	}

}

@@ -1539,24 +1539,16 @@
 ral;%0A%0A%09%09
-private 
 Name(Str

Remove unnecessary private modifier from enum constructor