/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: HttpMethodHandler.java,v 1.1 2005/05/11 17:48:20 rampil Exp $
 */
package org.logical_paradox.httpd.method;

import java.io.IOException;

import org.logical_paradox.httpd.ClientRequest;
import org.logical_paradox.httpd.ServerResponse;
import org.logical_paradox.httpd.exception.HttpException;
import org.logical_paradox.httpd.exception.TerminationException;

/**
 * HTTPメソッドのハンドラ
 * GET/POST/HEAD/DELEなどのメソッドのハンドラを実装する場合にimplementすること
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.1 $
 */
public interface HttpMethodHandler {
	/**
	 * メソッドを処理する
	 * @param request クライアントからのリクエスト
	 * @return サーバーからのレスポンス
	 * @throws IOException 入出力例外
	 * @throws TerminationException サーバー停止信号
	 * @throws HttpException HTTPステータスコード(エラーの場合のみ)
	 */
	public ServerResponse execute(ClientRequest request) throws IOException, TerminationException, HttpException;
}
