[Biojava-l] Re: changed (improved) SequenceDB ...

Aaron Kitzmiller AKitzmiller@genetics.com
Thu, 29 Jun 2000 13:14:03 -0400


Couple of things regarding this thread...

1. I ring in on the side that is against frequent changes to interfaces.  We still haven't made the switch to SymbolList from ResidueList, simply because we have stretched resources.

2. Our experience with home-grown persistence wrappers has been very good.  Our Broker classes combine the functionality of SequenceFactory and SequenceDB into a single persistence manager that encapsulates the persistence method (SQL in our case) which often has impact on both query and construction.

"Where's the code?" you might ask.  As I mentioned, we're a little bit stretched at this point, but after a few name changes and other tweaks, I can at least send out the interfaces for review.

Aaron K.



Message: 1
Date: Thu, 29 Jun 2000 12:01:12 +0200
From: Gerald Loeffler <Gerald.Loeffler@vienna.at>
Reply-To: Gerald.Loeffler@vienna.at 
To: biojava-l@biojava.org 
boundary="------------667865E7FE51C44C7E5DB4AA"
Subject: [Biojava-l] changed (improved) SequenceDB and stuff

This is a multi-part message in MIME format.
--------------667865E7FE51C44C7E5DB4AA
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

hi matthew!

I made the following slight changes to SequenceDB and related classes
and hope that you find them acceptable and hence check them into your
CVS repository:

o org.biojava.bio.seq.SequenceDB:
	o added getName() method which returns the (possibly null) name of a
sequence db

o org.biojava.bio.seq.HashSequenceDB:
	o HashSequenceDB() and HashSequenceDB(IDMaker idMaker) create a
SequenceDB with name null.
	o added public constructor HashSequenceDB(IDMaker idMaker, String name)
	o added protected constructor HashSequenceDB(String name)
	o implemented getName() method

o org.biojava.bio.seq.AbstractAnnotator:
	o changed (the now ambiguous) instantiation of a HashSequenceDB from
HashSequenceDB(null) to HashSequenceDB(null, null).

o org.acedb.seq.AceSequenceDB:
	o implemented getName() to return the name of the node
(AceSet.getName()).

o org.biojava.bridge.Biocorba.Seqcore.SequenceDBAdapter:
	o implemented getName() to return the name of the primary corba
sequence db (PrimarySeqDB.database_name()).

The changed files are attached to this mail.

Though minor in nature, the addition of the getName() method to
interface SequenceDB will result in all implementations (outside the
BioJava distribution) of this interface to break in the sense that they
will all have to add an implementation of the getName() method...

cheers,
gerald
-- 
   Gerald.Loeffler@vienna.at _________________ Software Architect
   http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
   OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML
--------------667865E7FE51C44C7E5DB4AA
Content-Type: application/x-unknown-content-type-java_auto_file;
 name="SequenceDB.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="SequenceDB.java"

LyoKICogICAgICAgICAgICAgICAgICAgIEJpb0phdmEgZGV2ZWxvcG1lbnQgY29kZQogKgog
KiBUaGlzIGNvZGUgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBhbmQgbW9kaWZpZWQgdW5k
ZXIgdGhlCiAqIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
Y2UuICBUaGlzIHNob3VsZAogKiBiZSBkaXN0cmlidXRlZCB3aXRoIHRoZSBjb2RlLiAgSWYg
eW91IGRvIG5vdCBoYXZlIGEgY29weSwKICogc2VlOgogKgogKiAgICAgIGh0dHA6Ly93d3cu
Z251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbAogKgogKiBDb3B5cmlnaHQgZm9yIHRoaXMg
Y29kZSBpcyBoZWxkIGpvaW50bHkgYnkgdGhlIGluZGl2aWR1YWwKICogYXV0aG9ycy4gIFRo
ZXNlIHNob3VsZCBiZSBsaXN0ZWQgaW4gQGF1dGhvciBkb2MgY29tbWVudHMuCiAqCiAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBCaW9KYXZhIHByb2plY3QgYW5kIGl0cyBhaW1z
LAogKiBvciB0byBqb2luIHRoZSBiaW9qYXZhLWwgbWFpbGluZyBsaXN0LCB2aXNpdCB0aGUg
aG9tZSBwYWdlCiAqIGF0OgogKgogKiAgICAgIGh0dHA6Ly93d3cuYmlvamF2YS5vcmcvCiAq
CiAqLwoKcGFja2FnZSBvcmcuYmlvamF2YS5iaW8uc2VxOwoKaW1wb3J0IGphdmEudXRpbC4q
OwppbXBvcnQgb3JnLmJpb2phdmEuYmlvLio7CgovKioKICogQSBkYXRhYmFzZSBvZiBzZXF1
ZW5jZXMuCiAqIDxQPgogKiBUaGlzIG1heSBoYXZlIHNldmVyYWwgaW1wbGVtZW50YXRpb25z
IHdpdGggcmljaCBiZWhhdmlvdXIsIGJ1dCBiYXNpY2FseSBtb3N0CiAqIG9mIHRoZSB0aW1l
IHlvdSB3aWxsIGp1c3QgdXNlIHRoZSBpbnRlcmZhY2UgbWV0aG9kcyB0byBkbyBzdHVmZi4g
QSBzZXF1ZW5jZQogKiBkYXRhYmFzZSBjb250YWlucyBhIGZpbml0ZSBudW1iZXIgb2Ygc2Vx
dWVuY2VzIHN0b29yZWQgdW5kZXIgdW5pcXVlIGtleXMuCiAqCiAqIEBhdXRob3IgTWF0dGhl
dyBQb2NvY2sKICogQGF1dGhvciA8QSBocmVmPSJtYWlsdG86R2VyYWxkLkxvZWZmbGVyQHZp
ZW5uYS5hdCI+R2VyYWxkIExvZWZmbGVyPC9BPgogKi8KcHVibGljIGludGVyZmFjZSBTZXF1
ZW5jZURCIHsKICAvKioKICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhpcyBzZXF1ZW5jZSBkYXRh
YmFzZS4KICAgKgogICAqIEByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHNlcXVlbmNlIGRhdGFi
YXNlLCB3aGljaCBtYXkgYmUgbnVsbC4KICAgKi8KICBTdHJpbmcgZ2V0TmFtZSgpOwoKICAv
KioKICAgKiBSZXRyaWV2ZSBhIHNpbmdsZSBzZXF1ZW5jZSBieSBpdHMgaWQuCiAgICoKICAg
KiBAcGFyYW0gdGhlIGlkIHRvIHJldHJpZXZlIGJ5CiAgICogQHJldHVybiAgdGhlIFNlcXVl
bmNlIHdpdGggdGhhdCBpZAogICAqIEB0aHJvd3MgQmlvRXhjZXB0aW9uIGlmIGZvciBhbnkg
cmVhc29uIHRoZSBzZXF1ZW5jZSBjb3VsZCBub3QgYmUgcmV0cmlldmVkCiAgICovCiAgU2Vx
dWVuY2UgZ2V0U2VxdWVuY2UoU3RyaW5nIGlkKSB0aHJvd3MgQmlvRXhjZXB0aW9uOwogIAog
IC8qKgogICAqIEdldCBhbiBpbXV0YWJsZSBzZXQgb2YgYWxsIG9mIHRoZSBJRHMgaW4gdGhl
IGRhdGFiYXNlLiBUaGUgaWRzIGFyZSBsZWdhbAogICAqIGFyZ3VtZW50cyB0byBnZXRTZXF1
ZW5jZS4KICAgKgogICAqIEByZXR1cm4gIGEgU2V0IG9mIGlkcyAtIGF0IHRoZSBtb21lbnQs
IHN0cmluZ3MKICAgKi8KICBTZXQgaWRzKCk7CiAgCiAgLyoqCiAgICogUmV0dXJucyBhIFNl
cXVlbmNlVHRlcmF0b3Igb3ZlciBhbGwgc2VxdWVuY2VzIGluIHRoZSBkYXRhYmFzZS4gVGhl
IG9yZGVyCiAgICogb2YgcmV0cmlldmFsIGlzIHVuZGVmaW5lZC4KICAgKgogICAqIEByZXR1
cm4gIGEgU2VxdWVuY2VJdGVyYXRvciBvdmVyIGFsbCBzZXF1ZW5jZXMKICAgKi8KICBTZXF1
ZW5jZUl0ZXJhdG9yIHNlcXVlbmNlSXRlcmF0b3IoKTsKfQo=
--------------667865E7FE51C44C7E5DB4AA
Content-Type: application/x-unknown-content-type-java_auto_file;
 name="HashSequenceDB.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="HashSequenceDB.java"

