| 228 | 1 package IMPL::Web::Application::OperationContract; | 
|  | 2 use strict; | 
|  | 3 | 
|  | 4 use IMPL::declare { | 
|  | 5 	base => [ | 
|  | 6 	   'IMPL::Object' => undef, | 
|  | 7 	   'IMPL::Object::Autofill' => '@_' | 
|  | 8 	], | 
|  | 9 	props => [ | 
|  | 10 	   binding => PROP_ALL, | 
|  | 11 	   response => PROP_ALL | 
|  | 12 	] | 
|  | 13 }; | 
|  | 14 | 
|  | 15 sub Invoke { | 
|  | 16 	my ($this, $resource, $httpAction) = @_; | 
|  | 17 | 
|  | 18 	if ($this->) | 
|  | 19 | 
|  | 20 } | 
|  | 21 | 
|  | 22 1; | 
|  | 23 | 
|  | 24 __END__ | 
|  | 25 | 
|  | 26 =pod | 
|  | 27 | 
|  | 28 =head1 NAME | 
|  | 29 | 
|  | 30 C<IMPL::Web::Application::OperationContract> - Описание операции над | 
|  | 31 веб-ресурсом. | 
|  | 32 | 
|  | 33 =head1 SYNOPSIS | 
|  | 34 | 
|  | 35 =begin code | 
|  | 36 | 
|  | 37 use IMPL::require { | 
|  | 38 	'OperationContract' => 'IMPL::Web::Application::OperationContract', | 
|  | 39 	'RedirectResponse' => 'IMPL::Web::Application::RedirectResponse' | 
|  | 40 }; | 
|  | 41 | 
|  | 42 my $operation = OperationContract->new( | 
|  | 43     bind => sub { | 
|  | 44     	my ($resource,$model,$itemName) = @_; | 
|  | 45 | 
|  | 46     	return $model->findItem($itemName); | 
|  | 47     }, | 
|  | 48     response => RedirectResponse->new( | 
|  | 49         locator => $relativeLocator | 
|  | 50     ) | 
|  | 51 ); | 
|  | 52 | 
|  | 53 my $response = $operation->InvokeOperation($resource); | 
|  | 54 | 
|  | 55 =end code | 
|  | 56 | 
|  | 57 =head1 DESCRIPTION | 
|  | 58 | 
|  | 59 Связывает методы предметной области с операциями над ресурсами. Для связи с | 
|  | 60 моделью используется функция, которой будут переданы параметры: | 
|  | 61 | 
|  | 62 =over | 
|  | 63 | 
|  | 64 =item C<$reousrce> Ресурс для которого выполняется операция | 
|  | 65 | 
|  | 66 =item C<$model> Объект модели данных, связанный с данным ресурсом, тоже, что | 
|  | 67 и C<<>$resource->model>> только для краткости | 
|  | 68 | 
|  | 69 =item C<$action> Контекст текущего C<HTTP> запроса. | 
|  | 70 | 
|  | 71 =back | 
|  | 72 | 
|  | 73 Результат выполнения будет передан дополнительному обработчику C<response>, | 
|  | 74 который выполнит необходимое преобразование. | 
|  | 75 | 
|  | 76 =head1 MEMBERS | 
|  | 77 | 
|  | 78 =cut |