comparison variant_effect_predictor/Bio/Biblio/Ref.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:2bc9b66ada89
1 # $Id: Ref.pm,v 1.5 2002/10/22 07:45:11 lapp Exp $
2 #
3 # BioPerl module for Bio::Biblio::Ref
4 #
5 # Cared for by Martin Senger <senger@ebi.ac.uk>
6 # For copyright and disclaimer see below.
7
8 # POD documentation - main docs before the code
9
10 =head1 NAME
11
12 Bio::Biblio::Ref - Representation of a bibliographic reference
13
14 =head1 SYNOPSIS
15
16 $obj = new Bio::Biblio::Ref (-type => 'Letter',
17 -title => 'Onegin to Tatiana');
18 --- OR ---
19
20 $obj = new Bio::Biblio::Ref;
21 $obj->type ('Letter');
22
23 =head1 DESCRIPTION
24
25 A storage object for a general bibliographic reference (a citation).
26 See its place in the class hierarchy in
27 http://industry.ebi.ac.uk/openBQS/images/bibobjects_perl.gif
28
29 =head2 Attributes
30
31 The following attributes are specific to this class,
32 and they are inherited by all citation types.
33
34 author_list_complete values: 'Y' (default) or 'N'
35 authors type: array ref of Bio::Biblio::Provider's
36 cross_references type: array ref of Bio::Annotation::DBLink's
37 cross_references_list_complete values: 'Y' (default) or 'N'
38 abstract
39 abstract_language
40 abstract_type
41 codes type: hash ref
42 contributors type: array ref of Bio::Biblio::Provider's
43 date
44 date_completed
45 date_created
46 date_revised
47 format
48 identifier
49 keywords
50 language
51 last_modified_date
52 publisher type: Bio::Biblio::Provider
53 repository_subset
54 rights
55 spatial_location
56 subject_headings type: hash ref
57 subject_headings_source
58 temporal_period
59 title
60 toc
61 toc_type
62 type
63
64 =head1 SEE ALSO
65
66 =over
67
68 =item *
69
70 OpenBQS home page: http://industry.ebi.ac.uk/openBQS
71
72 =item *
73
74 Comments to the Perl client: http://industry.ebi.ac.uk/openBQS/Client_perl.html
75
76 =back
77
78 =head1 FEEDBACK
79
80 =head2 Mailing Lists
81
82 User feedback is an integral part of the evolution of this and other
83 Bioperl modules. Send your comments and suggestions preferably to
84 the Bioperl mailing list. Your participation is much appreciated.
85
86 bioperl-l@bioperl.org - General discussion
87 http://bioperl.org/MailList.shtml - About the mailing lists
88
89 =head2 Reporting Bugs
90
91 Report bugs to the Bioperl bug tracking system to help us keep track
92 of the bugs and their resolution. Bug reports can be submitted via
93 email or the web:
94
95 bioperl-bugs@bioperl.org
96 http://bugzilla.bioperl.org/
97
98 =head1 AUTHORS
99
100 Heikki Lehvaslaiho (heikki@ebi.ac.uk),
101 Martin Senger (senger@ebi.ac.uk)
102
103 =head1 COPYRIGHT
104
105 Copyright (c) 2002 European Bioinformatics Institute. All Rights Reserved.
106
107 This module is free software; you can redistribute it and/or modify
108 it under the same terms as Perl itself.
109
110 =head1 DISCLAIMER
111
112 This software is provided "as is" without warranty of any kind.
113
114 =head1 APPENDIX
115
116 The rest of the documentation details each of the object
117 methods. Internal methods are preceded with a _
118
119 =cut
120
121
122 # Let the code begin...
123
124
125 package Bio::Biblio::Ref;
126 use strict;
127 use vars qw(@ISA $AUTOLOAD);
128
129 use Bio::Biblio::BiblioBase;
130 use Bio::Annotation::DBLink;
131
132 @ISA = qw(Bio::Biblio::BiblioBase);
133
134 #
135 # a closure with a list of allowed attribute names (these names
136 # correspond with the allowed 'get' and 'set' methods); each name also
137 # keep what type the attribute should be (use 'undef' if it is a
138 # simple scalar)
139 #
140 {
141 my %_allowed =
142 (
143 _author_list_complete => undef,
144 _authors => 'ARRAY', # of Bio::Biblio::Provider
145 _cross_references => 'ARRAY', # of Bio::Annotation::DBLink
146 _cross_references_list_complete => undef,
147 _abstract => undef,
148 _abstract_language => undef,
149 _abstract_type => undef,
150 _codes => 'HASH',
151 _contributors => 'ARRAY', # of Bio::Biblio::Provider
152 _date => undef,
153 _date_completed => undef,
154 _date_created => undef,
155 _date_revised => undef,
156 _format => undef,
157 _identifier => undef,
158 _keywords => 'HASH',
159 _language => undef,
160 _last_modified_date => undef,
161 _publisher => 'Bio::Biblio::Provider',
162 _repository_subset => undef,
163 _rights => undef,
164 _spatial_location => undef,
165 _subject_headings => 'HASH',
166 _subject_headings_source => undef,
167 _temporal_period => undef,
168 _title => undef,
169 _toc => undef,
170 _toc_type => undef,
171 _type => undef,
172 );
173
174 # return 1 if $attr is allowed to be set/get in this class
175 sub _accessible {
176 my ($self, $attr) = @_;
177 exists $_allowed{$attr};
178 }
179
180 # return an expected type of given $attr
181 sub _attr_type {
182 my ($self, $attr) = @_;
183 $_allowed{$attr};
184 }
185 }
186
187
188 =head2 add_cross_reference
189
190 Usage : $self->add_cross_reference
191 (new Bio::Annotation::DBLink (-database => 'EMBL',
192 -primary_id => 'V00808');
193 Function: adding a link to a database entry
194 Returns : new value of 'cross_references'
195 Args : an object of type Bio::Annotation::DBLink
196
197 =cut
198
199 sub add_cross_reference {
200 my ($self, $value) = @_;
201 $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Annotation::DBLink'))
202 unless (UNIVERSAL::isa ($value, 'Bio::Annotation::DBLink'));
203 (defined $self->cross_references) ?
204 push (@{ $self->cross_references }, $value) :
205 return $self->cross_references ( [$value] );
206 return $self->cross_references;
207 }
208
209
210 =head2 add_author
211
212 Usage : $self->add_author (new Bio::Biblio::Person (-lastname => 'Novak');
213 Function: adding an author to a list of authors
214 Returns : new value of 'authors' (a full list)
215 Args : an object of type Bio::Biblio::Provider
216
217 =cut
218
219
220 sub add_author {
221 my ($self, $value) = @_;
222 $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Biblio::Provider'))
223 unless (UNIVERSAL::isa ($value, 'Bio::Biblio::Provider'));
224 (defined $self->authors) ?
225 push (@{ $self->authors }, $value) :
226 return $self->authors ( [$value] );
227 return $self->authors;
228 }
229
230 =head2 add_contributor
231
232 Usage : $self->add_contributor (new Bio::Biblio::Person (-lastname => 'Novak');
233 Function: adding a contributor to a list of contributors
234 Returns : new value of 'contributors' (a full list)
235 Args : an object of type Bio::Biblio::Provider
236
237 =cut
238
239 sub add_contributor {
240 my ($self, $value) = @_;
241 $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Biblio::Provider'))
242 unless (UNIVERSAL::isa ($value, 'Bio::Biblio::Provider'));
243 (defined $self->contributors) ?
244 push (@{ $self->contributors }, $value) :
245 return $self->contributors ( [$value] );
246 return $self->contributors;
247 }
248
249
250 1;
251 __END__