As with most things the answer is a yes & no. It shouldn't break
interfaces as in the contract setup between the interface & a consumer
since generics are erased after compilation.
However if we're looking at class incompatibility errors then it's quite
likely that the new interface will have a different signature to the
original one & may cause runtime errors in classes which haven't been
recompiled against the new interface. A solution in some other projects
is to have to sets of interfaces; one with generics & one without but
that can be quite a nightmare to maintain.
Andy
Mark Schreiber wrote:
These are good points. Can we generify interfaces without breaking them?
Certainly the addition of generics to the biojavax packages would remove a
lot of nasty casting. Adding convenience methods would certainly also help
biojavax code does get a bit verbose. Again this would break interfaces
unless we put them in some kind of tools class.
These are certainly good points to remember for future designs (eg biojava2)
usability should be a test criteria as well. BioJavaX gives excellent ORM
with BioSQL and great capture of detail in it's parsers but the coding style
is a bit unwieldy. 2 out of 3 is not bad though : )
- Mark
On Thu, Mar 27, 2008 at 10:11 PM, Richard Holland <[EMAIL PROTECTED]> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
Your code for getting the Note named "gene" is correct. I agree, a
shorthand way of doing this would be lovely, but doesn't currently
exist. (Such a method would have to do the same thing internally
anyway). If you'd like to write one and add it in then you'd be most
welcome! :)
At the time that the BioJavaX extensions were written compatibility with
Java 1.4 was still required and so we could not make use of any new Java
features that were introduced in Java 1.5. Set<Feature>, being an
example of Generics, is one of these.
Future versions of BioJava will require the user to install Java 1.6 or
later and so we will be able to use these newer features in both new and
existing code, depending on feasibility (for instance it is not always
possible to convert older code to use Generics in a sensible manner, and
it is not always possible to write Generics code that can interface
sensibly with older non-Generics modules).
cheers,
Richard
Martin Jones wrote:
Hi,
I'm just getting started with BioJava so this may be a simple
question. I'm reading a RichSequence from a GenBank file and want to
get the gene name of each CDS feature. The following code gets hold
of the features I'm interested in
for (Object o : mySeq.getFeatureSet()){
RichFeature f = (RichFeature) o;
if (f.getType().equals("CDS")){
//get gene name here
}
}
but I'm not sure how best to get the gene name. The following seems to
work:
for (Object o2 : f.getNoteSet()){
Note n = (Note) o2;
if (n.getTerm().getName().equals("gene")){
System.out.println("gene name is " + n.getValue());
}
}
but seems overly verbose - ideally I'd like to be able to pass the
Feature to another part of my program, but writing the above whenever
I want to get the name seems like overkill. Is there a shorter way -
something along the lines of
String name = f.getNoteByName("gene").getValue();
Thanks in advance for any help.
PS one more question - is there a reason why e.g. getNoteSet returns
a Set rather than a Set<Feature>, which makes it necessary to do all
the type casts?
Thanks,
Martin
_______________________________________________
Biojava-l mailing list - Biojava-l@lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l
- --
Richard Holland (BioMart)
EMBL EBI, Wellcome Trust Genome Campus,
Hinxton, Cambridgeshire CB10 1SD, UK
Tel. +44 (0)1223 494416
http://www.biomart.org/
http://www.biojava.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH66sO4C5LeMEKA/QRAmq9AJ4qyMw4eGVYIMZjVf5jcADVRQmzpQCeOXej
mak90aLUhSF60DrWeRtM8o0=
=0EOE
-----END PGP SIGNATURE-----
_______________________________________________
Biojava-l mailing list - Biojava-l@lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l
_______________________________________________
Biojava-l mailing list - Biojava-l@lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l
_______________________________________________
Biojava-l mailing list - Biojava-l@lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l