LyoKICogICAgICAgICAgICAgICAgICAgIEJpb0phdmEgZGV2ZWxvcG1lbnQgY29kZQogKgog
KiBUaGlzIGNvZGUgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBhbmQgbW9kaWZpZWQgdW5k
ZXIgdGhlCiAqIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
Y2UuICBUaGlzIHNob3VsZAogKiBiZSBkaXN0cmlidXRlZCB3aXRoIHRoZSBjb2RlLiAgSWYg
eW91IGRvIG5vdCBoYXZlIGEgY29weSwKICogc2VlOgogKgogKiAgICAgIGh0dHA6Ly93d3cu
Z251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbAogKgogKiBDb3B5cmlnaHQgZm9yIHRoaXMg
Y29kZSBpcyBoZWxkIGpvaW50bHkgYnkgdGhlIGluZGl2aWR1YWwKICogYXV0aG9ycy4gIFRo
ZXNlIHNob3VsZCBiZSBsaXN0ZWQgaW4gQGF1dGhvciBkb2MgY29tbWVudHMuCiAqCiAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBCaW9KYXZhIHByb2plY3QgYW5kIGl0cyBhaW1z
LAogKiBvciB0byBqb2luIHRoZSBiaW9qYXZhLWwgbWFpbGluZyBsaXN0LCB2aXNpdCB0aGUg
aG9tZSBwYWdlCiAqIGF0OgogKgogKiAgICAgIGh0dHA6Ly93d3cuYmlvamF2YS5vcmcvCiAq
CiAqLwoKcGFja2FnZSBvcmcuYmlvamF2YS5iaW8uc2VxOwoKaW1wb3J0IGphdmEudXRpbC4q
OwoKLyoqCiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIFNlcXVlbmNlREIgdGhhdCB1c2VzIGFu
IHVuZGVybHlpbmcgSGFzaE1hcCB0byBzdG9vciB0aGUKICogc2VxdWVuY2Ugb2JqZWN0cy4K
ICoKICogQGF1dGhvciBNYXR0aGV3IFBvY29jawogKiBAYXV0aG9yIDxBIGhyZWY9Im1haWx0
bzpHZXJhbGQuTG9lZmZsZXJAdmllbm5hLmF0Ij5HZXJhbGQgTG9lZmZsZXI8L0E+CiAqLwpw
dWJsaWMgY2xhc3MgSGFzaFNlcXVlbmNlREIgaW1wbGVtZW50cyBTZXF1ZW5jZURCIHsKICAv
KioKICAgKiBUaGUgc2VxdWVuY2UtYnktaWQgbWFwLgogICAqLwogIHByaXZhdGUgTWFwIHNl
cXVlbmNlQnlJRDsKICAKICAvKioKICAgKiBBbiBvYmplY3QgdG8gZXh0cmFjdCBhbiBJRCBm
b3IgYSBzZXF1ZW5jZS4KICAgKi8KICBwcml2YXRlIElETWFrZXIgaWRNYWtlcjsKCiAgLyoq
IAogICAqIFRoZSBuYW1lIG9mIHRoaXMgc2VxdWVuY2UgZGF0YWJhc2UuCiAgICovCiAgcHJp
dmF0ZSBTdHJpbmcgbmFtZTsKICAKICAvKioKICAgKiBJbml0aWFsaXplIHNlcXVlbmNlQnlJ
RC4KICAgKi8KICB7CiAgICBzZXF1ZW5jZUJ5SUQgPSBuZXcgSGFzaE1hcCgpOwogIH0KCiAg
cHVibGljIFN0cmluZyBnZXROYW1lKCkgewogICAgcmV0dXJuIG5hbWU7CiAgfQoKICBwdWJs
aWMgU2VxdWVuY2UgZ2V0U2VxdWVuY2UoU3RyaW5nIGlkKSB7CiAgICByZXR1cm4gKFNlcXVl
bmNlKSBzZXF1ZW5jZUJ5SUQuZ2V0KGlkKTsKICB9CgogIHB1YmxpYyBTZXQgaWRzKCkgewog
ICAgcmV0dXJuIHNlcXVlbmNlQnlJRC5rZXlTZXQoKTsKICB9CgogIHB1YmxpYyBTZXF1ZW5j
ZUl0ZXJhdG9yIHNlcXVlbmNlSXRlcmF0b3IoKSB7CiAgICByZXR1cm4gbmV3IFNlcXVlbmNl
SXRlcmF0b3IoKSB7CiAgICAgIEl0ZXJhdG9yIHNlcUkgPSBzZXF1ZW5jZUJ5SUQudmFsdWVz
KCkuaXRlcmF0b3IoKTsKICAgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsgcmV0dXJu
IHNlcUkuaGFzTmV4dCgpOyB9CiAgICAgIHB1YmxpYyBTZXF1ZW5jZSBuZXh0U2VxdWVuY2Uo
KSB7IHJldHVybiAoU2VxdWVuY2UpIHNlcUkubmV4dCgpOyB9CiAgICB9OwogIH0KCiAgLyoq
CiAgICogQWRkIGEgc2VxdWVuY2UgdW5kZXIgYSBwYXJ0aWN1bGFyIGlkLgogICAqCiAgICog
QHBhcmFtIGlkICB0aGUgaWQgdG8gdXNlCiAgICogQHBhcmFtIHNlcSB0aGUgU2VxdWVuY2Ug
dG8gYWRkCiAgICovCiAgcHVibGljIHZvaWQgYWRkU2VxdWVuY2UoU3RyaW5nIGlkLCBTZXF1
ZW5jZSBzZXEpIHsKICAgIHNlcXVlbmNlQnlJRC5wdXQoaWQsIHNlcSk7CiAgfQoKICAvKioK
ICAgKiBSZXRyaWV2ZSB0aGUgSURNYWtlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRhYmFz
ZS4KICAgKgogICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgSURNYWtlciBvYmplY3QKICAgKi8K
ICBwdWJsaWMgSURNYWtlciBnZXRJRE1ha2VyKCkgewogICAgcmV0dXJuIGlkTWFrZXI7CiAg
fQogIAogIC8qKgogICAqIEFkZCBhIHNlcXVlbmNlIHVuZGVyIGl0cyBkZWZhdWx0IGlkLgog
ICAqCiAgICogQHBhcmFtIHNlcSAgdGhlIFNlcXVlbmNlIHRvIGFkZAogICAqLwogIHB1Ymxp
YyB2b2lkIGFkZFNlcXVlbmNlKFNlcXVlbmNlIHNlcSkgewogICAgc2VxdWVuY2VCeUlELnB1
dChpZE1ha2VyLmNhbGNJRChzZXEpLCBzZXEpOwogIH0KCiAgLyoqCiAgICogR2VuZXJhdGUg
YSBIYXNoU2VxdWVuY2VEQiBvYmplY3QgdGhhdCB3aWxsIHVzZSBpZE1ha2VyIHRvIGdlbmVy
YXRlIGlkcyBmb3IKICAgKiBzZXF1ZW5jZXMuCiAgICogVGhlIG5hbWUgb2YgdGhlIG5ld2x5
IGNyZWF0ZWQgc2VxdWVuY2UgZGF0YWJhc2UgaXMgbnVsbC4KICAgKgogICAqIEBwYXJhbSBp
ZE1ha2VyIHRoZSBvYmplY3QgdGhhdCB3aWxsIHdvcmsgb3V0IHRoZSBkZWZhdWx0IGlkIGZv
ciBhIHNlcXVlbmNlCiAgICovCiAgcHVibGljIEhhc2hTZXF1ZW5jZURCKElETWFrZXIgaWRN
YWtlcikgewogICAgdGhpcy5pZE1ha2VyID0gaWRNYWtlcjsKICB9CgogIC8qKgogICAqIEdl
bmVyYXRlIGEgSGFzaFNlcXVlbmNlREIgb2JqZWN0IHRoYXQgd2lsbCB1c2UgaWRNYWtlciB0
byBnZW5lcmF0ZSBpZHMgZm9yCiAgICogc2VxdWVuY2VzLgogICAqCiAgICogQHBhcmFtIGlk
TWFrZXIgdGhlIG9iamVjdCB0aGF0IHdpbGwgd29yayBvdXQgdGhlIGRlZmF1bHQgaWQgZm9y
IGEgc2VxdWVuY2UKICAgKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSBvZiB0aGUgbmV3bHkgY3Jl
YXRlZCBzZXF1ZW5jZSBkYXRhYmFzZS4KICAgKi8KICBwdWJsaWMgSGFzaFNlcXVlbmNlREIo
SURNYWtlciBpZE1ha2VyLCBTdHJpbmcgbmFtZSkgewogICAgdGhpcy5pZE1ha2VyID0gaWRN
YWtlcjsKICAgIHRoaXMubmFtZSAgICA9IG5hbWU7CiAgfQoKICAvKioKICAgKiBOby1hcmdz
IGNvbnN0cnVjdG9yIGZvciBiZWFueSBzdHVmZi4KICAgKiBUaGUgbmFtZSBvZiB0aGUgbmV3
bHkgY3JlYXRlZCBzZXF1ZW5jZSBkYXRhYmFzZSBpcyBudWxsLgogICAqLwogIHByb3RlY3Rl
ZCBIYXNoU2VxdWVuY2VEQigpIHt9CgogIC8qKgogICAqIENyZWF0ZSBhIHNlcXVlbmNlIGRh
dGFiYXNlIHdpdGggdGhlIGdpdmVuIG5hbWUuCiAgICoKICAgKiBAcGFyYW0gbmFtZSB0aGUg
bmFtZSBvZiB0aGUgbmV3bHkgY3JlYXRlZCBzZXF1ZW5jZSBkYXRhYmFzZS4KICAgKi8KICBw
cm90ZWN0ZWQgSGFzaFNlcXVlbmNlREIoU3RyaW5nIG5hbWUpIHsKICAgIHRoaXMubmFtZSA9
IG5hbWU7CiAgfQogIAogIC8qKgogICAqIEludGVyZmFjZSBmb3Igb2JqZWN0cyB0aGF0IGRl
ZmluZSBob3cgdG8gbWFrZSBhbiBJRCBmb3IgYSBzZXF1ZW5jZS4KICAgKiA8UD4KICAgKiBO
aW5lIHRpbWVzIG91dCBvZiB0ZW4sIHlvdSB3aWxsIHVzZSBvbmUgb2YgSGFzaFNlcXVlbmNl
REIuYnlVUk4gb3IKICAgKiBIYXNoU2VxdWVuY2VEQi5ieU5hbWUsIGJ1dCBvbmNlIGluIGEg
Ymx1ZS1tb29uLCB5b3Ugd2lsbCB3YW50IHNvbWUgb3RoZXIKICAgKiBzeXN0ZW1hdGljIHdh
eSBvZiByZXRyaWV2ZWluZyBTZXF1ZW5jZXMuIFRoaXMgaW50ZXJmYWNlIGlzIGhlcmUgdG8g
YWxsb3cKICAgKiB5b3UgdG8gcGx1ZyBpbiB0aGlzIGZ1bmNpdG9uYWxpdHkgaWYgeW91IG5l
ZWQgaXQuCiAgICovCiAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSURNYWtlciB7CiAgICAv
KioKICAgICAqIENhbGN1bGF0ZSB0aGUgaWQgZm9yIGEgc2VxdWVuY2UuCiAgICAgKiA8UD4K
ICAgICAqIEVhY2ggdW5pcXVlIHNlcXVlbmNlIHNob3VsZCByZXR1cm4gYSB1bmlxdWUgSUQu
CiAgICAgKgogICAgICogQHBhcmFtIHNlcSB0aGUgc2VxdWVuY2UgdG8gSUQKICAgICAqIEBy
ZXR1cm4gdGhlIGlkIGZvciB0aGUgc2VxdWVuY2UKICAgICAqLwogICAgU3RyaW5nIGNhbGNJ
RChTZXF1ZW5jZSBzZXEpOwogIH0KICAKICAvKioKICAgKiBBIHNpbXBsZSBpbXBsZW1lbnRh
dGlvbiBvZiBJRE1ha2VyIHRoYXQgaGFzaGVzIGJ5IFVSTi4KICAgKgogICAqIEBhdXRob3Ig
TWF0dGhldyBQb2NvY2sKICAgKi8KICBwdWJsaWMgZmluYWwgc3RhdGljIElETWFrZXIgYnlV
Uk4gPSBuZXcgSURNYWtlcigpIHsKICAgIHB1YmxpYyBTdHJpbmcgY2FsY0lEKFNlcXVlbmNl
IHNlcSkgewogICAgICByZXR1cm4gc2VxLmdldFVSTigpOwogICAgfQogIH07CiAgCiAgLyoq
CiAgICogQSBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgSURNYWtlciB0aGF0IGhhc2hlcyBi
eSBzZXF1ZW5jZSBuYW1lLgogICAqCiAgICogQGF1dGhvciBNYXR0aGV3IFBvY29jawogICAq
LwogIHB1YmxpYyBmaW5hbCBzdGF0aWMgSURNYWtlciBieU5hbWUgPSBuZXcgSURNYWtlcigp
IHsKICAgIHB1YmxpYyBTdHJpbmcgY2FsY0lEKFNlcXVlbmNlIHNlcSkgewogICAgICByZXR1
cm4gc2VxLmdldE5hbWUoKTsKICAgIH0KICB9Owp9Cg==
--------------667865E7FE51C44C7E5DB4AA
Content-Type: application/x-unknown-content-type-java_auto_file;
 name="AbstractAnnotator.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="AbstractAnnotator.java"

