As with the Artisan Application's data persistence, we've accounted for (if not proven) all of the CRUD operation requirements for data objects living in the Central Office code bases. Because the interface requirements are also defined by the same BaseDataObject inheritance, even though there is additional functionality provided between that ABC and the concrete data objects, the processes for reading and writing data across all of the data objects look the same across the entire system – at least so far.
None of the data access has been unit tested yet, however, and that's a critical item for the system; at the end of the day, the data is, if not the most important part of the system, certainly one of the most import aspects of it. It's time, then, to change the context and write those unit tests, which we'll do...