| Bio::Phylo::Mediators::TaxaMediator - Mediator for links between taxa and other objects |
Bio::Phylo::Mediators::TaxaMediator - Mediator for links between taxa and other objects
# no direct usage
This module manages links between taxon objects and other objects linked to them. It is an implementation of the Mediator design pattern (e.g. see Relationship Manager Pattern, Mediator, Mediator Design Pattern).
Methods defined in this module are meant only for internal usage by Bio::Phylo.
new()
TaxaMediator constructor.
Type : Constructor Title : new Usage : my $mediator = Bio::Phylo::Taxa::TaxaMediator->new; Function: Instantiates a Bio::Phylo::Taxa::TaxaMediator object. Returns : A Bio::Phylo::Taxa::TaxaMediator object (singleton). Args : None.
register()
Stores argument in invocant's cache.
Type : Method Title : register Usage : $mediator->register( $obj ); Function: Stores an object in mediator's cache Returns : $self Args : An object, $obj Comments: This method is called every time an object is instantiated.
unregister()
Removes argument from invocant's cache.
Type : Method Title : unregister Usage : $mediator->unregister( $obj ); Function: Cleans up mediator's cache of $obj and $obj's relations Returns : $self Args : An object, $obj Comments: This method is called every time an object is destroyed.
set_link()
Creates link between objects.
Type : Method Title : set_link Usage : $mediator->set_link( -one => $obj1, -many => $obj2 ); Function: Creates link between objects Returns : $self Args : -one => $obj1 (source of a one-to-many relationship) -many => $obj2 (target of a one-to-many relationship) Comments: This method is called from within, for example, set_taxa method calls. A call like $taxa->set_matrix( $matrix ), and likewise a call like $matrix->set_taxa( $taxa ), are both internally rerouted to:
$mediator->set_link(
-one => $taxa,
-many => $matrix
);
get_link()
Retrieves link between objects.
Type : Method Title : get_link Usage : $mediator->get_link( -source => $obj, -type => _CONSTANT_, ); Function: Retrieves link between objects Returns : Linked object Args : -source => $obj (required, the source of the link) -type => a constant from Bio::Phylo::Util::CONSTANT
(-type is optional, used to filter returned results in
one-to-many query).
Comments: This method is called from within, for example, get_taxa
method calls. A call like $matrix->get_taxa()
and likewise a call like $forest->get_taxa(), are
both internally rerouted to:
$mediator->get_link(
-source => $self # e.g. $matrix or $forest
);
A call like $taxa->get_matrices() is rerouted to:
$mediator->get_link( -source => $taxa, -type => _MATRIX_ );
remove_link()
Removes link between objects.
Type : Method Title : remove_link Usage : $mediator->remove_link( -one => $obj1, -many => $obj2 ); Function: Removes link between objects Returns : $self Args : -one => $obj1 (source of a one-to-many relationship) -many => $obj2 (target of a one-to-many relationship)
(-many argument is optional)
Comments: This method is called from within, for example,
unset_taxa method calls. A call like $matrix->unset_taxa()
is rerouted to:
$mediator->remove_link( -many => $matrix );
A call like $taxa->unset_matrix( $matrix ); is rerouted to:
$mediator->remove_link( -one => $taxa, -many => $matrix );
Also see the manual: the Bio::Phylo::Manual manpage and http://rutgervos.blogspot.com.
$Id: TaxaMediator.pm 841 2009-03-04 23:07:30Z rvos $
| Bio::Phylo::Mediators::TaxaMediator - Mediator for links between taxa and other objects |