LyoKICogICAgICAgICAgICAgICAgICAgIEJpb0phdmEgZGV2ZWxvcG1lbnQgY29kZQogKgog
KiBUaGlzIGNvZGUgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBhbmQgbW9kaWZpZWQgdW5k
ZXIgdGhlCiAqIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
Y2UuICBUaGlzIHNob3VsZAogKiBiZSBkaXN0cmlidXRlZCB3aXRoIHRoZSBjb2RlLiAgSWYg
eW91IGRvIG5vdCBoYXZlIGEgY29weSwKICogc2VlOgogKgogKiAgICAgIGh0dHA6Ly93d3cu
Z251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbAogKgogKiBDb3B5cmlnaHQgZm9yIHRoaXMg
Y29kZSBpcyBoZWxkIGpvaW50bHkgYnkgdGhlIGluZGl2aWR1YWwKICogYXV0aG9ycy4gIFRo
ZXNlIHNob3VsZCBiZSBsaXN0ZWQgaW4gQGF1dGhvciBkb2MgY29tbWVudHMuCiAqCiAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBCaW9KYXZhIHByb2plY3QgYW5kIGl0cyBhaW1z
LAogKiBvciB0byBqb2luIHRoZSBiaW9qYXZhLWwgbWFpbGluZyBsaXN0LCB2aXNpdCB0aGUg
aG9tZSBwYWdlCiAqIGF0OgogKgogKiAgICAgIGh0dHA6Ly93d3cuYmlvamF2YS5vcmcvCiAq
CiAqLwoKcGFja2FnZSBvcmcuYmlvamF2YS5iaW8uc2VxOwoKaW1wb3J0IGphdmEudXRpbC4q
OwppbXBvcnQgb3JnLmJpb2phdmEuYmlvLio7CmltcG9ydCBvcmcuYmlvamF2YS5iaW8uc3lt
Ym9sLio7CgovKioKICogQW4gYWJzdHJhY3QgaW1wbGVtZW5hdGlvbiBvZiBBbm5vdGF0b3Ig
dGhhdCB0YWtlcyBjYXJlIG9mIHRoZSBsb29wLW92ZXItZGIKICogc3RlcCBmb3IgeW91Lgog
KgogKiBAYXV0aG9yIE1hdHRoZXcgUG9jb2NrCiAqIEBhdXRob3IgPEEgaHJlZj0ibWFpbHRv
OkdlcmFsZC5Mb2VmZmxlckB2aWVubmEuYXQiPkdlcmFsZCBMb2VmZmxlcjwvQT4KICovCnB1
YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEFubm90YXRvciBpbXBsZW1lbnRzIEFubm90
YXRvciB7CgogIHB1YmxpYyBTZXF1ZW5jZURCIGFubm90YXRlKFNlcXVlbmNlREIgc2RiKQog
ICAgICAgIHRocm93cyBJbGxlZ2FsU3ltYm9sRXhjZXB0aW9uLCBCaW9FeGNlcHRpb24gewog
ICAgSGFzaFNlcXVlbmNlREIgaGl0REIgPSBuZXcgSGFzaFNlcXVlbmNlREIobnVsbCwgbnVs
bCk7CgogICAgZm9yKEl0ZXJhdG9yIGkgPSBzZGIuaWRzKCkuaXRlcmF0b3IoKTsgaS5oYXNO
ZXh0KCk7ICkgewogICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKSBpLm5leHQoKTsKICAgICAg
U2VxdWVuY2Ugc2VxID0gc2RiLmdldFNlcXVlbmNlKGlkKTsKICAgICAgaWYoYW5ub3RhdGUo
c2VxKSkgewogICAgICAgIGhpdERCLmFkZFNlcXVlbmNlKGlkLCBzZXEpOwogICAgICB9CiAg
ICB9CgogICAgcmV0dXJuIGhpdERCOwogIH0KfQo=
--------------667865E7FE51C44C7E5DB4AA
Content-Type: application/x-unknown-content-type-java_auto_file;
 name="AceSequenceDB.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="AceSequenceDB.java"

