comparison 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
comparison
equal deleted inserted replaced
227:70ad6bc20908 228:431db7034a88
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