[Biojava-l] changed (improved) SequenceDB and stuff

Gerald Loeffler Gerald.Loeffler@vienna.at
Thu, 29 Jun 2000 12:01:12 +0200


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--