[30331] | 1 | ===== DBDriver =====
|
---|
| 2 |
|
---|
[30347] | 3 | Note that there are a couple of Drivers that could be further separated to
|
---|
| 4 | have even better OO, but I started to get bogged down in multiple inheritence
|
---|
| 5 | problems so I left them as is for now. For instance, separating PipedExecutable
|
---|
| 6 | support from the 70HyphenFormat driver would increase flexibility, but then it
|
---|
| 7 | becomes tricky to say which should inherit from which (in a single inheritence)
|
---|
| 8 | or what order methods should be resolved (in multiple inheritence).
|
---|
| 9 |
|
---|
[30331] | 10 | ==== Inheritence Overview ====
|
---|
| 11 |
|
---|
[30347] | 12 | * BaseDBDriver - superclass of all drivers. Some shared utility methods
|
---|
| 13 | including support for persistent connections (ala TDB).
|
---|
| 14 | Thus this is a candidate for separating out the the
|
---|
| 15 | PersistentConnectionsDriver.
|
---|
| 16 | * 70HyphenFormat - drivers that write and read their data via pipes to
|
---|
| 17 | external executables. Data is in simple Greenstone
|
---|
| 18 | archive form (i.e. key/value pairs and separated by
|
---|
| 19 | seventy hyphens) - this is a candidate for further
|
---|
| 20 | separating out a PipedExecutableDriver.
|
---|
[30331] | 21 | * GDBM - makes use of GDBM utils (txt2db, db2txt etc)
|
---|
| 22 | * GDBMTXTGZ - makes use of gzip (for later use with GDBM)
|
---|
| 23 | * JDBM - makes use of jdbm.jar and JDBMWrapper.jar
|
---|
| 24 | * TDB - makes use of TDB utils (txt2tdb, tdb2txt etc)
|
---|
| 25 | * SQLDrivers - drivers that read/write their data using SQL commands
|
---|
| 26 | * SQLITE - uses calls to SQLite3 via the command line
|
---|
| 27 | * ServerDrivers - drivers that act as clients to externally running servers
|
---|
| 28 | * GDBMS - makes use of a custom GDBM server
|
---|
| 29 | * TDBS - makes use of a custom TDB server
|
---|
| 30 | * MergableDrivers - ???
|
---|
| 31 | * TDBC - ??? Knows how to merge several TDB files into one.
|
---|