Internally, the database abstraction layer is now completely based on interfaces as sketched in a previous post. Rather than asking a Database Engine object, “can you do this, and can you do this?” giving boolean answers, we ask the object: do you implement a functionality and all the required methods, which is a simple “is” operation.
The other aspect is that the newly created data access layer simplifies handling the differences between the database engines (object types, table columns, etc).
These differences also resulted in a reference from XSLT style sheets to a Database Engine to allow more specific content creation in Document Generators.
So here are the new documentation samples, based on the data model of OpenNMS:
The data diagram of the OpenNMS database schema:
Please note that this version still needs some polish. The most current stable version is available for download here.