NAME
Catalyst::Controller::DBIC::API::JoinBuilder - Provides a helper class to automatically keep track of joins in complex searches
VERSION
version 2.004001
DESCRIPTION
JoinBuilder is used to keep track of joins automgically for complex searches. It accomplishes this by building a simple tree of parents and children and then recursively drilling into the tree to produce a useable join attribute for ->search.
PUBLIC_ATTRIBUTES
parent is: ro, isa: 'Catalyst::Controller::DBIC::API::JoinBuilder'
parent stores the direct ascendant in the datastructure that represents the join
children is: ro, isa: ArrayRef['Catalyst::Controller::DBIC::API::JoinBuilder'], traits => ['Array']
children stores the immediate descendants in the datastructure that represents the join.
Handles the following methods:
all_children => 'elements'
has_children => 'count'
add_child => 'push'
joins is: ro, isa: HashRef, lazy_build: true
joins holds the cached generated join datastructure.
name is: ro, isa: Str, required: 1
Sets the key for this level in the generated hash
PRIVATE_METHODS
_build_joins
_build_joins finds the top parent in the structure and then recursively iterates the children building out the join datastructure
AUTHORS
Nicholas Perez <nperez@cpan.org>
Luke Saunders <luke.saunders@gmail.com>
Alexander Hartmaier <abraxxa@cpan.org>
Florian Ragwitz <rafl@debian.org>
Oleg Kostyuk <cub.uanic@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Luke Saunders, Nicholas Perez, Alexander Hartmaier, et al..
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.