Author Topic: Profile: Inheritance of Base shape is unpredictable  (Read 3306 times)

adama

  • EA User
  • **
  • Posts: 62
  • Karma: +0/-0
    • View Profile
Profile: Inheritance of Base shape is unpredictable
« on: March 18, 2017, 12:22:52 am »
Given:
  • Creating a "Location" stereotype in a profile
  • Extends metaclass UML::Node (need the shape).
  • Inherits from stereotype Archimate2::Location (it's a requirement, plus need the connectors)
  • Inherits from ZF::Location (tried to force the shape using this also)
  • Resulting shape is flat (Archimate2).  Cannot find a way to force the shape of the Node

What I want:
- Inherit cube shape from UML::Node or ZF::Location

What It get:
- Inherit shape from Archimate

What I've tried:
  • Inheriting from UML::Node, ZF::Location, etc.  Archimate2 shape always overrides
  • Using DrawNativeShape() and DrawParentShape() in shape script. Same effect as item 1.

The more I think about this, I believe we have a design flaw in the inheritance chain.  My Location also inherits from ZF:Location, so there should be no preference between the two parent stereotypes.  I get the feeling that Sparx simply picks alphabetically from the inheritance chain, which is why we get the Archimate shape.  More reasonably, the stereotype should inherit from its base metaclass (UML::Node), not the other stereotypes that it specializes. Agree?

Thanks.