The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

XAO::DO::FS::Collection - Collection class for XAO::FS

SYNOPSIS

 my $orders=$odb->collection(class => 'Data::Order');

 my $sr=$orders->search('placed_by', 'eq', 'user@host.name');

DESCRIPTION

Collection class is similar to List object in the sense that it contains Hash objects joined by some criteria.

All Collection objects are read-only, you can use them to search for data and to get data objects from them but not to store.

Methods are (alphabetically):

container_key ()

Makes no sense for Collection, will throw an error.

delete ($)

Makes no sense for Collection, will throw an error.

describe () {

Describes itself, returns a hash reference with at least the following elements:

 type       => 'collection'
 class      => class name
 key        => key name
detach ()

Not implemented, but safe to use.

exists ($)

Checks if an object with the given name exists in the collection and returns boolean value.

get (@)

Retrieves a Hash object from the Collection using the given name.

As a convenience you can pass more then one object name to the get() method to retrieve multiple Hash references at once.

If an object does not exist an error will be thrown, use exists() method to check if you really need to.

Note: It does not check if the object still exists in the database! If you need to be sure that the object does exist use

get_new ()

Convenience method that returns new empty detached object of the type that collection operates on.

glue ()

Returns the Glue object which was used to retrieve the current object from.

keys ()

Returns unsorted list of all keys for all objects stored in that list.

new (%)

You cannot use this method directly. Use collection() method on Glue to get a collection reference. Example:

 my $orders=$odb->collection(class => 'Data::Order');

Currently the only supported type of collection is by class name, a collection that joins together all Hashes of the same class.

objtype ()

For all Collection objects always return a string 'Collection'.

put ($;$)

Makes no sense on collections. Will throw an error.

search (@)

Supports the same syntax as List's search() method. See XAO::DO::FS::List for reference.

values ()

Returns a list of all Hash objects in the list.

Note: the order of values is the same as the order of keys returned by keys() method. At least until you modify the object directly on indirectly. It is not recommended to use values() method for the reason of pure predictability.

uri ($)

Makes no sense on collections, will throw an error.

AUTHORS

Copyright (c) 2005 Andrew Maltsev

Copyright (c) 2001 Andrew Maltsev, XAO Inc.

<am@ejelta.com> -- http://ejelta.com/xao/

SEE ALSO

Further reading: XAO::FS, XAO::DO::FS::Hash (aka FS::Hash), XAO::DO::FS::List (aka FS::List). XAO::DO::FS::Glue (aka FS::Glue).