Mercurial > pub > Impl
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/IMPL/ORM/Adapter/Generic.pm Mon Apr 05 00:20:34 2010 +0400 @@ -0,0 +1,103 @@ +package IMPL::ORM::Adapter::Generic; + +1; + +__END__ + +=pod + +=head1 NAME + +C<IMPL::ORM::Adapter::Generic> Адаптер для работы с данными объекта произвольного класса. + +=head1 DESCRIPTION + +Позволяет получать данные, изменения данных из объекта, а также записать данные в +объект и создать новый объект. + +=head1 MEMBERS + +=over + +=item C<CTOR($object,$hashOptions)> + +Создает новый адаптер к объекту C<$object> + +=item C<[get]object> + +Объект для которого создан данный адаптер, C<undef> если объект удален. + +=item C<[get]isChanged> + +Были ли обновления в объекте. + +=item C<[get]isDeleted> + +Является ли объект удаленным. + +=item C<[get]isNew> + +Является ли объект новым для БД. + +=item C<[get]initialState> + +Начальное состояние объекта, C<undef> если объект был создан. + +=item C<[get]currentState> + +Текущие состояние. C<undef> если объект удален. + +=item C<[get,list]history> + +История изменений. C<IMPL::Object::List> + +=item C<SaveChanges> + +Сохраняет изменения из объекта в текущее состояние, при этом изменения записываются в историю. + +B<returns> информацию об изменениях в объекте. + +=item C<Revert($version)> + +Возвращает объект в определенную версию. + +=item C<Delete> + +Удаляет объект, точнее помечает его для удаления до вызова C<Commit>. + +=item C<Commit> + +Сбрасывает историю изменений, и устанавливает соответсвующие свойства. + +=back + +=head1 Информация об изменениях объекта + +=begin code + +{ + version => 1, # object version + op => STORAGE_UPDATE, + data => { + entity1 => { + field1 => 'value 1' + }, + entity2 => { + field2 => 'value 2' + } + } +} + +=end code + +=head1 Информация об отображении объекта + +=begin code + +{ + prop_name => [ entity => 'field' ] +} + +=end code + +=cut \ No newline at end of file