3 # BioPerl module for Bio::Tools::EUtilities::Link::UrlLink
5 # Cared for by Chris Fields
7 # Copyright Chris Fields
9 # You may distribute this module under the same terms as perl itself
11 # POD documentation - main docs before the code
13 # Part of the EUtilities BioPerl package
17 Bio::Tools::EUtilities::Link::UrlLink
31 User feedback is an integral part of the
32 evolution of this and other Bioperl modules. Send
33 your comments and suggestions preferably to one
34 of the Bioperl mailing lists. Your participation
37 bioperl-l@lists.open-bio.org - General discussion
38 http://www.bioperl.org/wiki/Mailing_lists - About the mailing lists
42 Report bugs to the Bioperl bug tracking system to
43 help us keep track the bugs and their resolution.
44 Bug reports can be submitted via the web.
46 http://bugzilla.open-bio.org/
50 Email cjfields at uiuc dot edu
54 The rest of the documentation details each of the
55 object methods. Internal methods are usually
60 # Let the code begin...
62 package Bio
::Tools
::EUtilities
::Link
::UrlLink
;
64 use base
qw(Bio::Root::Root Bio::Tools::EUtilities::EUtilDataI);
77 sub get_dbfrom
{ return shift->{'_dbfrom'}; }
89 sub get_attribute
{ return shift->{'_attribute'}; }
101 sub get_icon_url
{ return shift->{'_iconurl'}; }
103 =head2 get_subject_type
113 sub get_subject_type
{ return shift->{'_subjecttype'}; }
127 # fix Entrz LinkOut URLS without the full URL
128 if ($self->{'_url'} && $self->{'_url'} =~ m{^/}) {
129 $self->{'_url'} = 'http://www.ncbi.nih.gov'.$self->{'_url'};
131 return $self->{'_url'};
136 Title : get_link_name
144 sub get_link_name
{ return shift->{'_linkname'}; }
146 =head2 get_provider_name
148 Title : get_provider_name
156 sub get_provider_name
{ return shift->{'_provider_name'}; }
158 =head2 get_provider_abbr
160 Title : get_provider_abbr
168 sub get_provider_abbr
{ return shift->{'_provider_nameabbr'}; }
170 =head2 get_provider_id
172 Title : get_provider_id
180 sub get_provider_id
{ return shift->{'_provider_id'}[0]; }
182 =head2 get_provider_icon_url
184 Title : get_provider_icon_url
192 sub get_provider_icon_url
{ return shift->{'_provider_iconurl'}; }
194 =head2 get_provider_url
196 Title : get_provider_url
204 sub get_provider_url
{ return shift->{'_provider_url'}; }
209 my ($self, $data) = @_;
210 if (exists $data->{Provider
}) {
211 map {$self->{'_provider_'.lc $_} = $data->{Provider
}->{$_};
212 } keys %{$data->{Provider
}};
213 delete $data->{Provider
};
215 map {$self->{'_'.lc $_} = $data->{$_} if $data->{$_}} keys %$data;
221 Usage : $foo->to_string()
222 Function : converts current object to string
224 Args : (optional) simple data for text formatting
225 Note : Used generally for debugging and for various print methods
231 my $level = shift || 0;
232 my $pad = 20 - $level;
234 my %tags = (1 => ['get_link_name' => 'Link Name'],
235 2 => ['get_subject_type' => 'Subject Type'],
236 3 => ['get_dbfrom' => 'DB From'],
237 4 => ['get_attribute' => 'Attribute'],
238 6 => ['get_icon_url' => 'IconURL'],
239 7 => ['get_url' => 'URL'],
240 8 => ['get_provider_name' => 'Provider'],
241 9 => ['get_provider_abbr' => 'ProvAbbr'],
242 10 => ['get_provider_id' => 'ProvID'],
243 11 => ['get_provider_url' => 'ProvURL'],
244 12 => ['get_provider_icon_url' => 'ProvIcon'],
247 for my $tag (sort {$a <=> $b} keys %tags) {
248 my ($m, $nm) = ($tags{$tag}->[0], $tags{$tag}->[1]);
249 my $content = $self->$m();
250 next unless $content;
251 $string .= sprintf("%-*s%-*s%s\n",
254 $self->_text_wrap(':',
255 ' ' x
($pad + $level).':',