comparison Lib/IMPL/ORM/Adapter/Generic.pm @ 79:2d1c3f713280

ORM concept in development
author wizard
date Mon, 05 Apr 2010 00:20:34 +0400
parents
children d1676be8afcc
comparison
equal deleted inserted replaced
78:a5cb84374d40 79:2d1c3f713280
1 package IMPL::ORM::Adapter::Generic;
2
3 1;
4
5 __END__
6
7 =pod
8
9 =head1 NAME
10
11 C<IMPL::ORM::Adapter::Generic> Адаптер для работы с данными объекта произвольного класса.
12
13 =head1 DESCRIPTION
14
15 Позволяет получать данные, изменения данных из объекта, а также записать данные в
16 объект и создать новый объект.
17
18 =head1 MEMBERS
19
20 =over
21
22 =item C<CTOR($object,$hashOptions)>
23
24 Создает новый адаптер к объекту C<$object>
25
26 =item C<[get]object>
27
28 Объект для которого создан данный адаптер, C<undef> если объект удален.
29
30 =item C<[get]isChanged>
31
32 Были ли обновления в объекте.
33
34 =item C<[get]isDeleted>
35
36 Является ли объект удаленным.
37
38 =item C<[get]isNew>
39
40 Является ли объект новым для БД.
41
42 =item C<[get]initialState>
43
44 Начальное состояние объекта, C<undef> если объект был создан.
45
46 =item C<[get]currentState>
47
48 Текущие состояние. C<undef> если объект удален.
49
50 =item C<[get,list]history>
51
52 История изменений. C<IMPL::Object::List>
53
54 =item C<SaveChanges>
55
56 Сохраняет изменения из объекта в текущее состояние, при этом изменения записываются в историю.
57
58 B<returns> информацию об изменениях в объекте.
59
60 =item C<Revert($version)>
61
62 Возвращает объект в определенную версию.
63
64 =item C<Delete>
65
66 Удаляет объект, точнее помечает его для удаления до вызова C<Commit>.
67
68 =item C<Commit>
69
70 Сбрасывает историю изменений, и устанавливает соответсвующие свойства.
71
72 =back
73
74 =head1 Информация об изменениях объекта
75
76 =begin code
77
78 {
79 version => 1, # object version
80 op => STORAGE_UPDATE,
81 data => {
82 entity1 => {
83 field1 => 'value 1'
84 },
85 entity2 => {
86 field2 => 'value 2'
87 }
88 }
89 }
90
91 =end code
92
93 =head1 Информация об отображении объекта
94
95 =begin code
96
97 {
98 prop_name => [ entity => 'field' ]
99 }
100
101 =end code
102
103 =cut