Community
Participate
Working Groups
Feature request: A new element in the metamodel shall be included. This is called "Property" and extends a ModelElement. It includes three attributes: "Name" (EString), "Type" (EString) and "Value" (EString). A NamedElement includes * Properties whereas a Property might belong to 1..* NamedElements. The purpose of this Property is that other users/vendors as well as other plugins are able to extend the WE with their specific data: somebody accessing a JEE engine needs probably other properties than somebody with a BPEL or XPDL engine. These properties shall be visible (once created) in the properties dialog of Eclipse. This is currently generated by EMF. Hence, a MultiTabProperty-dialog should be created which allows to switch between the EMF-generated properties and the new "JWT-Properties". If a Property is for a specific NamedElement (e.g. an Action) is created, the user shall be asked whether this property shall be created for all Actions (or maybe it is automatically done for all actions?). After that, the Properties as well as the MultiPageEditor shall be available as ExtensionPoint and one sample plugin shall show how to make use of this ExtensionPoint.
(see also http://wiki.eclipse.org/JWT_Metamodel ) Here is a model that unifies the simple, static EMF DynamicProperties and the powerful, EMF-extensible Aspects solutions. It relies on two concepts : * aspect (or dynamicproperty) : a single typed extension of a model element * profile (or DynamicPropertyContainer, or ModelExtension) : a model extension made of a consistent collection of aspects Metamodel specification : ProfileDefModel metamodel * done in static EMF * contained in Model or / and independent XMI file, which could be the same as the new Views one ProfileDefModel : profiledefs : ProfileDef * ProfileDef : name description author version JWT version (modelversion ?) aspectdefs : AspectDefs * AspectDef : id (jwt type) (string, reference ??) etype (those extending Aspect are aspects, the others e.g. primitives or EObject are supported using Property) : EString singleton : EBoolean assignedto (? EClass but requires to refer to the ecore, or EString) visibleAsChild : EBoolean JWT metamodel * depends on the static ProfileDefs metamodel Model profiledefs : ProfileDefs ModelElement : aspects : Aspect * Aspect : id (jwt type) Property extends Aspect : value : EObject Now an example of properties (csaad's) : * an instance of ProfileDef (name="Example1") * containing an AspectDef (name=id="internal_id1", etype="EString", assignedto="Action", singleton="true") * and another AspectDef (name=id="internal_id2", etype="EInteger", assignedto="ActivityNode", singleton="true") Which automatically creates property instances under said model elements, for example : * an instance of JoinNode (name="node1") containing an instance of Property (name=id="internal_id2", value="intvalue1") * an instance of ActionNode (name="node1") containing an instance of Property (name=id="internal_id2", value="intvalue2") and another instance of Property (name=id="internal_id1", value="stringvalue1") Now an example of an extended model : * an instance of ProfileDef (name="BonitaProfile") * containing an AspectDef (name=id="BonitaTaskAspectDef", etype="BonitaTaskAspect", assignedto="Action", singleton="false") * which makes BonitaTaskAspect available to be created under Action, * BonitaTaskAspect being defined as such : BonitaTaskAspect : bonitahooks * BonitaHook event : EString (listbox) javaClass : jar : Note : the DynamicProperty proposition of csaad was : ModelElement : properties * DynamicPropertyContainer : name description author version JWT version dynamicproperties * DynamicProperty : id type (of value ?) assignedto visibleOnChildren (?)
This feature has been generalized in feature described in bug 241567 "Typed metamodel extensions (Aspects)" (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=241567 ).
This bug can be seen as obsolete since the problem description as well as the solution based on bugs is much better described in bug 241567. *** This bug has been marked as a duplicate of bug 241567 ***