LyoKICogICAgICAgICAgICAgICAgICAgIEJpb0phdmEgZGV2ZWxvcG1lbnQgY29kZQogKgog
KiBUaGlzIGNvZGUgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCBhbmQgbW9kaWZpZWQgdW5k
ZXIgdGhlCiAqIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
Y2UuICBUaGlzIHNob3VsZAogKiBiZSBkaXN0cmlidXRlZCB3aXRoIHRoZSBjb2RlLiAgSWYg
eW91IGRvIG5vdCBoYXZlIGEgY29weSwKICogc2VlOgogKgogKiAgICAgIGh0dHA6Ly93d3cu
Z251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbAogKgogKiBDb3B5cmlnaHQgZm9yIHRoaXMg
Y29kZSBpcyBoZWxkIGpvaW50bHkgYnkgdGhlIGluZGl2aWR1YWwKICogYXV0aG9ycy4gIFRo
ZXNlIHNob3VsZCBiZSBsaXN0ZWQgaW4gQGF1dGhvciBkb2MgY29tbWVudHMuCiAqCiAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBCaW9KYXZhIHByb2plY3QgYW5kIGl0cyBhaW1z
LAogKiBvciB0byBqb2luIHRoZSBiaW9qYXZhLWwgbWFpbGluZyBsaXN0LCB2aXNpdCB0aGUg
aG9tZSBwYWdlCiAqIGF0OgogKgogKiAgICAgIGh0dHA6Ly93d3cuYmlvamF2YS5vcmcvCiAq
CiAqLwoKCnBhY2thZ2Ugb3JnLmFjZWRiLnNlcTsKCmltcG9ydCBqYXZhLnV0aWwuKjsKCmlt
cG9ydCBvcmcuYWNlZGIuKjsKaW1wb3J0IG9yZy5iaW9qYXZhLmJpby4qOwppbXBvcnQgb3Jn
LmJpb2phdmEuYmlvLnNlcS4qOwoKLyoqCiAqIEBhdXRob3IgTWF0dGhldyBQb2NvY2sKICog
QGF1dGhvciA8QSBocmVmPSJtYWlsdG86R2VyYWxkLkxvZWZmbGVyQHZpZW5uYS5hdCI+R2Vy
YWxkIExvZWZmbGVyPC9BPgogKi8KCnB1YmxpYyBjbGFzcyBBY2VTZXF1ZW5jZURCIGltcGxl
bWVudHMgU2VxdWVuY2VEQiB7CiAgcHJvdGVjdGVkIEFjZVNldCBzZXFTZXQ7CgogIHB1Ymxp
YyBTdHJpbmcgZ2V0TmFtZSgpIHsKICAgIHJldHVybiBzZXFTZXQuZ2V0TmFtZSgpOwogIH0K
ICAKICBwdWJsaWMgU2VxdWVuY2UgZ2V0U2VxdWVuY2UoU3RyaW5nIGlkKSB0aHJvd3MgQmlv
RXhjZXB0aW9uIHsKICAgIHRyeSB7CiAgICAgIHJldHVybiBuZXcgQWNlU2VxdWVuY2UoKEFj
ZU9iamVjdCkgc2VxU2V0LnJldHJpZXZlKGlkKSk7CiAgICB9IGNhdGNoIChBY2VFeGNlcHRp
b24gYWUpIHsKICAgICAgdGhyb3cgbmV3IEJpb0V4Y2VwdGlvbihhZSwgInVuYWJsZSB0byBy
ZXRyaWV2ZSBzZXF1ZW5jZSAiICsgaWQpOwogICAgfQogIH0KICAKICBwdWJsaWMgU2V0IGlk
cygpIHsKICAgIHJldHVybiBuZXcgQWJzdHJhY3RTZXQoKSB7CiAgICAgIHB1YmxpYyBpbnQg
c2l6ZSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIHNlcVNldC5zaXplKCk7
CiAgICAgICAgfSBjYXRjaCAoQWNlRXhjZXB0aW9uIGFlKSB7CiAgICAgICAgICB0aHJvdyBu
ZXcgQWNlRXJyb3IoYWUsICJDb3VsZG4ndCByZXRyaWV2ZSBzZXQgc2l6ZSIpOwogICAgICAg
IH0KICAgICAgfQoKICAgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgewogICAgICAg
IHRyeSB7CiAgICAgICAgICByZXR1cm4gc2VxU2V0Lm5hbWVJdGVyYXRvcigpOwogICAgICAg
IH0gY2F0Y2ggKEFjZUV4Y2VwdGlvbiBhZSkgewogICAgICAgICAgdGhyb3cgbmV3IEFjZUVy
cm9yKGFlLCAiQ291bGRuJ3QgcmV0cmlldmUgc2V0IHNpemUiKTsKICAgICAgICB9CiAgICAg
IH0KCiAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKE9iamVjdCBvKSB7CiAgICAgICAg
aWYgKCEgKG8gaW5zdGFuY2VvZiBTdHJpbmcpKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBz
ZXFTZXQuY29udGFpbnMoKFN0cmluZykgbyk7CiAgICAgICAgICB9IGNhdGNoIChBY2VFeGNl
cHRpb24gYWUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEFjZUVycm9yKGFlLCAiQ291bGRu
J3QgcmV0cmlldmUgc2V0IHNpemUiKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0K
ICAgIH07CiAgfQogIAogIHB1YmxpYyBTZXF1ZW5jZUl0ZXJhdG9yIHNlcXVlbmNlSXRlcmF0
b3IoKSB7CiAgICByZXR1cm4gbmV3IFNlcXVlbmNlSXRlcmF0b3IoKSB7CiAgICAgIEl0ZXJh
dG9yIGlkID0gaWRzKCkuaXRlcmF0b3IoKTsKICAgICAgCiAgICAgIHB1YmxpYyBib29sZWFu
IGhhc05leHQoKSB7CiAgICAgICAgcmV0dXJuIGlkLmhhc05leHQoKTsKICAgICAgfQogICAg
ICAKICAgICAgcHVibGljIFNlcXVlbmNlIG5leHRTZXF1ZW5jZSgpIHRocm93cyBCaW9FeGNl
cHRpb24gewogICAgICAgIHJldHVybiBnZXRTZXF1ZW5jZSgoU3RyaW5nKSBpZC5uZXh0KCkp
OwogICAgICB9CiAgICB9OwogIH0KICAKICBwdWJsaWMgQWNlU2VxdWVuY2VEQihBY2VVUkwg
ZGJVUkwsIFN0cmluZyBwYXR0ZXJuKSB0aHJvd3MgQWNlRXhjZXB0aW9uIHsKICAgIEFjZVVS
TCB1cmwgPSBuZXcgQWNlVVJMKAogICAgICBkYlVSTC5nZXRQcm90b2NvbCgpLAogICAgICBk
YlVSTC5nZXRIb3N0KCksCiAgICAgIGRiVVJMLmdldFBvcnQoKSwKICAgICAgIlNlcXVlbmNl
IiwKICAgICAgcGF0dGVybiwKICAgICAgZGJVUkwuZ2V0UmVmKCksCiAgICAgIGRiVVJMLmdl
dFVzZXJJbmZvKCksCiAgICAgIGRiVVJMLmdldEF1dGhvcml0eSgpCiAgICApOwogICAgdGhp
cy5zZXFTZXQgPSBBY2UuZmV0Y2godXJsKTsKICB9CgogIHB1YmxpYyBBY2VTZXF1ZW5jZURC
KEFjZVVSTCBkYlVSTCkgdGhyb3dzIEFjZUV4Y2VwdGlvbiB7CiAgICB0aGlzKGRiVVJMLCAi
KiIpOwogIH0KfSAK
--------------667865E7FE51C44C7E5DB4AA
Content-Type: application/x-unknown-content-type-java_auto_file;
 name="SequenceDBAdapter.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="SequenceDBAdapter.java"

