sync w/ main trunk
[bioperl-live.git] / Bio / Biblio / MedlineJournalArticle.pm
blobcaaf45d761b55b9a97447f9015b7606b8b8a4840
1 # $Id$
3 # BioPerl module for Bio::Biblio::MedlineJournalArticle
5 # Please direct questions and support issues to <bioperl-l@bioperl.org>
7 # Cared for by Martin Senger <senger@ebi.ac.uk>
8 # For copyright and disclaimer see below.
10 # POD documentation - main docs before the code
12 =head1 NAME
14 Bio::Biblio::MedlineJournalArticle - Representation of a MEDLINE journal article
16 =head1 SYNOPSIS
18 $obj = Bio::Biblio::MedlineJournalArticle->new(
19 -title => 'Thermal adaptation analyzed by comparison of protein sequences from mesophilic and extremely thermophilic Methanococcus species.',
20 -journal => Bio::Biblio::MedlineJournal->new(-issn => '0027-8424'),
21 -volume => 96,
22 -issue => 7);
23 #--- OR ---
25 $obj = Bio::Biblio::MedlineJournalArticle->new();
26 $obj->title ('...');
27 $obj->journal (Bio::Biblio::MedlineJournal->new(-issn => '0027-8424'));
29 =head1 DESCRIPTION
31 A storage object for a MEDLINE journal article.
32 See its place in the class hierarchy in
33 http://www.ebi.ac.uk/~senger/openbqs/images/bibobjects_perl.gif
35 =head2 Attributes
37 The following attributes are specific to this class
38 (however, you can also set and get all attributes defined in the parent classes):
40 journal type: Bio::Biblio::MedlineJournal
42 =head1 SEE ALSO
44 =over 4
46 =item *
48 OpenBQS home page: http://www.ebi.ac.uk/~senger/openbqs/
50 =item *
52 Comments to the Perl client: http://www.ebi.ac.uk/~senger/openbqs/Client_perl.html
54 =back
56 =head1 FEEDBACK
58 =head2 Mailing Lists
60 User feedback is an integral part of the evolution of this and other
61 Bioperl modules. Send your comments and suggestions preferably to
62 the Bioperl mailing list. Your participation is much appreciated.
64 bioperl-l@bioperl.org - General discussion
65 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
67 =head2 Support
69 Please direct usage questions or support issues to the mailing list:
71 L<bioperl-l@bioperl.org>
73 rather than to the module maintainer directly. Many experienced and
74 reponsive experts will be able look at the problem and quickly
75 address it. Please include a thorough description of the problem
76 with code and data examples if at all possible.
78 =head2 Reporting Bugs
80 Report bugs to the Bioperl bug tracking system to help us keep track
81 of the bugs and their resolution. Bug reports can be submitted via the
82 web:
84 http://bugzilla.open-bio.org/
86 =head1 AUTHORS
88 Heikki Lehvaslaiho (heikki-at-bioperl-dot-org),
89 Martin Senger (senger@ebi.ac.uk)
91 =head1 COPYRIGHT
93 Copyright (c) 2002 European Bioinformatics Institute. All Rights Reserved.
95 This module is free software; you can redistribute it and/or modify
96 it under the same terms as Perl itself.
98 =head1 DISCLAIMER
100 This software is provided "as is" without warranty of any kind.
102 =cut
105 # Let the code begin...
108 package Bio::Biblio::MedlineJournalArticle;
109 use strict;
110 use vars qw(@ISA);
113 use base qw(Bio::Biblio::MedlineArticle Bio::Biblio::JournalArticle);
116 # a closure with a list of allowed attribute names (these names
117 # correspond with the allowed 'get' and 'set' methods); each name also
118 # keep what type the attribute should be (use 'undef' if it is a
119 # simple scalar)
122 my %_allowed =
124 _journal => 'Bio::Biblio::MedlineJournal',
127 # return 1 if $attr is allowed to be set/get in this class
128 sub _accessible {
129 my ($self, $attr) = @_;
130 return 1 if exists $_allowed{$attr};
131 foreach my $parent (@ISA) {
132 return 1 if $parent->_accessible ($attr);
136 # return an expected type of given $attr
137 sub _attr_type {
138 my ($self, $attr) = @_;
139 if (exists $_allowed{$attr}) {
140 return $_allowed{$attr};
141 } else {
142 foreach my $parent (@ISA) {
143 if ($parent->_accessible ($attr)) {
144 return $parent->_attr_type ($attr);
148 return 'unknown';
154 __END__