NAME

Farly::Object::List - Searchable container of Farly::Objects

SYNOPSIS

use Farly::Object::List;
use Farly::Object;
use Farly::Value::String;

my $object_1 = Farly::Object->new();
$object_1->set( "id",        Farly::Value::String->new("id1234") );
$object_1->set( "last_name", Farly::Value::String->new("Hofstadter") );
my $object_n = Farly::Object->new();    

$object_n->set( "id", Farly::Value::String->new("id9999") );

my $container = Farly::Object::List->new();

$container->add( $object_1 );
$container->add( $object_n );

my $search = Farly::Object->new();
$search->set( "id", Farly::Value::String->new("id1234") );

my $search_result = Farly::Object::List->new();

$container->matches( $search, $search_result );

foreach my $object ( $search_result->iter() ) {
    print $object->get("last_name")->as_string() if ( $object->has_defined("last_name") );
    print "\n";
}

DESCRIPTION

Farly::Object::List is a searchable 'ARRAY' based container of Farly::Object objects.

METHODS

new()

The constructor.

my $container = Farly::Object::List->new();

No arguments.

add( <Farly::Object> )

Add a new Farly::Object object to the container.

$container->add( $object ); 

clone()

Return a new Farly::Object::List of cloned Farly::Object objects

my $new_container = $container->clone(); 

Farly::Object->clone() does not clone the value objects in the Farly::Object container elements.

iter()

Returns 'ARRAY' of the Farly::Object container elements.

my @objects = $container->iter();

includes( $object<Farly::Object> )

Returns true if an object in this List 'matches' the other object.

$set1->includes( $object );

matches( $search<Farly::Object>, $result<Farly::Object::List> )

Store all objects which match $search in $result.

$container->matches( $search, $result );

contains( $search<Farly::Object>, $result<Farly::Object::List> )

Store all objects which contain $search in $result.

$container->contains( $search, $result );

contained_by( $search<Farly::Object>, $result<Farly::Object::List> )

Store all objects which are contained by $search in $result.

$container->contained_by( $search, $result );

search( $search<Farly::Object>, $result<Farly::Object::List> )

Store all objects which match, contain, are contained by, or intersect $search in $result.

Applies matches, contains, contained_by, and intersects methods in that order.

$container->search( $search, $result );

size()

Returns a count of the number of objects currently in the container.

my $size = $container->size();

COPYRIGHT AND LICENCE

Farly::Object::List Copyright (C) 2013 Trystan Johnson

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.