Mercurial > pub > Impl
view Lib/IMPL/Web/Application/OperationContract.pm @ 228:431db7034a88
Для синхронизации
author | andrei <andrei@nap21.upri> |
---|---|
date | Thu, 13 Sep 2012 17:55:01 +0400 |
parents | |
children | 47f77e6409f7 |
line wrap: on
line source
package IMPL::Web::Application::OperationContract; use strict; use IMPL::declare { base => [ 'IMPL::Object' => undef, 'IMPL::Object::Autofill' => '@_' ], props => [ binding => PROP_ALL, response => PROP_ALL ] }; sub Invoke { my ($this, $resource, $httpAction) = @_; if ($this->) } 1; __END__ =pod =head1 NAME C<IMPL::Web::Application::OperationContract> - Описание операции над веб-ресурсом. =head1 SYNOPSIS =begin code use IMPL::require { 'OperationContract' => 'IMPL::Web::Application::OperationContract', 'RedirectResponse' => 'IMPL::Web::Application::RedirectResponse' }; my $operation = OperationContract->new( bind => sub { my ($resource,$model,$itemName) = @_; return $model->findItem($itemName); }, response => RedirectResponse->new( locator => $relativeLocator ) ); my $response = $operation->InvokeOperation($resource); =end code =head1 DESCRIPTION Связывает методы предметной области с операциями над ресурсами. Для связи с моделью используется функция, которой будут переданы параметры: =over =item C<$reousrce> Ресурс для которого выполняется операция =item C<$model> Объект модели данных, связанный с данным ресурсом, тоже, что и C<<>$resource->model>> только для краткости =item C<$action> Контекст текущего C<HTTP> запроса. =back Результат выполнения будет передан дополнительному обработчику C<response>, который выполнит необходимое преобразование. =head1 MEMBERS =cut