cGFja2FnZSBvcmcuYmlvamF2YS5icmlkZ2UuQmlvY29yYmEuU2VxY29yZTsKCmltcG9ydCBq
YXZhLnV0aWwuKjsKCmltcG9ydCBvcmcuYmlvamF2YS5iaW8uKjsKaW1wb3J0IG9yZy5iaW9q
YXZhLmJpby5zeW1ib2wuKjsKaW1wb3J0IG9yZy5iaW9qYXZhLmJpby5zZXEuKjsKCmltcG9y
dCBvcmcuQmlvY29yYmEuU2VxY29yZS4qOwoKcHVibGljIGNsYXNzIFNlcXVlbmNlREJBZGFw
dGVyIGltcGxlbWVudHMgU2VxdWVuY2VEQiB7CiAgcHJpdmF0ZSBQcmltYXJ5U2VxREIgcHJp
bWFyeVNlcURCOwogIAogIHB1YmxpYyBQcmltYXJ5U2VxREIgZ2V0UHJpbWFyeVNlcURCKCkg
ewogICAgcmV0dXJuIHByaW1hcnlTZXFEQjsKICB9CiAgCiAgcHVibGljIFNlcXVlbmNlREJB
ZGFwdGVyKFByaW1hcnlTZXFEQiBwcmltYXJ5U2VxREIpIHsKICAgIHRoaXMucHJpbWFyeVNl
cURCID0gcHJpbWFyeVNlcURCOwogIH0KCiAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgewog
ICAgcmV0dXJuIGdldFByaW1hcnlTZXFEQigpLmRhdGFiYXNlX25hbWUoKTsKICB9CiAgCiAg
cHVibGljIFNlcXVlbmNlIGdldFNlcXVlbmNlKFN0cmluZyBpZCkKICB0aHJvd3MgQmlvRXhj
ZXB0aW9uIHsKICAgIHRyeSB7CiAgICAgIFByaW1hcnlTZXEgcHJpbWFyeVNlcSA9IGdldFBy
aW1hcnlTZXFEQigpLmdldF9QcmltYXJ5U2VxKGlkKTsKICAgICAgcmV0dXJuIG5ldyBTZXF1
ZW5jZUFkYXB0ZXIocHJpbWFyeVNlcSk7CiAgICB9IGNhdGNoIChVbmFibGVUb1Byb2Nlc3Mg
dXRwKSB7CiAgICAgIHRocm93IG5ldyBCaW9FeGNlcHRpb24oCiAgICAgICAgdXRwLAogICAg
ICAgICJDb3VsZCBub3QgcmV0cmlldmUgc2VxdWVuY2UgZnJvbSBDT1JCQSBkYXRhYmFzZSAi
ICsKICAgICAgICBnZXRQcmltYXJ5U2VxREIoKS5kYXRhYmFzZV9uYW1lKCkKICAgICAgKTsK
ICAgIH0gY2F0Y2ggKElsbGVnYWxBbHBoYWJldEV4Y2VwdGlvbiBpYWUpIHsKICAgICAgdGhy
b3cgbmV3IEJpb0V4Y2VwdGlvbihpYWUsICJVbmFibGUgdG8gY3JlYXRlIFNlcXVlbmNlQWRh
cHRlciIpOwogICAgfSBjYXRjaCAoSWxsZWdhbFN5bWJvbEV4Y2VwdGlvbiBpcmUpIHsKICAg
ICAgdGhyb3cgbmV3IEJpb0V4Y2VwdGlvbihpcmUsICJVbmFibGUgdG8gY3JlYXRlIFNlcXVl
bmNlQWRhcHRlciIpOwogICAgfSBjYXRjaCAoQmlvRXhjZXB0aW9uIHNlKSB7CiAgICAgIHRo
cm93IG5ldyBCaW9FeGNlcHRpb24oc2UsICJVbmFibGUgdG8gY3JlYXRlIFNlcXVlbmNlQWRh
cHRlciIpOwogICAgfQogIH0KICAKICBwdWJsaWMgU2V0IGlkcygpIHsKICAgIFByaW1hcnlT
ZXFEQiBwc2RiID0gZ2V0UHJpbWFyeVNlcURCKCk7CiAgICBpZihwc2RiIGluc3RhbmNlb2Yg
U2VxREIpIHsKICAgICAgLy8gdHVybiBhcnJheSBvZiBzdHJpbmdzIGludG8gc2V0IG9mIHN0
cmluZ3MKICAgICAgU3RyaW5nIFtdIGlkcyA9ICgoU2VxREIpIHBzZGIpLmdldF9wcmltYXJ5
aWRMaXN0KCk7CiAgICAgIFNldCBpZFNldCA9IG5ldyBIYXNoU2V0KCk7CiAgICAgIGZvcihp
bnQgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZFNldC5hZGQoaWRz
W2ldKTsKICAgICAgfQogICAgICByZXR1cm4gaWRTZXQ7CiAgICB9IGVsc2UgewogICAgICBy
ZXR1cm4gQ29sbGVjdGlvbnMuRU1QVFlfU0VUOwogICAgfQogIH0KICAKICBwdWJsaWMgU2Vx
dWVuY2VJdGVyYXRvciBzZXF1ZW5jZUl0ZXJhdG9yKCkgewogICAgUHJpbWFyeVNlcUl0ZXJh
dG9yIHBzaSA9IGdldFByaW1hcnlTZXFEQigpLm1ha2VfUHJpbWFyeVNlcUl0ZXJhdG9yKCk7
CiAgICByZXR1cm4gbmV3IFNlcXVlbmNlSXRlcmF0b3JBZGFwdGVyKHBzaSk7CiAgfQp9Cg==
--------------667865E7FE51C44C7E5DB4AA--


