001/* 002 * JKNIV, whinstone one contract to access your database. 003 * 004 * Copyright (C) 2017, the original author or authors. 005 * 006 * This library is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 2.1 of the License. 010 * 011 * This library is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with this library; if not, write to the Free Software Foundation, Inc., 018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 019 */ 020package net.sf.jkniv.whinstone.couchdb.commands; 021 022import org.apache.http.client.methods.HttpDelete; 023import org.apache.http.client.methods.HttpGet; 024import org.apache.http.client.methods.HttpHead; 025import org.apache.http.client.methods.HttpPost; 026import org.apache.http.client.methods.HttpPut; 027import org.apache.http.client.methods.HttpRequestBase; 028 029import net.sf.jkniv.sqlegance.RepositoryException; 030 031/** 032 * HTTP methods 033 * 034 * @author Alisson Gomes 035 * @since 0.6.0 036 */ 037public enum HttpMethod 038{ 039 GET, POST, PUT, DELETE, HEAD , TRACE, OPTIONS, CONNECT; 040 041 042 HttpRequestBase newHttp(String url) 043 { 044 HttpRequestBase http = null; 045 if (this == GET) 046 http = new HttpGet(url); 047 else if (this == POST) 048 http = new HttpPost(url); 049 else if (this == PUT) 050 http = new HttpPut(url); 051 else if (this == DELETE) 052 http = new HttpDelete(url); 053 else if (this == HEAD) 054 http = new HttpHead(url); 055 else 056 throw new RepositoryException("CouchDb Repository just supports GET | POST | PUT | DELETE | HEAD http methods"); 057 058 return http; 059 060 } 061}