NAME
Pangloss::Collection - base class for collections in Pangloss.
SYNOPSIS
# abstract - cannot be used directly
use base qw( Pangloss::Collection );
# read on...
DESCRIPTION
This class is a simple OO wrapper around a perl Hash. Perhaps a better name for it would be Collection::Map. It should help make storing collections of objects in Pixie easier.
Items stored in these collections should inherit from Pangloss::Collection::Item.
METHODS
- @keys = $obj->keys
-
as in
keys()
. uses wantarray for Petal compliancy. - @values = $obj->values
-
as in
values()
. uses wantarray for Petal compliancy. - @values = $obj->list
-
synonym for $obj->values().
- @values = $obj->sorted_list
-
returns $obj->values() sorted alphabetically by key.
- $iterator = $obj->iterator
-
get an iterator code ref for this collection, can be used as such:
while (my $next_val = $iterator->()) { ... }
useful for large collections.
- $boolean = $obj->exists( $key )
-
as in
exists()
. - $value = $obj->get( $key )
-
get the value associated with $key. throws an error if $key does not exist.
- $obj->add( $value1, $value2, ... )
-
add values to this collection. looks up keys for these values with $obj->get_values_key(). throws an error if values already exists. returns this object.
- $obj->remove( $key1, $value2, ... )
-
remove keys and/or values from this collection. throws an error if a key does not exist. returns this object.
- $key = $obj->get_values_key( $value )
-
gets $value->key() if $value is blessed, or returns $value.
- $obj2 = $obj->clone
-
returns a new object containing a shallow copy of this collection. (ie: objects in the clone's collection are the same)
- $obj2 = $obj->deep_clone
-
returns a new object containing a deep copy of this collection. (ie: objects in the clone's collection are cloned)
SUB-CLASSING
Override the following methods:
- $key = $obj->error_key_exists( $key )
-
abstract. indicates a Pangloss::Error should be thrown.
- $key = $obj->error_key_nonexistent( $key )
-
abstract. indicates a Pangloss::Error should be thrown.
AUTHOR
Steve Purkis <spurkis@quiup.com>
SEE ALSO
Pangloss, Pangloss::Collection::Item, OpenFrame::WebApp::Error::Abstract