/*
* Copyright 2011 Eric F. Savage, code@efsavage.com
*
* 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 com.ajah.http;
import com.ajah.util.Identifiable;
import com.ajah.util.IdentifiableEnum;
/**
* Enum for HTTP methods.
*
* @author <a href="http://efsavage.com">Eric F. Savage</a>, <a
* href="mailto:code@efsavage.com">code@efsavage.com</a>.
*
*/
public enum HttpMethod implements IdentifiableEnum<String> {
/**
* GET
*/
GET("2", "get", "GET"),
/**
* POST
*/
POST("5", "post", "POST"),
/**
* DELETE
*/
DELETE("1", "delete", "DELETE"),
/**
* HEAD
*/
HEAD("3", "head", "HEAD"),
/**
* OPTIONS
*/
OPTIONS("4", "options", "OPTIONS"),
/**
* PUT
*/
PUT("6", "put", "PUT"),
/**
* TRACE
*/
TRACE("7", "trace", "TRACE");
/**
* Finds a matching method and returns the proper value, or null if
* unmatched.
*
* @param method
* The name of the method to attempt to match.
* @return The matching enum value, or null if unmatched.
*/
public static HttpMethod get(final String method) {
for (final HttpMethod candidate : values()) {
if (candidate.name().equals(method)) {
return candidate;
}
}
return null;
}
private final String id;
private final String code;
public String getCode() {
return code;
}
public String getName() {
return name;
}
private final String name;
private HttpMethod(final String id, final String code, final String name) {
this.id = id;
this.code = code;
this.name = name;
}
/**
* Returns the ID of this method. This ID is arbitrary and has no meaning
* outside of this enum class.
*
* @see com.ajah.util.Identifiable#getId()
*/
@Override
public String getId() {
return this.id;
}
/**
* Throws UnsupportedOperationException, included only to satisfy
* {@link Identifiable} interface.
*
* @see com.ajah.util.Identifiable#setId(java.lang.Comparable)
*/
@Override
public void setId(final String id) {
throw new UnsupportedOperationException();
}
}