--__--__--

Message: 2
Date: Thu, 29 Jun 2000 15:07:29 +0100
From: Matthew Pocock <mrp@sanger.ac.uk>
Organization: The Sanger Center
To: Gerald.Loeffler@vienna.at 
CC: biojava-l@biojava.org 
Subject: Re: [Biojava-l] changed (improved) SequenceDB and stuff

Thanks Gerald.

I have merge these changes in to CVS now. In retrospect, naming seqDBs is probably a
good thing. The only tweaks I made were:

a) HashSequenceDB now has a range of constructors, including a no-args variant
b) HashSequenceDB is now Serializable
c) org.biojava.bridge.Bioorba.Seqcore - PrimarySeqDBImpl & SeqDBImpl now use the propper
getName semantics, rather than magicing names from thin air.
d) updated the demos to work (the two corba servers)

Let me know if you are interested in read/write CVS access.
Great work

Matthew

Gerald Loeffler wrote:

> I made the following slight changes to SequenceDB and related classes
> and hope that you find them acceptable and hence check them into your
> CVS repository:
>
> o org.biojava.bio.seq.SequenceDB:
>         o added getName() method which returns the (possibly null) name of a
> sequence db
>

</snip>

> Though minor in nature, the addition of the getName() method to
> interface SequenceDB will result in all implementations (outside the
> BioJava distribution) of this interface to break in the sense that they
> will all have to add an implementation of the getName() method...
>
> cheers,
> gerald
> --
>    Gerald.Loeffler@vienna.at _________________ Software Architect
>    http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
>    OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML


