File Coverage

Bio/Ontology/TermFactory.pm
Criterion Covered Total %
statement 14 14 100.0
branch n/a
condition 2 2 100.0
subroutine 4 4 100.0
pod 1 1 100.0
total 21 21 100.0


line stmt bran cond sub pod time code
1             #
2             # BioPerl module for Bio::Ontology::TermFactory
3             #
4             # Please direct questions and support issues to
5             #
6             # Cared for by Hilmar Lapp
7             #
8             # Copyright Hilmar Lapp
9             #
10             # You may distribute this module under the same terms as perl itself
11              
12             #
13             # (c) Hilmar Lapp, hlapp at gmx.net, 2002.
14             # (c) GNF, Genomics Institute of the Novartis Research Foundation, 2002.
15             #
16             # You may distribute this module under the same terms as perl itself.
17             # Refer to the Perl Artistic License (see the license accompanying this
18             # software package, or see http://www.perl.com/language/misc/Artistic.html)
19             # for the terms under which you may use, modify, and redistribute this module.
20             #
21             # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
22             # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
23             # MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
24             #
25              
26             # POD documentation - main docs before the code
27              
28             =head1 NAME
29              
30             Bio::Ontology::TermFactory - Instantiates a new
31             Bio::Ontology::TermI (or derived class) through a factory
32              
33             =head1 SYNOPSIS
34              
35             use Bio::Ontology::TermFactory;
36              
37             # the default type is Bio::Ontology::Term
38             my $factory = Bio::Ontology::TermFactory->new(
39             -type => 'Bio::Ontology::GOterm');
40             my $term = $factory->create_object(-name => 'peroxisome',
41             -ontology => 'Gene Ontology',
42             -identifier => 'GO:0005777');
43              
44              
45             =head1 DESCRIPTION
46              
47             This object will build L objects generically.
48              
49             =head1 FEEDBACK
50              
51             =head2 Mailing Lists
52              
53             User feedback is an integral part of the evolution of this and other
54             Bioperl modules. Send your comments and suggestions preferably to
55             the Bioperl mailing list. Your participation is much appreciated.
56              
57             bioperl-l@bioperl.org - General discussion
58             http://bioperl.org/wiki/Mailing_lists - About the mailing lists
59              
60             =head2 Support
61              
62             Please direct usage questions or support issues to the mailing list:
63              
64             I
65              
66             rather than to the module maintainer directly. Many experienced and
67             reponsive experts will be able look at the problem and quickly
68             address it. Please include a thorough description of the problem
69             with code and data examples if at all possible.
70              
71             =head2 Reporting Bugs
72              
73             Report bugs to the Bioperl bug tracking system to help us keep track
74             of the bugs and their resolution. Bug reports can be submitted via
75             the web:
76              
77             https://github.com/bioperl/bioperl-live/issues
78              
79             =head1 AUTHOR - Hilmar Lapp
80              
81             Email hlapp at gmx.net
82              
83              
84             =head1 APPENDIX
85              
86             The rest of the documentation details each of the object methods.
87             Internal methods are usually preceded with a _
88              
89             =cut
90              
91              
92             # Let the code begin...
93              
94              
95             package Bio::Ontology::TermFactory;
96 4     4   866 use strict;
  4         6  
  4         118  
97              
98 4     4   20 use Bio::Root::Root;
  4         7  
  4         110  
99              
100 4     4   31 use base qw(Bio::Factory::ObjectFactory);
  4         7  
  4         1057  
101              
102             =head2 new
103              
104             Title : new
105             Usage : my $obj = Bio::Ontology::TermFactory->new();
106             Function: Builds a new Bio::Ontology::TermFactory object
107             Returns : Bio::Ontology::TermFactory
108             Args : -type => string, name of a Bio::Ontology::TermI derived class.
109             The default is Bio::Ontology::Term.
110              
111             See L, L.
112              
113             =cut
114              
115             sub new {
116 8     8 1 32 my($class,@args) = @_;
117              
118 8         44 my $self = $class->SUPER::new(@args);
119            
120             # make sure this matches our requirements
121 8         30 $self->interface("Bio::Ontology::TermI");
122 8   100     28 $self->type($self->type() || "Bio::Ontology::Term");
123              
124 8         28 return $self;
125             }
126              
127              
128             =head2 create_object
129              
130             Title : create_object
131             Usage : my $term = $factory->create_object();
132             Function: Instantiates new Bio::Ontology::TermI (or one of its child classes)
133              
134             This object allows us to genericize the instantiation of
135             Term objects.
136              
137             Returns : Bio::Ontology::TermI compliant object
138             The return type is configurable using new(-type =>"...").
139             Args : initialization parameters specific to the type of term
140             object we want. Typically
141             -name => $name
142             -identifier => identifier for the term
143             -ontology => ontology for the term
144              
145             See L.
146              
147             =cut
148              
149             1;