Bio::Phylo::Taxa::TaxonLinker - Superclass for objects that link to taxon objects


Bio-Phylo documentation Contained in the Bio-Phylo distribution.

Index


Code Index:

NAME

Top

Bio::Phylo::Taxa::TaxonLinker - Superclass for objects that link to taxon objects

SYNOPSIS

Top

 use Bio::Phylo::Factory;
 my $fac = Bio::Phylo::Factory->new;

 my $node  = $fac->create_node;
 my $taxon = $fac->create_taxon;

 # just to show who's what
 if ( $node->isa('Bio::Phylo::Taxa::TaxonLinker') ) { 
    $node->set_taxon( $taxon );
 }

 # prints 'Bio::Phylo::Taxa::Taxon'
 print ref $node->get_taxon 

DESCRIPTION

Top

This module is a superclass for objects that link to Bio::Phylo::Taxa::Taxon objects.

METHODS

Top

MUTATORS

set_taxon()

Links the invocant object to a taxon object.

 Type    : Mutator
 Title   : set_taxon
 Usage   : $obj->set_taxon( $taxon );
 Function: Links the invocant object
           to a taxon object.
 Returns : Modified $obj
 Args    : A Bio::Phylo::Taxa::Taxon object.

unset_taxon()

Unlinks the invocant object from any taxon object.

 Type    : Mutator
 Title   : unset_taxon
 Usage   : $obj->unset_taxon();
 Function: Unlinks the invocant object
           from any taxon object.
 Returns : Modified $obj
 Args    : NONE

ACCESSORS

get_taxon()

Retrieves the Bio::Phylo::Taxa::Taxon object linked to the invocant.

 Type    : Accessor
 Title   : get_taxon
 Usage   : my $taxon = $obj->get_taxon;
 Function: Retrieves the Bio::Phylo::Taxa::Taxon
           object linked to the invocant.
 Returns : Bio::Phylo::Taxa::Taxon
 Args    : NONE
 Comments:

SEE ALSO

Top

Bio::Phylo::Matrices::Datum

The datum object subclasses Bio::Phylo::Taxa::TaxonLinker.

Bio::Phylo::Forest::Node

The node object subclasses Bio::Phylo::Taxa::TaxonLinker.

Bio::Phylo::Manual

Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.

CITATION

Top

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

Top

 $Id: TaxonLinker.pm 1660 2011-04-02 18:29:40Z rvos $


Bio-Phylo documentation Contained in the Bio-Phylo distribution.
# $Id: TaxonLinker.pm 1660 2011-04-02 18:29:40Z rvos $
package Bio::Phylo::Taxa::TaxonLinker;
use Bio::Phylo::Mediators::TaxaMediator;
use Bio::Phylo::Util::Exceptions;
use Bio::Phylo::Util::CONSTANT qw'_TAXON_ looks_like_object';
use strict;
{
    my $TAXON_CONSTANT = _TAXON_;
    my $logger         = Bio::Phylo->get_logger;

    sub set_taxon {
        my ( $self, $taxon ) = @_;
        if ( $taxon and looks_like_object $taxon, $TAXON_CONSTANT ) {
            $logger->info("setting taxon '$taxon'");
            Bio::Phylo::Mediators::TaxaMediator->set_link(
                '-one'  => $taxon,
                '-many' => $self,
            );
        }
        else {
            $logger->info("re-setting taxon link");
            Bio::Phylo::Mediators::TaxaMediator->remove_link(
                '-many' => $self );
        }
        return $self;
    }

    sub unset_taxon {
        my $self = shift;
        $logger->debug("unsetting taxon");
        $self->set_taxon();
        return $self;
    }

    sub get_taxon {
        my $self = shift;
        $logger->info("getting taxon");
        return Bio::Phylo::Mediators::TaxaMediator->get_link(
            '-source' => $self );
    }

    sub _cleanup {
        my $self = shift;

        #$logger->debug("cleaning up '$self'");
    }

    # podinherit_insert_token

}
1;