Implementácia rozhraní a abstraktných tried
|
| | |
|
Implementácia maiolum.nxdb
| |
| | |
Uvedený návrh je dostatočne flexibilný na to, aby bolo možné získavať biblické fragmenty z rôznych zdrojov rôznymi
spôsobmi. Teraz popíšeme jeden z možných spôsobov implementácie abstraktných tried a rozhraní -- spôsob, pri ktorom
sa biblické fragmenty získavajú z natívnej XML databázy.
| Implementácia dátového zdroja maiolum.nxdb.ExistDataSource |
|
V prípade tejto implementácie sa využíva natívna XML databáza eXist, v ktorej sú uložené biblické texty vo formáte
XML. Dátový zdroj sa dopytuje XML databázy pomocou XQuery na XML dokumenty v nej uložené. Vrátené XML dáta
použije pri vytváraní inštancií biblických fragmentov (implementácia maiolum.plainxml.PXBibleFragment)
| | |
|
Biblické fragmenty a moduly
| |
| | |
| Implementácia biblických fragmentov a modulov |
|
| | |
|
Identifikátory fragmentov a poradie
| |
| | |
Na určovanie usporiadania fragmentov sa využíva špeciálna trieda FIDResolver.
Pri ukladaní XML dokumentu do databázy eXist sa vytvorí zvláštny index, v ktorom je uložené
poradie identifikátorov v danom dokumente. FIDResolver potom poskytuje na základe tohto indexu
metódy na získanie predchodcu, či nasledovníka daného biblického fragmentu.
V prípade získavania rodiča daného fragmentu tento index nie je potrebný -- keďže identifikátor
rodiča možno ľahko získať zo samotného identifikátora fragmentu.
by Róbert Novotný