Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Map EMF type elements"
Line 7: | Line 7: | ||
! EMF ECore Element | ! EMF ECore Element | ||
! JCR node type Element | ! JCR node type Element | ||
+ | ! Description | ||
|- | |- | ||
| eClass | | eClass | ||
Line 21: | Line 22: | ||
|- | |- | ||
| eClass.eAttribute | | eClass.eAttribute | ||
− | | nodeType. | + | | nodeType.propertyDefinition |
|- | |- | ||
− | | eClass. | + | | eClass.eAttribute.name |
− | | nodeType. | + | | nodeType.propertyDefinition.name |
|- | |- | ||
− | | | + | | eClass.eAttribute.type |
− | | | + | | nodeType.propertyDefinition.requiredType |
|- | |- | ||
− | | | + | | EString |
− | | | + | | String |
+ | |- | ||
+ | | eClass.eReference containment=true | ||
+ | | nodeType.childNodeDefinition | ||
+ | |- | ||
+ | | eClass.eReference.name containment=true | ||
+ | | nodeType.childNodeDefinition.name | ||
+ | |- | ||
+ | | eClass.eReference.type containment=true | ||
+ | | nodeType.childNodeDefinition.requiredPrimaryTypes | ||
+ | | @ToDo Add description how multiple required primary types are handled. | ||
+ | |- | ||
+ | | eClass.eReference.upperBounds=1 | ||
+ | | nodeType.childNodeDefinition.(name!="*" && !allowsSameNameSiblings) | ||
+ | |- | ||
+ | | eClass.eReference.upperBounds=-1 | ||
+ | | nodeType.childNodeDefinition.!(name!="*" && !allowsSameNameSiblings) | ||
|- | |- | ||
| | | |
Revision as of 13:46, 20 August 2008
Below you see how the EMF type elements are mapped to JCR type elements. The pseudo objects "eClass" and "nodeType" are used to illustrate the concrete properties. The mapping is implemented as a model to model transformation in the oee.jcrm.conversion plugin using the oAW Xtend expressions language. It is triggered and configured using the oAW workflow engine. The mapping from a concrete Ecore model to node types is declared in the annotations of the Ecore classes.
EMF ECore Element | JCR node type Element | Description |
---|---|---|
eClass | nodeType | |
eClass.name | nodeType.name | |
eClass.isInterface | nodeType.isMixin | |
eClass.eSuperTypes | nodeType.declaredSuperTypes | |
eClass.eAttribute | nodeType.propertyDefinition | |
eClass.eAttribute.name | nodeType.propertyDefinition.name | |
eClass.eAttribute.type | nodeType.propertyDefinition.requiredType | |
EString | String | |
eClass.eReference containment=true | nodeType.childNodeDefinition | |
eClass.eReference.name containment=true | nodeType.childNodeDefinition.name | |
eClass.eReference.type containment=true | nodeType.childNodeDefinition.requiredPrimaryTypes | @ToDo Add description how multiple required primary types are handled. |
eClass.eReference.upperBounds=1 | nodeType.childNodeDefinition.(name!="*" && !allowsSameNameSiblings) | |
eClass.eReference.upperBounds=-1 | nodeType.childNodeDefinition.!(name!="*" && !allowsSameNameSiblings) | |