Adding Indexing and Convenience Methods to CKTable
This morning I'm still thinking about the in-memory database. As the first step towards that, I realized that my CKTable didn't have indexing on the column headers or row labels. This is in the Java version of the table - BKTable, but not yet in the CKit version. So I took the time this morning to add those indexes into the CKTable. I also took the time to add the operator() to the table with two arguments - one for the row, the other for the column. This makes indexing into the data in the table very easy, and isn't available in the Java version.
The last thing I did this morning to move a step closer to the in-memory database is to add the cast operators for the CKVariant. This makes it a lot easier to use the variant in places where an int is need - or a string, assuming that the variant is holding the type of data you're casting it to. If not, it'll throw an exception, which is essentially the same as the ClassCastException in Java.
With these two things done, I'm off to thinking about how I might create an object that takes a table and does the extraction from it for a complex SELECT/WHERE clauses. It would be nice, but there may be real problems still ahead.