NAME
Bio::Phylo::Mediators::TaxaMediator - Mediator for links between taxa and other objects
SYNOPSIS
# no direct usage
DESCRIPTION
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 http://www.atug.com/andypatterns/RM.htm, http://home.earthlink.net/~huston2/dp/mediator.html).
Methods defined in this module are meant only for internal usage by Bio::Phylo.
METHODS
CONSTRUCTOR
- 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.
METHODS
- register()
-
Stores argument in invocant's cache.
Type : Method Title : register Usage : $mediator->register( $obj ); Function: Stores an object in mediator's cache, if relevant 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 );
SEE ALSO
- Bio::Phylo::Manual
-
Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.
CITATION
If you use Bio::Phylo in published research, please cite it:
Rutger A Vos, Jason Caravas, Klaas Hartmann, Mark A Jensen and Chase Miller, 2011. Bio::Phylo - phyloinformatic analysis using Perl. BMC Bioinformatics 12:63. http://dx.doi.org/10.1186/1471-2105-12-63
REVISION
$Id: TaxaMediator.pm 1660 2011-04-02 18:29:40Z rvos $