Below is a diagram which shows the relationships between the interfaces that define the basis for implementations of two-dimensional, i.e. table, models. The primary interface is the one required by the TableView visual component, StaticTableInterface. TableView will conditionally check for and use the others. Most of the interfaces are split into two complementary interfaces: a static or read-only one which defines only read-access methods, and a non-static or read-write one which extends the static one and adds corresponding update methods.

A table model implementation class will be of either the row template (SAS datasets), column template (transposed datasets), or freeform (two-dimensional arrays) variety, and will likely implement several of the other interfaces such as StaticColumnLabelInterface and StaticRowLabelInterface.