Refactor named references in StoEx meta model
The StoEx meta model contains named references, which only consist of strings. Instead, there should be a way for other meta models to provide implementations for referenceable model elements that make up a named reference.
The required steps are:
introduction of abstract meta class that represents a referenceable element
replacement of string in named reference element with reference to referenceable element (no containment)
ensure that child creation extenders are enabled in genmodel
The references only affect the abstract syntax while the concrete syntax will remain as it is. The PCM elements will still store the textual representation in a string attribute. So, no change here from a PCM point of view.
The issue with broken references already exists in the current solution, right? At least, I have not found an update mechanism for the textual representation of the StoEx in case of a renaming yet. The new solution should not make things worse here.
You are right regarding the order of creation. However, I would rather see this as a benefit because you can no longer create references that cannot be resolved during runtime but create expressions in a more type-safe way.
One problem with this suggestion is nevertheless that referencing elements requires them to exist and them to not being modified afterwards so that the StoEx does not break. Also you can only express a StoEx refering to existing elements, so order of creation becomes important. Overall, this is bad for UX. In fact, it is a trade-off...