Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 562 lines (447 sloc) 17.561 kB
9d5b8c1 Bibliography query modules added
senger authored
1 # $Id$
2 #
d0f2a61 soap.pm moved from Factory to DB
senger authored
3 # BioPerl module Bio::DB::Biblio::soap.pm
9d5b8c1 Bibliography query modules added
senger authored
4 #
3123bce adding pod FEEDBACK:Support section, with associated bioperl.lisp
maj authored
5 # Please direct questions and support issues to <bioperl-l@bioperl.org>
6 #
9d5b8c1 Bibliography query modules added
senger authored
7 # Cared for by Martin Senger <senger@ebi.ac.uk>
8 # For copyright and disclaimer see below.
9
10 # POD documentation - main docs before the code
11
12 =head1 NAME
13
d0f2a61 soap.pm moved from Factory to DB
senger authored
14 Bio::DB::Biblio::soap - A SOAP-based access to a bibliographic query service
9d5b8c1 Bibliography query modules added
senger authored
15
16 =head1 SYNOPSIS
17
18 Do not use this object directly, it is recommended to access it and use
19 it through the I<Bio::Biblio> module:
20
21 use Bio::Biblio;
ad25739 Remove spurious comment and fix POD
tseemann authored
22 my $biblio = Bio::Biblio->new (-access => 'soap');
9d5b8c1 Bibliography query modules added
senger authored
23
24 =head1 DESCRIPTION
25
26 This object contains the real implementation of a Bibliographic Query
d0f2a61 soap.pm moved from Factory to DB
senger authored
27 Service as defined in L<Bio::DB::BiblioI> - using a SOAP protocol
9d5b8c1 Bibliography query modules added
senger authored
28 to access a WebService (a remote server) that represents a
29 bibliographic repository.
30
31 =head1 FEEDBACK
32
33 =head2 Mailing Lists
34
35 User feedback is an integral part of the evolution of this and other
36 Bioperl modules. Send your comments and suggestions preferably to
37 the Bioperl mailing list. Your participation is much appreciated.
38
4c86fd5 @arareko Updating mailing lists URL
arareko authored
39 bioperl-l@bioperl.org - General discussion
40 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
9d5b8c1 Bibliography query modules added
senger authored
41
3123bce adding pod FEEDBACK:Support section, with associated bioperl.lisp
maj authored
42 =head2 Support
c975d29 [cage cleaning]
cjfields authored
43
3123bce adding pod FEEDBACK:Support section, with associated bioperl.lisp
maj authored
44 Please direct usage questions or support issues to the mailing list:
c975d29 [cage cleaning]
cjfields authored
45
46 I<bioperl-l@bioperl.org>
47
3123bce adding pod FEEDBACK:Support section, with associated bioperl.lisp
maj authored
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.
52
9d5b8c1 Bibliography query modules added
senger authored
53 =head2 Reporting Bugs
54
55 Report bugs to the Bioperl bug tracking system to help us keep track
6e62c57 @hyphaltip fix Revision string problems
hyphaltip authored
56 of the bugs and their resolution. Bug reports can be submitted via the
57 web:
9d5b8c1 Bibliography query modules added
senger authored
58
500f926 @arareko Updated bug reporting
arareko authored
59 http://bugzilla.open-bio.org/
9d5b8c1 Bibliography query modules added
senger authored
60
61 =head1 AUTHOR
62
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
63 Martin Senger (martin.senger@gmail.com)
9d5b8c1 Bibliography query modules added
senger authored
64
65 =head1 COPYRIGHT
66
67 Copyright (c) 2002 European Bioinformatics Institute. All Rights Reserved.
68
69 This module is free software; you can redistribute it and/or modify
70 it under the same terms as Perl itself.
71
72 =head1 DISCLAIMER
73
74 This software is provided "as is" without warranty of any kind.
75
76 =head1 BUGS AND LIMITATIONS
77
78 =over
79
80 =item *
81
82 Methods returning a boolean value (I<has_next>, I<exists> and
83 I<contains>) can be used only with SOAP::Lite version 0.52 and newer
84 (probably due to a bug in the older SOAP::Lite).
85
86 =item *
87
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
88 It does not use WSDL.
9d5b8c1 Bibliography query modules added
senger authored
89
90 =item *
91
92 More testing and debugging needed to ensure that returned citations
93 are properly transferred even if they contain foreign characters.
94
95 =back
96
97 =head1 APPENDIX
98
99 The main documentation details are to be found in
d0f2a61 soap.pm moved from Factory to DB
senger authored
100 L<Bio::DB::BiblioI>.
9d5b8c1 Bibliography query modules added
senger authored
101
102 Here is the rest of the object methods. Internal methods are preceded
103 with an underscore _.
104
105 =cut
106
107
108 # Let the code begin...
109
110
d0f2a61 soap.pm moved from Factory to DB
senger authored
111 package Bio::DB::Biblio::soap;
77c45fb Removed unused "use vars ($Revision); $Revision = ...."
tseemann authored
112 use vars qw($DEFAULT_SERVICE $DEFAULT_NAMESPACE);
9d5b8c1 Bibliography query modules added
senger authored
113 use strict;
114
115 use SOAP::Lite
116 on_fault => sub {
117 my $soap = shift;
118 my $res = shift;
119 my $msg =
120 ref $res ? "--- SOAP FAULT ---\n" . $res->faultcode . " " . $res->faultstring
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
121 : "--- TRANSPORT ERROR ---\n" . $soap->transport->status . "\n$res\n";
d0f2a61 soap.pm moved from Factory to DB
senger authored
122 Bio::DB::Biblio::soap->throw ( -text => $msg );
9d5b8c1 Bibliography query modules added
senger authored
123 }
124 ;
125
13750a6 @sendu use base, return true
sendu authored
126 use base qw(Bio::Biblio);
9d5b8c1 Bibliography query modules added
senger authored
127
1e68457 @heikkil removed module specific $VERSION, all modules now use global one from…
heikkil authored
128 BEGIN {
9d5b8c1 Bibliography query modules added
senger authored
129 # where to go...
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
130 $DEFAULT_SERVICE = 'http://www.ebi.ac.uk/openbqs/services/MedlineSRS';
9d5b8c1 Bibliography query modules added
senger authored
131
132 # ...and what to find there
49dd4e9 [cage cleaning]
cjfields authored
133
134 ## TODO: This namespace is no longer valid (check for deprecation or update)
9d5b8c1 Bibliography query modules added
senger authored
135 $DEFAULT_NAMESPACE = 'http://industry.ebi.ac.uk/openBQS';
136 }
137
138 # -----------------------------------------------------------------------------
139
140 =head2 _initialize
141
7ff147a @sendu removed bad "new Bio::Module" syntax, replaced with "Bio::Module->new"
sendu authored
142 Usage : my $obj = Bio::Biblio->new(-access => 'soap' ...);
9d5b8c1 Bibliography query modules added
senger authored
143 (_initialize is internally called from this constructor)
144 Returns : nothing interesting
145 Args : This module recognises and uses following arguments:
146
147 -namespace => 'urn'
148 The namespace used by the WebService that is being
149 accessed. It is a string which guarantees its world-wide
150 uniqueness - therefore it often has a style of a URL -
151 but it does not mean that such pseudo-URL really exists.
152
49dd4e9 [cage cleaning]
cjfields authored
153 ## TODO: This namespace is no longer valid (check for deprecation
154 ## or update)
155
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
156 Default is 'http://industry.ebi.ac.uk/openBQS'.
9d5b8c1 Bibliography query modules added
senger authored
157
158 -destroy_on_exit => '0'
159 Default value is '1' which means that all Bio::Biblio
160 objects - when being finalised - will send a request
161 to the remote WebService to forget the query collections
162 they represent.
163
164 If you change it to '0' make sure that you know the
165 query collection identification - otherwise you will
166 not be able to re-established connection with it.
167 This can be done by calling method get_collection_id.
168
169 -collection_id => '...'
170 It defines what query collection will this object work
171 with. Use this argument when you know a collection ID
172 of an existing query collection and when you wish to
173 re-established connection with it.
174
175 By default, the collection IDs are set automatically
176 by the query methods - they return Bio::Biblio objects
177 already having a collection ID.
178
179 A missing or undefined collection ID means that the
180 object represents the whole bibliographic repository
181 (which again means that some methods, like get_all,
182 will be probably refused).
183
184 -soap => a SOAP::Lite object
185 Usually all Bio::Biblio objects share an instance of
186 the underlying SOAP::Lite module. But you are free
187 to have more - perhaps with different characteristics.
188
189 See the code for attributes of the default SOAP::Lite
190 object.
191
d8f2e7d notion of the HTTP proxy added
senger authored
192 -httpproxy => 'http://server:port'
193 In addition to the 'location' parameter, you may need
194 to specify also a location/URL of a HTTP proxy server
195 (if your site requires one).
196
d0f2a61 soap.pm moved from Factory to DB
senger authored
197 Additionally, the main module Bio::Biblio recognises
9d5b8c1 Bibliography query modules added
senger authored
198 also:
199 -access => '...'
200 -location => '...'
201
202 It populates calling object with the given arguments, and then - for
203 some attributes and only if they are not yet populated - it assigns
204 some default values.
205
206 This is an actual new() method (except for the real object creation
207 and its blessing which is done in the parent class Bio::Root::Root in
208 method _create_object).
209
210 Note that this method is called always as an I<object> method (never as
211 a I<class> method) - and that the object who calls this method may
212 already be partly initiated (from Bio::Biblio::new method); so if you
213 need to do some tricks with the 'class invocation' you need to change
214 Bio::Biblio::new method, not this one.
215
216 =cut
217
218 sub _initialize {
219 my ($self, @args) = @_;
220
221 # make a hashtable from @args
222 my %param = @args;
223 @param { map { lc $_ } keys %param } = values %param; # lowercase keys
224
225 # copy all @args into this object (overwriting what may already be
226 # there) - changing '-key' into '_key'
227 my $new_key;
228 foreach my $key (keys %param) {
229 ($new_key = $key) =~ s/^-/_/;
230 $self->{ $new_key } = $param { $key };
231 }
232
233 # finally add default values for those keys who have default value
234 # and who are not yet in the object
235 $self->{'_location'} = $DEFAULT_SERVICE unless $self->{'_location'};
236 $self->{'_namespace'} = $DEFAULT_NAMESPACE unless $self->{'_namespace'};
237 $self->{'_destroy_on_exit'} = 1 unless defined $self->{'_destroy_on_exit'};
d8f2e7d notion of the HTTP proxy added
senger authored
238 unless ($self->{'_soap'}) {
239 if (defined $self->{'_httpproxy'}) {
240 $self->{'_soap'} = SOAP::Lite
241 -> uri ($self->{'_namespace'})
242 -> proxy ($self->{'_location'},
243 proxy => ['http' => $self->{'_httpproxy'}]);
244 } else {
245 $self->{'_soap'} = SOAP::Lite
246 -> uri ($self->{'_namespace'})
247 -> proxy ($self->{'_location'});
248 }
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
249 # $self->{'_soap'}->soapversion (1.2);
d8f2e7d notion of the HTTP proxy added
senger authored
250 }
9d5b8c1 Bibliography query modules added
senger authored
251 }
252
253 # -----------------------------------------------------------------------------
254
255 #
256 # objects representing query collections are being destroyed if they
257 # have attribute '_destroy_on_exit' set to true - which is a default
258 # value
259 #
260 sub DESTROY {
261 my $self = shift;
262 my $soap = $self->{'_soap'};
263 my $destroy = $self->{'_destroy_on_exit'};
264 return unless $destroy;
265 my $collection_id = $self->{'_collection_id'};
266 return unless $collection_id;
267
268 # ignore all errors here
269 eval {
270 $soap->destroy (SOAP::Data->type (string => $collection_id));
271 }
272 }
273
274 #
275 # some methods must be called with an argument containing a collection
276 # ID; here we return a proper error message explaining it
277 #
278 sub _no_id_msg {
279 my $self = shift;
280 my $package = ref $self;
281 my $method = (caller(1))[3];
282 my $strip_method = $method;
283 $strip_method =~ s/^$package\:\://;
284
285 return <<"END_OF_MSG";
286 Method '$method' works only if its object has a query collection ID.
287 Perhaps you need to use:
7ff147a @sendu removed bad "new Bio::Module" syntax, replaced with "Bio::Module->new"
sendu authored
288 \tBio::Biblio->new(-collection_id => '1234567')->$strip_method;
9d5b8c1 Bibliography query modules added
senger authored
289 or to obtain a collection ID indirectly from a query method:
7ff147a @sendu removed bad "new Bio::Module" syntax, replaced with "Bio::Module->new"
sendu authored
290 \tBio::Biblio->new->find ('keyword')->$strip_method;
9d5b8c1 Bibliography query modules added
senger authored
291 END_OF_MSG
292 }
293
294 #
295 # some methods do not work with older SOAP::Lite version; here we
296 #return message explaining it
297 #
298 sub _old_version_msg {
299 my $self = shift;
300 my $method = (caller(1))[3];
301
302 return <<"END_OF_MSG";
303 Method '$method' works only with SOAP::Lite
304 version 0.52 and newer (the problem is with returning a boolean value from the server).
305 END_OF_MSG
306 }
307
308 #
309 # some controlled vocabulary methods needs two parameters; here we
310 # return message explaining it
311 #
312 sub _two_params_msg {
313 my $self = shift;
314 my $method = (caller(1))[3];
315
316 return <<"END_OF_MSG";
317 Method '$method' expects two parameters: vocabulary name and a value.
318 END_OF_MSG
319 }
320
321 #
322 # some controlled vocabulary methods needs a vocabulary name; here we
323 # return message explaining it
324 #
325 sub _missing_name_msg {
326 my $self = shift;
327 my $method = (caller(1))[3];
328
329 return <<"END_OF_MSG";
330 Method '$method' expects vocabulary name as parameter.
331 END_OF_MSG
332 }
333
1236001 Fixed: looking for keywords with numeric values
senger authored
334 #
335 # return a copy of a given array, with all its elements replaced
336 # with the SOAP-Data objects defining elements type as 'string'
337 #
338 sub _as_strings {
339 my ($ref_input_array) = @_;
340 my (@result) = map { SOAP::Data->new (type => 'string', value => $_) } @$ref_input_array;
341 return \@result;
342 }
9d5b8c1 Bibliography query modules added
senger authored
343
344 # ---------------------------------------------------------------------
345 #
d0f2a61 soap.pm moved from Factory to DB
senger authored
346 # Here are the methods implementing Bio::DB::BiblioI interface
347 # (documentation is in Bio::DB::BiblioI)
9d5b8c1 Bibliography query modules added
senger authored
348 #
349 # ---------------------------------------------------------------------
350
351 sub get_collection_id {
352 my ($self) = @_;
353 $self->{'_collection_id'};
354 }
355
356 sub get_count {
357 my ($self) = @_;
358 my $soap = $self->{'_soap'};
359 my ($collection_id) = $self->{'_collection_id'};
360 if ($collection_id) {
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
361 $soap->getBibRefCountOfCollection (SOAP::Data->type (string => $collection_id))->result;
9d5b8c1 Bibliography query modules added
senger authored
362 } else {
363 $soap->getBibRefCount->result;
364 }
365 }
366
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
367 # try: 12368254 (it's a Bioperl article)
9d5b8c1 Bibliography query modules added
senger authored
368 sub get_by_id {
369 my ($self, $citation_id) = @_;
370 $self->throw ("Citation ID is expected as a parameter of method 'get_by_id'.")
371 unless $citation_id;
372 my $soap = $self->{'_soap'};
373 $soap->getById (SOAP::Data->type (string => $citation_id))->result;
374 }
375
376 sub find {
377 my ($self, $keywords, $attrs) = @_;
378 my (@keywords, @attrs);
379
380 # $keywords can be a comma-delimited scalar or a reference to an array
381 if ($keywords) {
382 my $ref = ref $keywords;
383 @keywords = split (/,/, $keywords) unless $ref;
384 @keywords = @$keywords if $ref =~ /ARRAY/;
385 }
386 $self->throw ("No keywords given in 'find' method.\n")
387 unless (@keywords);
388
389 # ...and the same with $attrs
390 if ($attrs) {
391 my $ref = ref $attrs;
392 @attrs = split (/,/, $attrs) unless $ref;
393 @attrs = @$attrs if $ref =~ /ARRAY/;
394 }
395
396 my $soap = $self->{'_soap'};
397 my $collection_id = $self->{'_collection_id'};
398 my $new_id;
399 if ($collection_id) {
400 if (@attrs) {
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
401 $new_id = $soap->reFindInAttrs (SOAP::Data->name ('arg0')->type (string => $collection_id),
402 SOAP::Data->name ('arg1')->value (&_as_strings (\@keywords)),
403 SOAP::Data->name ('arg2')->value (&_as_strings (\@attrs)))
404 ->result;
9d5b8c1 Bibliography query modules added
senger authored
405 } else {
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
406 $new_id = $soap->reFind (SOAP::Data->name ('arg0')->type (string => $collection_id),
407 SOAP::Data->name ('arg1')->value (&_as_strings (\@keywords)))
408 ->result;
9d5b8c1 Bibliography query modules added
senger authored
409 }
410 } else {
411 if (@attrs) {
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
412 $new_id = $soap->findInAttrs (SOAP::Data->name ('arg0')->value (&_as_strings (\@keywords)),
413 SOAP::Data->name ('arg1')->value (&_as_strings (\@attrs)))
414 ->result;
9d5b8c1 Bibliography query modules added
senger authored
415 } else {
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
416 $new_id = $soap->find (SOAP::Data->name ('arg0')->value (&_as_strings (\@keywords)))
417 ->result;
9d5b8c1 Bibliography query modules added
senger authored
418 }
419 }
420
421 # clone itself but change the collection ID to a new one
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
422 return $self->new (-collection_id => $new_id,
423 -parent_collection_id => $collection_id);
9d5b8c1 Bibliography query modules added
senger authored
424 }
425
426 sub get_all_ids {
427 my ($self) = @_;
428 my $soap = $self->{'_soap'};
429 my ($collection_id) = $self->{'_collection_id'};
430 $self->throw ($self->_no_id_msg) unless $collection_id;
431 $soap->getAllIDs (SOAP::Data->type (string => $collection_id))->result;
432 }
433
434 sub get_all {
435 my ($self) = @_;
436 my $soap = $self->{'_soap'};
437 my ($collection_id) = $self->{'_collection_id'};
438 $self->throw ($self->_no_id_msg) unless $collection_id;
439 $soap->getAllBibRefs (SOAP::Data->type (string => $collection_id))->result;
440 }
441
442 sub has_next {
443 my ($self) = @_;
444 my $soap = $self->{'_soap'};
445 my ($collection_id) = $self->{'_collection_id'};
446 $self->throw ($self->_no_id_msg) unless $collection_id;
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
447 $self->throw ($self->_old_version_msg) if $SOAP::Lite::VERSION lt '0.52';
9d5b8c1 Bibliography query modules added
senger authored
448 $soap->hasNext (SOAP::Data->type (string => $collection_id))->result;
449 }
450
451 sub get_next {
452 my ($self) = @_;
453 my $soap = $self->{'_soap'};
454 my ($collection_id) = $self->{'_collection_id'};
455 $self->throw ($self->_no_id_msg) unless $collection_id;
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
456 $soap->getNext (SOAP::Data->type (string => $collection_id))->result;
9d5b8c1 Bibliography query modules added
senger authored
457 }
458
459 sub get_more {
460 my ($self, $how_many) = @_;
461 my $soap = $self->{'_soap'};
462 my $collection_id = $self->{'_collection_id'};
463 $self->throw ($self->_no_id_msg) unless $collection_id;
464
465 unless (defined ($how_many) and $how_many =~ /^\d+$/) {
ad25739 Remove spurious comment and fix POD
tseemann authored
466 $self->warn ("Method 'get_more' expects a numeric argument. Changing to 1.\n");
9d5b8c1 Bibliography query modules added
senger authored
467 $how_many = 1;
468 }
469 unless ($how_many > 0) {
ad25739 Remove spurious comment and fix POD
tseemann authored
470 $self->warn ("Method 'get_more' expects a positive argument. Changing to 1.\n");
9d5b8c1 Bibliography query modules added
senger authored
471 $how_many = 1;
472 }
473
9ef8781 changes in web-service interface and in documentation
senger authored
474 my $ra = $soap->getMore (SOAP::Data->type (string => $collection_id),
475 SOAP::Data->type (int => $how_many))->result;
476 $self->{'_collection_id'} = shift @{ $ra };
477 $ra;
9d5b8c1 Bibliography query modules added
senger authored
478 }
479
480 sub reset_retrieval {
481 my ($self) = @_;
482 my $soap = $self->{'_soap'};
483 my ($collection_id) = $self->{'_collection_id'};
484 $self->throw ($self->_no_id_msg) unless $collection_id;
9ef8781 changes in web-service interface and in documentation
senger authored
485 $self->{'_collection_id'} = $soap->resetRetrieval (SOAP::Data->type (string => $collection_id))->result;
9d5b8c1 Bibliography query modules added
senger authored
486 }
487
488 sub exists {
489 my ($self) = @_;
490 my $soap = $self->{'_soap'};
491 my ($collection_id) = $self->{'_collection_id'};
492 $self->throw ($self->_no_id_msg) unless $collection_id;
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
493 $self->throw ($self->_old_version_msg) if $SOAP::Lite::VERSION lt '0.52';
9d5b8c1 Bibliography query modules added
senger authored
494 $soap->exists (SOAP::Data->type (string => $collection_id))->result;
495 }
496
497 sub destroy {
498 my ($self) = @_;
499 my $soap = $self->{'_soap'};
500 my ($collection_id) = $self->{'_collection_id'};
501 $self->throw ($self->_no_id_msg) unless $collection_id;
502 $soap->destroy (SOAP::Data->type (string => $collection_id));
503 }
504
505 sub get_vocabulary_names {
506 my ($self) = @_;
507 my $soap = $self->{'_soap'};
508 $soap->getAllVocabularyNames->result;
509 }
510
511 sub contains {
512 my ($self, $vocabulary_name, $value) = @_;
513 my $soap = $self->{'_soap'};
7967a0c Biblio modules updated to reflect the new location and API changes in…
senger authored
514 $self->throw ($self->_old_version_msg) if $SOAP::Lite::VERSION lt '0.52';
9d5b8c1 Bibliography query modules added
senger authored
515 $self->throw ($self->_two_params_msg)
516 unless defined $vocabulary_name and defined $value;
517 $soap->contains (SOAP::Data->type (string => $vocabulary_name),
518 SOAP::Data->type (string => $value))->result;
519 }
520
521 sub get_entry_description {
522 my ($self, $vocabulary_name, $value) = @_;
523 my $soap = $self->{'_soap'};
524 $self->throw ($self->_two_params_msg)
525 unless defined $vocabulary_name and defined $value;
526 $soap->getEntryDescription (SOAP::Data->type (string => $vocabulary_name),
527 SOAP::Data->type (string => $value))->result;
528 }
529
530 sub get_all_values {
531 my ($self, $vocabulary_name) = @_;
532 my $soap = $self->{'_soap'};
533 $self->throw ($self->_missing_name_msg)
534 unless defined $vocabulary_name;
535 $soap->getAllValues (SOAP::Data->type (string => $vocabulary_name))->result;
536 }
537
538 sub get_all_entries {
539 my ($self, $vocabulary_name) = @_;
540 my $soap = $self->{'_soap'};
541 $self->throw ($self->_missing_name_msg)
542 unless defined $vocabulary_name;
543 $soap->getAllEntries (SOAP::Data->type (string => $vocabulary_name))->result;
544 }
545
546 =head2 VERSION and Revision
547
d0f2a61 soap.pm moved from Factory to DB
senger authored
548 Usage : print $Bio::DB::Biblio::soap::VERSION;
549 print $Bio::DB::Biblio::soap::Revision;
9d5b8c1 Bibliography query modules added
senger authored
550
551 =cut
552
553 =head2 Defaults
554
d0f2a61 soap.pm moved from Factory to DB
senger authored
555 Usage : print $Bio::DB::Biblio::soap::DEFAULT_SERVICE;
556 print $Bio::DB::Biblio::soap::DEFAULT_NAMESPACE;
9d5b8c1 Bibliography query modules added
senger authored
557
558 =cut
559
560 1;
561 __END__
Something went wrong with that request. Please try again.