Rename internal model classes with 'Impl' suffix #355
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This has been discussed before for quite some time, now I'd like to make a step forward in preparation of #231: The internal model classes like
SModelElement
,SNode
etc. have the same names as the external model interfaces defined insprotty-protocol
. This is a source of confusion for users.Historically, the external model interfaces had a
Schema
suffix to disambiguate, but I removed that during the move to thesprotty-protocol
package. I now regard the external model as the primary interface. The internal model is used primarily at the diagram configuration with InversifyJS (configureModelElement
) and as arguments to custom services such as views.I propose to use the
Impl
suffix for internal model classes and deprecate the previous symbols. I would release v0.14.0 with this change (and maybe others) so users can migrate gracefully with the deprecation notices. Then I'd remove all deprecated code when we shift to v1.0.0.