[Biocorba-l] Biocorba IDL
Alan Robinson
alan@ebi.ac.uk
Thu, 19 Oct 2000 14:33:54 +0100 (GMT Daylight Time)
Hi,
I'm writing a Biocorba server currently (planned to be released next
week), and whilst working with the Biocorba IDL I've come across the
following issues:
The following are errors in the BioCorba.idl available from the web site.
Unless these are corrected, the IDL won't compile with an IDL compiler.
The main problem is that all the IDL sequences have been defined
incorrectly. Plus an exception is declared wrongly.
diff BioCorba.idl BioCorbaFixed.idl:
52c52
< exception RequestTooLarge { string reason,long suggested_size; };
---
> exception RequestTooLarge { string reason; long suggested_size; };
144c144
< typedef sequence stringList;
---
> typedef sequence<string> stringList;
150c150
< typedef sequence NameValueSetList;
---
> typedef sequence<NameValueSet> NameValueSetList;
169c169
< typedef sequence SeqFeatureList;
---
> typedef sequence<SeqFeature> SeqFeatureList;
213c213
< typedef sequence primaryidList;
---
> typedef sequence<primaryid> primaryidList;
223,224c224,225
< typedef sequence SeqList;
< typedef sequence PrimarySeqList;
---
> typedef sequence<Seq> SeqList;
> typedef sequence<PrimarySeq> PrimarySeqList;
Next, there is an inconsistency in variable type: In the BioEnv interface,
the methods all define the 'version' variable as being a string. However,
the PrimarySeqDB interface defines the database version as a 'short'.
The following are suggestions (***YMMV***):
The module is defined as org::Biocorba::Seqcore so "we look good in Java".
Stylisticly, it should be org::biocorba::seqcore (Java packages are not
capitalised, but Java objects are).
However, wouldn't it make more sense for the module to be just "Bio"? Then
it would fit better with bioperl and make life easier for C interface
users.
The BioEnv interface defines methods to fetch a SeqDB by name, but it
doesn't allow you to ask what SeqDB names it holds. A 'stringList
get_SeqDB_names();' method would be useful here.
For the iterators, it would be convenient to have a 'reset()' method that
takes you back to the first item of the iterator, so that if we want to
cycle over the values again, we don't have to re-create the object.
The only SeqTypes defined are PROTEIN, DNA and RNA. It would be useful to
have also CIRCULAR_DNA, CIRCULAR_RNA and XXX (e.g. see Ac#:S47134).
The exception "DoesNotExist" is not thrown by any methods of the IDL.
The following is heading into fluff territory:
In the PrimarySeqDB interface, the methods 'database_name()' and
'database_version()' could be shortened to 'name()' and 'version' for
consistency.
In the documentation for the iterators:
boolean has_more(); // returns 1 when next_seq will give an object.
Technically '1' is not a boolean. If the method really returns '1', it
should be a 'short' being returned.
cheers,
al
--
============================================================
Alan J. Robinson, D.Phil. Tel:+44-(0)1223 494444
European Bioinformatics Institute Fax:+44-(0)1223 494468
EMBL Outstation - Hinxton Email: alan@ebi.ac.uk
Wellcome Trust Genome Campus
Hinxton, Cambridge
CB10 1SD, UK http://industry.ebi.ac.uk/~alan/
============================================================