If this reference is not set then EObjectActionProvider creates a new Action using AppFactory in newAction() method. If this reference is set and is Action then a copy of the action is created and returned. Otherwise the reference value it is adapted to ActionProvider which is used to create an action. This allows to merge actions and chain action generation. E.g. generate Ecore model documentation and merge it into the Engineering documentation.
Elements can extend other elements and inherit their configuration - set attributes and references. For top-level packages inheritance shall be explicitly set using
superPackages reference. For nested packages and other package elements
extends is derived from containing packages. For nested packages super-packages derived from containment precede explicitly specified super-packages, i.e. the explicitly specified super-packages (mix-ins) can override configuration inherited via containment.
Markers pointing to where this model element was loaded from - location, line and column numbers. Multiple markers are supported for situations when a single model element is loaded from multiple locations, e.g. a row in an Excel document or a database and then pom.xml and readme.md is a source repository. Another possiblity is an element being created from a prototype and then loaded - in this case the object will inherit markers from its prototype and will have a marker point to the location where it was loaded from. Markers are listed in the reverse order, i.e. the prototype marker would be after the load marker in the list.
Package can extend other packages and inherit their elements. This reference is required because
extends reference is already defined in PackageElement as derived and immutable. For top-level packages
extends is the same as this reference. For nested packages
extends is a union of containment-derived extensions and this reference.
Package own elements override inherited elements with the same keys. To suppress an inheriIted element define an element with the same key and
Multiple inheritance allows to have “mix-in” packages. For example, the primary lineage can follow the organizational hierarchy with base packages defining generic flows and then specializing at the lower levels of the organization, say to specific tools. Then there can be a technology tree, for example different cloud platforms. A set of flows defining development processes for a particular organization and a particular cloud technology would be a mix of the two inheritance hierarchies.