/** * Copyright 2013, Landz and its contributors. All rights reserved. * * 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 z.net.http.parser; import java.nio.charset.Charset; public enum HTTPMethod { HTTP_DELETE("DELETE")// = 0 , HTTP_GET("GET") , HTTP_HEAD("HEAD") , HTTP_POST("POST") , HTTP_PUT("PUT") , HTTP_PATCH("PATCH") /* pathological */ , HTTP_CONNECT("CONNECT") , HTTP_OPTIONS("OPTIONS") , HTTP_TRACE("TRACE") /* webdav */ , HTTP_COPY("COPY") , HTTP_LOCK("LOCK") , HTTP_MKCOL("MKCOL") , HTTP_MOVE("MOVE") , HTTP_PROPFIND("PROPFIND") , HTTP_PROPPATCH("PROPPATCH") , HTTP_UNLOCK("UNLOCK") , HTTP_REPORT("REPORT") , HTTP_MKACTIVITY("MKACTIVITY") , HTTP_CHECKOUT("CHECKOUT") , HTTP_MERGE("MERGE") , HTTP_MSEARCH("M-SEARCH") , HTTP_NOTIFY("NOTIFY") , HTTP_SUBSCRIBE("SUBSCRIBE") , HTTP_UNSUBSCRIBE("UNSUBSCRIBE") , HTTP_PURGE("PURGE") ; private static Charset ASCII; static { ASCII = Charset.forName("US-ASCII");; } public byte[] bytes; HTTPMethod(String name) { // good grief, Charlie Brown, the following is necessary because // java is retarded: // illegal reference to static field from initializer // this.bytes = name.getBytes(ASCII); // yet it's not illegal to reference static fields from // methods called from initializer. init(name); } public static HTTPMethod parse(String s) { if ("HTTP_DELETE".equalsIgnoreCase(s)) {return HTTP_DELETE;} else if ("DELETE".equalsIgnoreCase(s)) {return HTTP_DELETE;} else if ("HTTP_GET".equalsIgnoreCase(s)) {return HTTP_GET;} else if ("GET".equalsIgnoreCase(s)) {return HTTP_GET;} else if ("HTTP_HEAD".equalsIgnoreCase(s)) {return HTTP_HEAD;} else if ("HEAD".equalsIgnoreCase(s)) {return HTTP_HEAD;} else if ("HTTP_POST".equalsIgnoreCase(s)) {return HTTP_POST;} else if ("POST".equalsIgnoreCase(s)) {return HTTP_POST;} else if ("HTTP_PUT".equalsIgnoreCase(s)) {return HTTP_PUT;} else if ("PUT".equalsIgnoreCase(s)) {return HTTP_PUT;} else if ("HTTP_PATCH".equalsIgnoreCase(s)) {return HTTP_PATCH;} else if ("PATCH".equalsIgnoreCase(s)) {return HTTP_PATCH;} else if ("HTTP_CONNECT".equalsIgnoreCase(s)) {return HTTP_CONNECT;} else if ("CONNECT".equalsIgnoreCase(s)) {return HTTP_CONNECT;} else if ("HTTP_OPTIONS".equalsIgnoreCase(s)) {return HTTP_OPTIONS;} else if ("OPTIONS".equalsIgnoreCase(s)) {return HTTP_OPTIONS;} else if ("HTTP_TRACE".equalsIgnoreCase(s)) {return HTTP_TRACE;} else if ("TRACE".equalsIgnoreCase(s)) {return HTTP_TRACE;} else if ("HTTP_COPY".equalsIgnoreCase(s)) {return HTTP_COPY;} else if ("COPY".equalsIgnoreCase(s)) {return HTTP_COPY;} else if ("HTTP_LOCK".equalsIgnoreCase(s)) {return HTTP_LOCK;} else if ("LOCK".equalsIgnoreCase(s)) {return HTTP_LOCK;} else if ("HTTP_MKCOL".equalsIgnoreCase(s)) {return HTTP_MKCOL;} else if ("MKCOL".equalsIgnoreCase(s)) {return HTTP_MKCOL;} else if ("HTTP_MOVE".equalsIgnoreCase(s)) {return HTTP_MOVE;} else if ("MOVE".equalsIgnoreCase(s)) {return HTTP_MOVE;} else if ("HTTP_PROPFIND".equalsIgnoreCase(s)){return HTTP_PROPFIND;} else if ("PROPFIND".equalsIgnoreCase(s)) {return HTTP_PROPFIND;} else if ("HTTP_PROPPATCH".equalsIgnoreCase(s)){return HTTP_PROPPATCH;} else if ("PROPPATCH".equalsIgnoreCase(s)) {return HTTP_PROPPATCH;} else if ("HTTP_UNLOCK".equalsIgnoreCase(s)) {return HTTP_UNLOCK;} else if ("UNLOCK".equalsIgnoreCase(s)) {return HTTP_UNLOCK;} else if ("HTTP_REPORT".equalsIgnoreCase(s)) {return HTTP_REPORT;} else if ("REPORT".equalsIgnoreCase(s)){return HTTP_REPORT;} else if ("HTTP_MKACTIVITY".equalsIgnoreCase(s)) {return HTTP_MKACTIVITY;} else if ("MKACTIVITY".equalsIgnoreCase(s)){return HTTP_MKACTIVITY;} else if ("HTTP_CHECKOUT".equalsIgnoreCase(s)) {return HTTP_CHECKOUT;} else if ("CHECKOUT".equalsIgnoreCase(s)){return HTTP_CHECKOUT;} else if ("HTTP_MERGE".equalsIgnoreCase(s)) {return HTTP_MERGE;} else if ("MERGE".equalsIgnoreCase(s)){return HTTP_MERGE;} else if ("HTTP_MSEARCH".equalsIgnoreCase(s)) {return HTTP_MSEARCH;} else if ("M-SEARCH".equalsIgnoreCase(s)) {return HTTP_MSEARCH;} else if ("HTTP_NOTIFY".equalsIgnoreCase(s)) {return HTTP_NOTIFY;} else if ("NOTIFY".equalsIgnoreCase(s)) {return HTTP_NOTIFY;} else if ("HTTP_SUBSCRIBE".equalsIgnoreCase(s)) {return HTTP_SUBSCRIBE;} else if ("SUBSCRIBE".equalsIgnoreCase(s)) {return HTTP_SUBSCRIBE;} else if ("HTTP_UNSUBSCRIBE".equalsIgnoreCase(s)) {return HTTP_UNSUBSCRIBE;} else if ("UNSUBSCRIBE".equalsIgnoreCase(s)) {return HTTP_UNSUBSCRIBE;} else if ("PATCH".equalsIgnoreCase(s)) {return HTTP_PATCH;} else if ("PURGE".equalsIgnoreCase(s)) {return HTTP_PURGE;} else {return null;} } void init (String name) { ASCII = null == ASCII ? Charset.forName("US-ASCII") : ASCII; this.bytes = name.getBytes(ASCII); } }