Mercurial > repos > mahtabm > ensemb_rep_gvl
diff variant_effect_predictor/Bio/EnsEMBL/Attribute.pm @ 0:2bc9b66ada89 draft default tip
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 06:29:17 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/EnsEMBL/Attribute.pm Thu Apr 11 06:29:17 2013 -0400 @@ -0,0 +1,192 @@ +=head1 LICENSE + + Copyright (c) 1999-2012 The European Bioinformatics Institute and + Genome Research Limited. All rights reserved. + + This software is distributed under a modified Apache license. + For license details, please see + + http://www.ensembl.org/info/about/code_licence.html + +=head1 CONTACT + + Please email comments or questions to the public Ensembl + developers list at <dev@ensembl.org>. + + Questions may also be sent to the Ensembl help desk at + <helpdesk@ensembl.org>. + +=cut + +=head1 NAME + +Bio::EnsEMBL::Attribute - A generic Attribute class. + +=head1 SYNOPSIS + + use Bio::EnsEMBL::Attribute; + + my $attribute = Bio::EnsEMBL::Attribute->new + (-CODE => 'myCode', + -NAME => 'My Attribute', + -DESCRIPTION => 'This is my attribute description.', + -VALUE => '10023'); + + print $attrib->name(), "\n"; + print $attrib->code(), "\n"; + print $attrib->description(), "\n"; + print $attrib->value(), "\n"; + +=head1 DESCRIPTION + +This is a generic attribute class used to represent attributes +associated with seq_regions (and their Slices) and MiscFeatures. + +=head1 SEE ALSO + +Bio::EnsEMBL::Slice +Bio::EnsEMBL::MiscFeature +Bio::EnsEMBL::DBSQL::AttributeAdaptor + +=cut + +package Bio::EnsEMBL::Attribute; + +use strict; +use warnings; + +use Bio::EnsEMBL::Utils::Argument qw(rearrange); +use Scalar::Util qw(weaken isweak); + +=head2 new + + Arg [-CODE] : string - the code for this attribute + Arg [-NAME] : string - a human readable name for this attribute + Arg [-DESCRIPTION] : string - a description for this attribute + Arg [-VALUE] : value - the value of this attribute + Example : my $attribute = Bio::EnsEMBL::Attribute->new + (-CODE => 'myCode', + -NAME => 'My Attribute', + -DESCRIPTION => 'This is my attribute description.', + -VALUE => '10023'); + Description : Constructor. Instantiates a Bio::EnsEMBL::Attribute object. + Returntype : Bio::EnsEMBL::Attribute + Exceptions : none + Caller : general + Status : Stable + +=cut + + +sub new { + my $caller = shift; + + # allow to be called as class or object method + my $class = ref($caller) || $caller; + + my ($code, $name, $desc, $value) = + rearrange([qw(CODE NAME DESCRIPTION VALUE)], @_); + + return bless {'code' => $code, + 'name' => $name, + 'description' => $desc, + 'value' => $value}, $class; +} + +=head2 new_fast + + Arg [1] : hashref to be blessed + Description: Construct a new Bio::EnsEMBL::Attribute using the hashref. + Exceptions : none + Returntype : Bio::EnsEMBL::Attribute + Caller : general, subclass constructors + Status : Stable + +=cut + + +sub new_fast { + my $class = shift; + my $hashref = shift; + my $self = bless $hashref, $class; + weaken($self->{adaptor}) if ( ! isweak($self->{adaptor}) ); + return $self; +} + + +=head2 code + + Arg [1] : string $code (optional) + Example : $code = $attribute->code(); + Description: Getter/Setter for code attribute + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub code { + my $self = shift; + $self->{'code'} = shift if(@_); + return $self->{'code'}; +} + + +=head2 name + + Arg [1] : string $name (optional) + Example : $name = $attribute->name(); + Description: Getter/Setter for name attribute + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub name { + my $self = shift; + $self->{'name'} = shift if(@_); + return $self->{'name'}; +} + +=head2 description + + Arg [1] : string $description (optional) + Example : $description = $attribute->description(); + Description: Getter/Setter for description attribute + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub description { + my $self = shift; + $self->{'description'} = shift if(@_); + return $self->{'description'}; +} + + +=head2 value + + Arg [1] : string $value (optional) + Example : $value = $attribute->value(); + Description: Getter/Setter for value attribute + Returntype : string + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub value { + my $self = shift; + $self->{'value'} = shift if(@_); + return $self->{'value'}; +} + + +1;