MetaData - how mutable need they be?
Basically, I'm trying to understand the requirements and collecting use-cases to help :-)
Currently all MetaData properties are mutable and bound. On the other end of the pipe, nearly nobody is listening.
The one exception is TabularDataModel, which listens to "name" and "elementclass" - the two properties I would expect to be immutable in any scenario (once the data has gone "live", that is after reading/loading a model).
Background is, that the mutability poses a heavy burden on the view/binding classes. F.i. changing the elementClass may require to replace a component in a form.
So I would like to get some opinions about reasonable limits for mutability. Starting with my current POV:
MetaData have a live-cycle: there is a "initialization" phase, that's reading/loading/customizing _before_ they are used to drive a view. In this phase every property is mutable (necessary for deserialization anyway). That's okay from the view's prespective, because all relevant properties will be picked-up at creation/binding time anyway. There's a "live" phase - after creation/binding of views. In cthe live phase, only a subset of properties are allowed to change.
Then the next step will be to find the properties should be fixed in "live" phase. Taking Amy's grouping of MetaData from the roadmap:
c) view hints
d) edit constraints
the obvious mutable group is c). I would regard a), b) plus identifier as essentially immutable. d), e) are related and in the borderline to "data" properties anyway - so could change context-dependent and will need special care.