even better DOI
[bioperl-live.git] / Bio / DescribableI.pm
blob51911f3690b490ef5a16a14d86d8c17bf394e410
3 # This module is licensed under the same terms as Perl itself. You use,
4 # modify, and redistribute it under the terms of the Perl Artistic License.
7 =head1 NAME
9 Bio::DescribableI - interface for objects with human readable names and descriptions
11 =head1 SYNOPSIS
14 # to test this is a describable object
16 $obj->isa("Bio::DescribableI") ||
17 $obj->throw("$obj does not implement the Bio::DescribableI interface");
19 # accessors
21 $name = $obj->display_name();
22 $desc = $obj->description();
26 =head1 DESCRIPTION
28 This interface describes methods expected on describable objects, ie
29 ones which have human displayable names and descriptions
31 =head1 FEEDBACK
33 =head2 Mailing Lists
35 User feedback is an integral part of the evolution of this and other
36 Bioperl modules. Send your comments and suggestions preferably to one
37 of the Bioperl mailing lists. Your participation is much appreciated.
39 bioperl-l@bioperl.org - General discussion
40 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
42 =head2 Support
44 Please direct usage questions or support issues to the mailing list:
46 I<bioperl-l@bioperl.org>
48 rather than to the module maintainer directly. Many experienced and
49 reponsive experts will be able look at the problem and quickly
50 address it. Please include a thorough description of the problem
51 with code and data examples if at all possible.
53 =head2 Reporting Bugs
55 Report bugs to the Bioperl bug tracking system to help us keep track
56 the bugs and their resolution. Bug reports can be submitted via the web:
58 https://github.com/bioperl/bioperl-live/issues
60 =head1 AUTHOR - Ewan Birney
62 Email birney@sanger.ac.uk
64 =cut
66 package Bio::DescribableI;
67 use strict;
70 use base qw(Bio::Root::RootI);
72 =head1 Implementation Specific Functions
74 These functions are the ones that a specific implementation must
75 define.
77 =head2 display_name
79 Title : display_name
80 Usage : $string = $obj->display_name()
81 Function: A string which is what should be displayed to the user
82 the string should have no spaces (ideally, though a cautious
83 user of this interface would not assumme this) and should be
84 less than thirty characters (though again, double checking
85 this is a good idea)
86 Returns : A scalar
87 Status : Virtual
89 =cut
91 sub display_name {
92 my ($self) = @_;
93 $self->throw_not_implemented();
97 =head2 description
99 Title : description
100 Usage : $string = $obj->description()
101 Function: A text string suitable for displaying to the user a
102 description. This string is likely to have spaces, but
103 should not have any newlines or formatting - just plain
104 text. The string should not be greater than 255 characters
105 and clients can feel justified at truncating strings at 255
106 characters for the purposes of display
107 Returns : A scalar
108 Status : Virtual
110 =cut
112 sub description {
113 my ($self) = @_;
114 $self->throw_not_implemented();