Thursday, January 17, 2008

time to revisit CowDb

In COODBMS I've really pushed the extensibility of CowDb and have found some issues which require very minor changes to CowDb.

First, there is a bit too much coupling between the type code of the container of a handle and how the handle processes that container's symbolic links. So it is time to introduce symbolic link types. This will be done with a method on LogicalContext which in turn uses a simple map in the factory. (And additional constants introduced in the constants interface.) Symbolic link types can then easily be changed by subclassing the factory.

Second, the logic for handling well known needs to be moved out of the well known table and the handle and located in logical block, where it can be easily subclassed.

And third, logic for removing a symbolic link needs to be moved to PObject where again it can be easily subclassed.

These changes are minor and should have virtually no impact on how CowDb works. Only they add to CowDb's extensibility and reduce that great evil, coupling.

0 Comments:

Post a Comment

<< Home