| Bio-Phylo documentation | view source | Contained in the Bio-Phylo distribution. |
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 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.
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.
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.
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.
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
);
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_ );
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: Bio::Phylo::Manual and http://rutgervos.blogspot.com.
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
$Id: TaxaMediator.pm 1660 2011-04-02 18:29:40Z rvos $
| Bio-Phylo documentation | view source | Contained in the Bio-Phylo distribution. |