NAME
Objects::Collection - abstract class for collections of data.
SYNOPSIS
use Objects::Collection;
@Objects::Collection::AutoSQL::ISA = qw(Objects::Collection);
DESCRIPTION
A collection - sometimes called a container - is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data.
METHODS
_store( {ID1 => <ref to object1>[, ID2 => <ref to object2>, ...]} )
Method for store changed objects. Called with ref to hash :
{
ID1 => <reference to object1>
[,ID2 => <reference to object2>,...]
}
_fetch({id=>ID1} [, {id=>ID2}, ...])
Read data for given IDs. Must return reference to hash, where keys is IDs, values is readed data. For example:
return {1=>[1..3],2=>[5..6]}
_create(<user defined>)
Create recods in data storage.
Parametrs:
user defined format
Result: Must return reference to hash, where keys is IDs, values is create records of data
_delete(ID1[, ID2, ...]) or ({ id=>ID1 } [, {id => ID2 }, ...])
Delete records in data storage for given IDs.
Parametrs: array id IDs
ID1, ID2, ...
or array of refs to HASHes
{ id=>ID1 }, {id => ID2 }, ...
Format of parametrs depend method delete_objects
_prepare_record( ID1, <reference to readed by _create record>)
Called before insert readed objects into collection. Must return ref to data or object, which will insert to callection.
create(<user defined>)
Public method for create objects.
fetch_object(ID1)
Public method. Fetch object from collection for given ID. Return ref to objects or undef unless exists.
fetch_objects(ID1 [, ID2, ...])
Public method. Fetch objects from collection for given IDs. Return ref to HASH, where where keys is IDs, values is objects refs.
Parametrs:
release_objects(ID1[, ID2, ...])
Release from collection objects with IDs.
store_changed([ID1,[ID2,...]])
Call _store for changed objects. Store all all loaded objects without parameters:
$simple_collection->store_changed(); #store all changed
or (for 1,2,6 IDs )
$simple_collection->store_changed(1,2,6);
delete_objects(ID1[,ID2, ...])
Release from collections and delete from storage (by calling _delete) objects ID1,ID2...
$simple_collection->delete_objects(1,5,84);
get_lazy_object(ID1)
Method for base support lazy load objects from data storage. Not really return lazy object.
SEE ALSO
Objects::Collection::AutoSQL, README
AUTHOR
Zahatski Aliaksandr, <zag@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2005-2006 by Zahatski Aliaksandr
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.