--__--__--

Message: 3
From: hilmar.lapp@pharma.Novartis.com 
To: Matthew Pocock <mrp@sanger.ac.uk>, Gerald.Loeffler@vienna.at 
cc: biojava-l@biojava.org 
Date: Thu, 29 Jun 2000 16:34:53 +0100
Subject: Re: [Biojava-l] changed (improved) SequenceDB and stuff




> Though minor in nature, the addition of the getName() method to
> interface SequenceDB will result in all implementations (outside the
> BioJava distribution) of this interface to break in the sense that they
> will all have to add an implementation of the getName() method...
>

     Yes indeed, and it does break for instance a lot of my code.

     A comment from a practical point of view, and from someone working in an
     industrial environment where it does really matter whether or not software
     deliberately breaks once you upgrade your (class-)libraries, and the person
     who coded it is currently not available. To this end, OO adds a significant
     improvement, because essentially you DO NOT have to fiddle around in
     library code, but instead you can derive your own things if you're
     unsatisfied with what the library offers. Of course, that's theory, and
     practice is different, but still, I think it's not a bad idea to at least
     aim at it.

     To make a long story short, what I wanted to suggest is, why not have an
     interface NamedSequenceDB which inherits from SequenceDB, and everyone is
     fine to have his SequenceDB implementation be a named one. There are a lot
     of cases where you simply don't need a name, and the fact that it hasn't
     been there until now at least doesn't disprove this.

     What do you think?

          Hilmar






--__--__--

Message: 4
Date: Thu, 29 Jun 2000 17:09:29 +0200
From: Gerald Loeffler <Gerald.Loeffler@vienna.at>
Reply-To: Gerald.Loeffler@vienna.at 
To: hilmar.lapp@pharma.Novartis.com 
CC: Matthew Pocock <mrp@sanger.ac.uk>, biojava-l@biojava.org 
Subject: Re: [Biojava-l] changed (improved) SequenceDB and stuff

hilmar.lapp@pharma.Novartis.com wrote:
> 
> > Though minor in nature, the addition of the getName() method to
> > interface SequenceDB will result in all implementations (outside the
> > BioJava distribution) of this interface to break in the sense that they
> > will all have to add an implementation of the getName() method...
> >
...
>      To make a long story short, what I wanted to suggest is, why not have an
>      interface NamedSequenceDB which inherits from SequenceDB, and everyone is
>      fine to have his SequenceDB implementation be a named one. There are a lot
>      of cases where you simply don't need a name, and the fact that it hasn't
>      been there until now at least doesn't disprove this.

