Bio-Palantir

 view release on metacpan or  search on metacpan

lib/Bio/Palantir/Roles/Modulable/Module.pm  view on Meta::CPAN

package Bio::Palantir::Roles::Modulable::Module;
$Bio::Palantir::Roles::Modulable::Module::VERSION = '0.211420';
use Moose;
use namespace::autoclean;

use aliased 'Bio::Palantir::Parser::Domain';
use aliased 'Bio::Palantir::Refiner::DomainPlus';


# private attributes

has 'uui' => (
    is       => 'ro',
    isa      => 'Str',
    init_arg => undef,
    default  => sub {
        my $self = shift;
        my $ug = Data::UUID->new;
        my $uui = $ug->create_str();    
        return $uui;
    }
);

has 'rank' => (
    is      => 'ro',
    isa     => 'Num',
	default => -1,
	writer  => '_set_rank',
);

has $_ => (
    is       => 'ro',
    isa      => 'Str',
) for qw(protein_sequence cumulative_protein_sequence);

has $_ => (
    is  => 'ro',
    isa => 'ArrayRef',
) for qw(gene_uuis genomic_prot_coordinates);

has $_ => (
    is       => 'ro',
    isa      => 'Num',
) for qw(genomic_prot_begin genomic_prot_end size);


# public array(s) of composed objects


has 'domains' => (
    traits   => ['Array'],
    is       => 'ro',
    isa      => 'ArrayRef',    # possible to make a link with the role domainable?
    handles  => {
         count_domains => 'count',
           all_domains => 'elements',
           get_domain  => 'get',
          next_domain  => 'shift',        
    },
);


## no critic (ProhibitUnusedPrivateSubroutines)



( run in 1.201 second using v1.01-cache-2.11-cpan-39bf76dae61 )