Table Properties

The IliTable class supports annotating parts of a table with properties. In contrast to the primary content of the table (the table's rows), the properties are not constrained by the table schema.

A property has a name (an IlSymbol* object) and a value (an IliValue object).

The parts of an IliTable object that can have properties are:

  • The whole table

  • Any column

  • Any row

  • Any cell

Each part can have any number of properties attached to it as long as the property names are unique for each part. Two different parts (two cells or a cell and a row) can have properties with the same name.

The IliTable class does not manage properties itself, instead it delegates property management to the IliTablePropertyManager class.

An IliTable object has a default property manager, but it can manage additional property managers if needed. The requirement that a given part of a table cannot have two properties with the same name applies to each property-manager. Among different property managers, a given IliTable part can have properties with the same name, one for each property manager.