you're absolutely right - i thought about doing exactly this (even using
the same interface name) but dismissed it because i guessed (wrongly, it
seems) that directly implementing SequenceDB (as opposed to using one of
the supplied concrete implementations of SequenceDB) would not be too
common (although i'm doing this right now (-:).

Anyways, as much as i'd hate to see an incompatible change like this
happen in (lets say) one of the java.* packages, i'm not sure whether we
should be so strict about BioJava. Absolutely prohibiting incompatible
changes in BioJava is probably a bit premature because it hinders what
is still a bit of a work-in-progress (definitely no offence intended,
Matthew!).

A possible way to manage change to the BioJava API could be to introduce
versioning and restrict incomptible changes to the (rare) increases in
the major version number. The symbol/seq-part of BioJava could be
designated 1.0 right now, and future incompatible changes (like the
ambiguity change or this db-naming change) may only occur in one go when
moving to 2.0....

	cheers,
	gerald

> 
>      What do you think?
> 
>           Hilmar

-- 
   Gerald.Loeffler@vienna.at _________________ Software Architect
   http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
   OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML

--__--__--

Message: 5
Date: Thu, 29 Jun 2000 11:24:37 -0400 (EDT)
From: Jason Stajich <jason@chg.mc.duke.edu>
To: BioJava List <biojava-l@biojava.org>
cc: mrp@sanger.ac.uk 
Subject: Re: [Biojava-l] changed (improved) SequenceDB and stuff

On Thu, 29 Jun 2000, Gerald Loeffler wrote:

> hilmar.lapp@pharma.Novartis.com wrote:
> > 
> > > Though minor in nature, the addition of the getName() method to
> > > interface SequenceDB will result in all implementations (outside the
> > > BioJava distribution) of this interface to break in the sense that they
> > > will all have to add an implementation of the getName() method...
> > >
> ...
> >      To make a long story short, what I wanted to suggest is, why not have an
> >      interface NamedSequenceDB which inherits from SequenceDB, and everyone is
> >      fine to have his SequenceDB implementation be a named one. There are a lot
> >      of cases where you simply don't need a name, and the fact that it hasn't
> >      been there until now at least doesn't disprove this.
> 
> you're absolutely right - i thought about doing exactly this (even using
> the same interface name) but dismissed it because i guessed (wrongly, it
> seems) that directly implementing SequenceDB (as opposed to using one of
> the supplied concrete implementations of SequenceDB) would not be too
> common (although i'm doing this right now (-:).
> 
> Anyways, as much as i'd hate to see an incompatible change like this
> happen in (lets say) one of the java.* packages, i'm not sure whether we
> should be so strict about BioJava. Absolutely prohibiting incompatible
> changes in BioJava is probably a bit premature because it hinders what
> is still a bit of a work-in-progress (definitely no offence intended,
> Matthew!).

While you're thinking about SequenceDBs - I'm working on a methodology
from the bioperl end to manage a MutableSeqDB - I want to be able to add /
update/ delete sequences from a 'real' database.  This is going to require
a transactional db on the back end and/or careful code, but we a looking
to see if we can do it with the ensembl project's db first.  This
would ideally something that would make its way into the biocorba idl as
well as implemented in the bio* project's code.  More details to come as I
finalize the design proposal.
 
> A possible way to manage change to the BioJava API could be to introduce
> versioning and restrict incomptible changes to the (rare) increases in
> the major version number. The symbol/seq-part of BioJava could be
> designated 1.0 right now, and future incompatible changes (like the
> ambiguity change or this db-naming change) may only occur in one go when
  moving to 2.0....
> 
> 	cheers,
> 	gerald
> 
> > 
> >      What do you think?
> > 
> >           Hilmar
> 
> -- 
>    Gerald.Loeffler@vienna.at _________________ Software Architect
>    http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
>    OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l@biojava.org 
> http://biojava.org/mailman/listinfo/biojava-l 
> 

Jason Stajich
Center for Human Genetics
Duke University Medical Center
jason@chg.mc.duke.edu 
(919)684-1806 (office)
(919)684-2275 (fax)
http://wwwchg.mc.duke.edu/ 



--__--__--

Message: 6
Date: Thu, 29 Jun 2000 17:58:33 +0200
From: Gerald Loeffler <Gerald.Loeffler@vienna.at>
Reply-To: Gerald.Loeffler@vienna.at 
To: Jason Stajich <jason@chg.mc.duke.edu>, Biojava-l@biojava.org 
Subject: Re: [Biojava-l] changed (improved) SequenceDB and stuff



Jason Stajich wrote:
> While you're thinking about SequenceDBs - I'm working on a methodology
> from the bioperl end to manage a MutableSeqDB - I want to be able to add /
> update/ delete sequences from a 'real' database.  This is going to require
> a transactional db on the back end and/or careful code, but we a looking
> to see if we can do it with the ensembl project's db first.  This
> would ideally something that would make its way into the biocorba idl as
> well as implemented in the bio* project's code.  More details to come as I
> finalize the design proposal.

sounds very interesting!

I'm currently thinking/working on an implementation of SequenceDB whose
getSequence() method goes (via JDBC) into a relational database, fetches
data associated with the requested sequence and instantiates a Sequence
object. The object of the SequenceDB-sub-class does not know anything
about the database content, it just passes on the request for a sequence
to the relational DB. Should be similary to what you are planning except
that mine is strictly read-only while yours is read/write/update.

Seems that the MutableSeqDB you mention should be a sub-interface of
SequenceDB with replaceSequence() and addSequence() methods...

	good luck,
	gerald
> 
> > A possible way to manage change to the BioJava API could be to introduce
> > versioning and restrict incomptible changes to the (rare) increases in
> > the major version number. The symbol/seq-part of BioJava could be
> > designated 1.0 right now, and future incompatible changes (like the
> > ambiguity change or this db-naming change) may only occur in one go when
>   moving to 2.0....
> >
> >       cheers,
> >       gerald
> >
> > >
> > >      What do you think?
> > >
> > >           Hilmar
> >
> > --
> >    Gerald.Loeffler@vienna.at _________________ Software Architect
> >    http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
> >    OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML
> > _______________________________________________
> > Biojava-l mailing list  -  Biojava-l@biojava.org 
> > http://biojava.org/mailman/listinfo/biojava-l 
> >
> 
> Jason Stajich
> Center for Human Genetics
> Duke University Medical Center
> jason@chg.mc.duke.edu 
> (919)684-1806 (office)
> (919)684-2275 (fax)
> http://wwwchg.mc.duke.edu/ 
> 
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l@biojava.org 
> http://biojava.org/mailman/listinfo/biojava-l 

-- 
   Gerald.Loeffler@vienna.at _________________ Software Architect
   http://www.imp.univie.ac.at ____ http://www.daemonstration.com 
   OOA&D, Java, J2EE, JSP, Servlets, JavaBeans, ODBMS, RDBMS, XML


--__--__--

_______________________________________________
Biojava-l mailing list  -  Biojava-l@biojava.org 
http://biojava.org/mailman/listinfo/biojava-l 


End of Biojava-l Digest_______________________________________________
Biojava-l mailing list  -  Biojava-l@biojava.org 
http://biojava.org/mailman/listinfo/biojava-l

Aaron Kitzmiller
Manager Systems Development -Cambridge
Bioinformatics Department
35 Cambridge Park Dr.
Cambridge, MA 02140
Phone: (617) 665-6831
Fax: (617) 665-8870
Email: akitzmiller@genetics.com