<?php
/**
* フォームを定義するインタフェース
*
* PHP version 5
*
* @package    interfaces
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

interface IForm
{
	/*
	 * フォーム名
	 */
	public function getFormName();

	/*
	 * フォームを初期化する
	 */
	public function init( Config $config );

	/*
	 * フォーム値を取得する
	 */
	public function get( $key );

	/*
	 * フォームに関連付けられたDTOを取得
	 */
	public function getDTO();

	/*
	 * DTOからフォームの入力を行う
	 */
	public function inputDTO( DTO $dto, IModel $model );

	/*
	 * Requstからフォームの入力を行う
	 */
	public function inputRequest( IRequest $request );

	/*
	 * フォームの値をDTOに変換する
	 */
	public function toDTO( IModel $model );

	/*
	 * フォームのバリデートを行う
	 */
	public function validate();

	/*
	 * HTMLオブジェクトに変換
	 */
	public function toHTMLObject( ProcedureContext $context, $read_only = FALSE );


}
