Skip to content

Dispense with Core in its present form: Its use prohibits compliance with the UML specification. #3540

@pbrown12303

Description

@pbrown12303

Is your feature request related to a problem?

Splitting the UML model concepts between Core.gaphor and UML.gaphor makes it impossible to comply with the UML language specification.

A specific case in point is the modeling of Dependency (issue #3528, pull request #3525). Shown below is the UML specification for dependency. In Gaphor, Dependency is defined in Core.gaphor, while PackageableElement is defined in UML.gaphor. This makes it impossible to make Dependency a subclass of PackageableElement. This, in turn, makes it impossible to set the owningPackage property of a Dependency (it doesn't have one because it is not a subclass of PackageableElement). This is but one consequence of trying to split the model.

image

Describe the solution you'd like

Migrate all language-specific modeling concepts from the Core model into language-specific models. If common cross-language concepts are desired for tool purposes, make them base classes (e.g. BaseElement) that can be made sub-classes of the language-specific modeling concepts. With this approach the language models are not constrained in any way and the base classes can support tool-specific behavior.

Describe alternatives you've considered

There are no alternatives is compliance with language specifications is sought.

Additional context

Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions