2 # BioPerl module for Bio::Annotation::Comment
4 # Please direct questions and support issues to <bioperl-l@bioperl.org>
6 # Cared for by Ewan Birney <birney@ebi.ac.uk>
8 # Copyright Ewan Birney
10 # You may distribute this module under the same terms as perl itself
12 # POD documentation - main docs before the code
16 Bio::Annotation::Comment - A comment object, holding text
21 $comment = Bio::Annotation::Comment->new();
22 $comment->text("This is the text of this comment");
23 $annotation->add_Annotation('comment', $comment);
28 A holder for comments in annotations, just plain text. This is a very simple
29 object, and justifiably so.
31 =head1 AUTHOR - Ewan Birney
33 Email birney@ebi.ac.uk
37 The rest of the documentation details each of the object
38 methods. Internal methods are usually preceded with a _
43 # Let the code begin...
45 package Bio
::Annotation
::Comment
;
48 use base
qw(Bio::Root::Root Bio::AnnotationI);
53 Usage : $comment = Bio::Annotation::Comment->new( '-text' => 'some text for this comment');
54 Function: This returns a new comment object, optionally with
57 Returns : a Bio::Annotation::Comment object
58 Args : a hash with -text optionally set
65 my($class,@args) = @_;
67 my $self = $class->SUPER::new
(@args);
68 my ($text,$tag, $type) = $self->_rearrange([qw(TEXT TAGNAME TYPE)], @args);
70 defined $text && $self->text($text);
71 defined $tag && $self->tagname($tag);
72 defined $type && $self->type($type);
76 =head1 AnnotationI implementing functions
95 return "Comment: ".$self->text;
101 Usage : my $str = $ann->display_text();
102 Function: returns a string. Unlike as_text(), this method returns a string
103 formatted as would be expected for te specific implementation.
105 One can pass a callback as an argument which allows custom text
106 generation; the callback is passed the current instance and any text
110 Args : [optional] callback
115 my $DEFAULT_CB = sub {$_[0]->text || ''};
118 my ($self, $cb) = @_;
120 $self->throw("Callback must be a code reference") if ref $cb ne 'CODE';
142 $h->{'text'} = $self->text;
149 Usage : $obj->tagname($newval)
150 Function: Get/set the tagname for this annotation value.
152 Setting this is optional. If set, it obviates the need to
153 provide a tag to Bio::AnnotationCollectionI when adding
154 this object. When obtaining an AnnotationI object from the
155 collection, the collection will set the value to the tag
156 under which it was stored unless the object has a tag
160 Returns : value of tagname (a scalar)
161 Args : new value (a scalar, optional)
167 my ($self,$value) = @_;
168 if( defined $value) {
169 $self->{'tagname'} = $value;
171 return $self->{'tagname'};
174 =head1 Specific accessors for Comments
182 Usage : $value = $self->text($newval)
183 Function: get/set for the text field. A comment object
184 just holds a single string which is accessible through
187 Returns : value of text
188 Args : newvalue (optional)
194 my ($self,$value) = @_;
195 if( defined $value) {
196 $self->{'text'} = $value;
198 return $self->{'text'};
205 Usage : $value = $self->value($newval)
206 Function: Alias of the 'text' method
208 Returns : value of text
209 Args : newvalue (optional)
220 Usage : $value = $self->type($newval)
221 Function: get/set for the comment type field. The comment type
222 is normally found as a subfield within comment sections
223 in some files, such as SwissProt
225 Returns : value of text
226 Args : newvalue (optional)
232 my ($self,$type) = @_;
234 $self->{'type'} = $type;
236 return $self->{'type'};