Преглед на файлове

Issue 756 (#759)

- Added Annotations to the type meta model
- A LocalReaction does not extend from Declarations anymore
Andreas Mülder преди 9 години
родител
ревизия
3713ecbf9d
променени са 100 файла, в които са добавени 2369 реда и са изтрити 966 реда
  1. 0 1
      plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/ElementReferenceExpression.java
  2. 0 1
      plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/FeatureCall.java
  3. 28 4
      plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/util/ExpressionsAdapterFactory.java
  4. 28 3
      plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/util/ExpressionsSwitch.java
  5. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateAnnotation_properties_Property.gif
  6. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateAnnotation_target_EClass.gif
  7. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateComplexType_features_Enumerator.gif
  8. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Annotation.gif
  9. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Enumerator.gif
  10. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Event.gif
  11. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Property.gif
  12. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Type.gif
  13. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/AnnotatableElement.gif
  14. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/Annotation.gif
  15. 0 3
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/base/provider/DomainElementItemProvider.java
  16. 143 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotatableElementItemProvider.java
  17. 142 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotationItemProvider.java
  18. 5 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ComplexTypeItemProvider.java
  19. 98 39
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DeclarationItemProvider.java
  20. 0 3
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DomainItemProvider.java
  21. 3 16
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/EnumeratorItemProvider.java
  22. 49 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageItemProvider.java
  23. 56 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageMemberItemProvider.java
  24. 18 14
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PrimitiveTypeItemProvider.java
  25. 71 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeAliasItemProvider.java
  26. 24 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeItemProvider.java
  27. 72 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypesItemProviderAdapterFactory.java
  28. 11 1
      plugins/org.yakindu.base.types/model/types.ecore
  29. 1 0
      plugins/org.yakindu.base.types/plugin.xml
  30. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/BaseFactoryImpl.java
  31. 0 3
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/DomainElementImpl.java
  32. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseAdapterFactory.java
  33. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseSwitch.java
  34. 41 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/AnnotatableElement.java
  35. 58 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Annotation.java
  36. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/PackageMember.java
  37. 0 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Parameter.java
  38. 18 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesFactory.java
  39. 316 10
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesPackage.java
  40. 130 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotatableElementImpl.java
  41. 182 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotationImpl.java
  42. 48 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/DeclarationImpl.java
  43. 96 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/PackageMemberImpl.java
  44. 48 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypeAliasImpl.java
  45. 24 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesFactoryImpl.java
  46. 77 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesPackageImpl.java
  47. 38 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/util/TypesAdapterFactory.java
  48. 60 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/util/TypesSwitch.java
  49. 1 0
      plugins/org.yakindu.sct.model.sgraph.edit/plugin.properties
  50. 0 23
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/ReactiveElementItemProvider.java
  51. 12 0
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/ScopeItemProvider.java
  52. 0 94
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StateItemProvider.java
  53. 0 23
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StatechartItemProvider.java
  54. 2 7
      plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore
  55. 0 17
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ReactiveElement.java
  56. 63 156
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java
  57. 17 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Scope.java
  58. 0 70
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/State.java
  59. 0 5
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactiveElementImpl.java
  60. 0 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphFactoryImpl.java
  61. 15 48
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java
  62. 37 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ScopeImpl.java
  63. 1 152
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java
  64. 1 14
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java
  65. 19 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java
  66. 17 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java
  67. 6 6
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventDefinitionItemProvider.java
  68. 23 18
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/InterfaceScopeItemProvider.java
  69. 1 79
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/LocalReactionItemProvider.java
  70. 15 0
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/OperationDefinitionItemProvider.java
  71. 6 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/SimpleScopeItemProvider.java
  72. 6 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/StatechartScopeItemProvider.java
  73. 6 6
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TypeAliasDefinitionItemProvider.java
  74. 117 81
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/VariableDefinitionItemProvider.java
  75. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ActiveStateReferenceExpression.java
  76. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EntryPointSpec.java
  77. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EventRaisingExpression.java
  78. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EventValueReferenceExpression.java
  79. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ExitPointSpec.java
  80. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Guard.java
  81. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Import.java
  82. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ImportScope.java
  83. 1 2
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/LocalReaction.java
  84. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ReactionEffect.java
  85. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ReactionTrigger.java
  86. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/RegularEventSpec.java
  87. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Root.java
  88. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StateRoot.java
  89. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StateSpecification.java
  90. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StatechartRoot.java
  91. 82 37
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StextPackage.java
  92. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeEventSpec.java
  93. 6 0
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeEventType.java
  94. 6 0
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeUnit.java
  95. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TransitionRoot.java
  96. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TransitionSpecification.java
  97. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/VariableDefinition.java
  98. 1 1
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/ActiveStateReferenceExpressionImpl.java
  99. 0 2
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/AlwaysEventImpl.java
  100. 0 0
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/BuiltinEventSpecImpl.java

+ 0 - 1
plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/ElementReferenceExpression.java

@@ -3,7 +3,6 @@
 package org.yakindu.base.expressions.expressions;
 
 import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EObject;
 
 /**

+ 0 - 1
plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/FeatureCall.java

@@ -3,7 +3,6 @@
 package org.yakindu.base.expressions.expressions;
 
 import org.eclipse.emf.common.util.EList;
-
 import org.eclipse.emf.ecore.EObject;
 
 /**

+ 28 - 4
plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/util/ExpressionsAdapterFactory.java

@@ -4,12 +4,36 @@ package org.yakindu.base.expressions.expressions.util;
 
 import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
-
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
 import org.eclipse.emf.ecore.EObject;
-
-import org.yakindu.base.expressions.expressions.*;
+import org.yakindu.base.expressions.expressions.AssignmentExpression;
+import org.yakindu.base.expressions.expressions.BitwiseAndExpression;
+import org.yakindu.base.expressions.expressions.BitwiseOrExpression;
+import org.yakindu.base.expressions.expressions.BitwiseXorExpression;
+import org.yakindu.base.expressions.expressions.BoolLiteral;
+import org.yakindu.base.expressions.expressions.ConditionalExpression;
+import org.yakindu.base.expressions.expressions.DoubleLiteral;
+import org.yakindu.base.expressions.expressions.ElementReferenceExpression;
+import org.yakindu.base.expressions.expressions.Expression;
+import org.yakindu.base.expressions.expressions.ExpressionsPackage;
+import org.yakindu.base.expressions.expressions.FeatureCall;
+import org.yakindu.base.expressions.expressions.FloatLiteral;
+import org.yakindu.base.expressions.expressions.HexLiteral;
+import org.yakindu.base.expressions.expressions.IntLiteral;
+import org.yakindu.base.expressions.expressions.Literal;
+import org.yakindu.base.expressions.expressions.LogicalAndExpression;
+import org.yakindu.base.expressions.expressions.LogicalNotExpression;
+import org.yakindu.base.expressions.expressions.LogicalOrExpression;
+import org.yakindu.base.expressions.expressions.LogicalRelationExpression;
+import org.yakindu.base.expressions.expressions.NullLiteral;
+import org.yakindu.base.expressions.expressions.NumericalAddSubtractExpression;
+import org.yakindu.base.expressions.expressions.NumericalMultiplyDivideExpression;
+import org.yakindu.base.expressions.expressions.NumericalUnaryExpression;
+import org.yakindu.base.expressions.expressions.ParenthesizedExpression;
+import org.yakindu.base.expressions.expressions.PrimitiveValueExpression;
+import org.yakindu.base.expressions.expressions.ShiftExpression;
+import org.yakindu.base.expressions.expressions.StringLiteral;
+import org.yakindu.base.expressions.expressions.TypeCastExpression;
 
 /**
  * <!-- begin-user-doc -->

+ 28 - 3
plugins/org.yakindu.base.expressions/emf-gen/org/yakindu/base/expressions/expressions/util/ExpressionsSwitch.java

@@ -4,10 +4,35 @@ package org.yakindu.base.expressions.expressions.util;
 
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
-
 import org.eclipse.emf.ecore.util.Switch;
-
-import org.yakindu.base.expressions.expressions.*;
+import org.yakindu.base.expressions.expressions.AssignmentExpression;
+import org.yakindu.base.expressions.expressions.BitwiseAndExpression;
+import org.yakindu.base.expressions.expressions.BitwiseOrExpression;
+import org.yakindu.base.expressions.expressions.BitwiseXorExpression;
+import org.yakindu.base.expressions.expressions.BoolLiteral;
+import org.yakindu.base.expressions.expressions.ConditionalExpression;
+import org.yakindu.base.expressions.expressions.DoubleLiteral;
+import org.yakindu.base.expressions.expressions.ElementReferenceExpression;
+import org.yakindu.base.expressions.expressions.Expression;
+import org.yakindu.base.expressions.expressions.ExpressionsPackage;
+import org.yakindu.base.expressions.expressions.FeatureCall;
+import org.yakindu.base.expressions.expressions.FloatLiteral;
+import org.yakindu.base.expressions.expressions.HexLiteral;
+import org.yakindu.base.expressions.expressions.IntLiteral;
+import org.yakindu.base.expressions.expressions.Literal;
+import org.yakindu.base.expressions.expressions.LogicalAndExpression;
+import org.yakindu.base.expressions.expressions.LogicalNotExpression;
+import org.yakindu.base.expressions.expressions.LogicalOrExpression;
+import org.yakindu.base.expressions.expressions.LogicalRelationExpression;
+import org.yakindu.base.expressions.expressions.NullLiteral;
+import org.yakindu.base.expressions.expressions.NumericalAddSubtractExpression;
+import org.yakindu.base.expressions.expressions.NumericalMultiplyDivideExpression;
+import org.yakindu.base.expressions.expressions.NumericalUnaryExpression;
+import org.yakindu.base.expressions.expressions.ParenthesizedExpression;
+import org.yakindu.base.expressions.expressions.PrimitiveValueExpression;
+import org.yakindu.base.expressions.expressions.ShiftExpression;
+import org.yakindu.base.expressions.expressions.StringLiteral;
+import org.yakindu.base.expressions.expressions.TypeCastExpression;
 
 /**
  * <!-- begin-user-doc -->

BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateAnnotation_properties_Property.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateAnnotation_target_EClass.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateComplexType_features_Enumerator.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Annotation.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Enumerator.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Event.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Property.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_Type.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/obj16/AnnotatableElement.gif


BIN
plugins/org.yakindu.base.types.edit/icons/full/obj16/Annotation.gif


+ 0 - 3
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/base/provider/DomainElementItemProvider.java

@@ -8,9 +8,7 @@ import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -21,7 +19,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DomainElement;
 

+ 143 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotatableElementItemProvider.java

@@ -0,0 +1,143 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.AnnotatableElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AnnotatableElementItemProvider 
+	extends ItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AnnotatableElementItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addAnnotationsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Annotations feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAnnotationsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AnnotatableElement_annotations_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AnnotatableElement_annotations_feature", "_UI_AnnotatableElement_type"),
+				 TypesPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns AnnotatableElement.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/AnnotatableElement"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		return getString("_UI_AnnotatableElement_type");
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return TypesEditPlugin.INSTANCE;
+	}
+
+}

+ 142 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotationItemProvider.java

@@ -0,0 +1,142 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.yakindu.base.types.Annotation;
+import org.yakindu.base.types.TypesFactory;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.Annotation} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AnnotationItemProvider extends PackageMemberItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AnnotationItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(TypesPackage.Literals.ANNOTATION__PROPERTIES);
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Annotation.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Annotation"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((Annotation)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Annotation_type") :
+			getString("_UI_Annotation_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Annotation.class)) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.ANNOTATION__PROPERTIES,
+				 TypesFactory.eINSTANCE.createProperty()));
+	}
+
+}

+ 5 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ComplexTypeItemProvider.java

@@ -179,6 +179,11 @@ public class ComplexTypeItemProvider
 			(createChildParameter
 				(TypesPackage.Literals.COMPLEX_TYPE__FEATURES,
 				 TypesFactory.eINSTANCE.createEvent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.COMPLEX_TYPE__FEATURES,
+				 TypesFactory.eINSTANCE.createEnumerator()));
 	}
 
 }

+ 98 - 39
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DeclarationItemProvider.java

@@ -15,9 +15,7 @@ import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -28,17 +26,14 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-
 import org.yakindu.base.base.BasePackage;
-
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.TypesPackage;
 
 /**
- * This is the item provider adapter for a
- * {@link org.yakindu.base.types.Declaration} object. <!-- begin-user-doc -->
+ * This is the item provider adapter for a {@link org.yakindu.base.types.Declaration} object.
+ * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
- * 
  * @generated
  */
 public class DeclarationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
@@ -67,24 +62,32 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 			addTypePropertyDescriptor(object);
 			addTypeArgumentsPropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
+			addAnnotationsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Type feature. <!-- begin-user-doc
+	 * This adds a property descriptor for the Type feature.
+	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	protected void addTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add(createItemPropertyDescriptor(
-				((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_TypedElement_type_feature"),
-				getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_type_feature",
-						"_UI_TypedElement_type"), TypesPackage.Literals.TYPED_ELEMENT__TYPE, true, false, true, null,
-				null, null));
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypedElement_type_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_type_feature", "_UI_TypedElement_type"),
+				 TypesPackage.Literals.TYPED_ELEMENT__TYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
 	}
 
 	/**
@@ -94,29 +97,85 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 	 * @generated
 	 */
 	protected void addTypeArgumentsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add(createItemPropertyDescriptor(
-				((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_TypedElement_typeArguments_feature"),
-				getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_typeArguments_feature",
-						"_UI_TypedElement_type"), TypesPackage.Literals.TYPED_ELEMENT__TYPE_ARGUMENTS, true, false,
-				true, null, null, null));
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypedElement_typeArguments_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_typeArguments_feature", "_UI_TypedElement_type"),
+				 TypesPackage.Literals.TYPED_ELEMENT__TYPE_ARGUMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
 	}
 
 	/**
-	 * This adds a property descriptor for the Name feature. <!-- begin-user-doc
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add(createItemPropertyDescriptor(
-				((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_NamedElement_name_feature"),
-				getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature",
-						"_UI_NamedElement_type"), BasePackage.Literals.NAMED_ELEMENT__NAME, true, false, false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_NamedElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+				 BasePackage.Literals.NAMED_ELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Annotations feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAnnotationsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AnnotatableElement_annotations_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AnnotatableElement_annotations_feature", "_UI_AnnotatableElement_type"),
+				 TypesPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_PackageMember_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_PackageMember_id_feature", "_UI_PackageMember_type"),
+				 TypesPackage.Literals.PACKAGE_MEMBER__ID,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
 	}
 
 	/**
@@ -132,11 +191,10 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -144,9 +202,10 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(Declaration.class)) {
-		case TypesPackage.DECLARATION__NAME:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-			return;
+			case TypesPackage.DECLARATION__NAME:
+			case TypesPackage.DECLARATION__ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
 		}
 		super.notifyChanged(notification);
 	}

+ 0 - 3
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DomainItemProvider.java

@@ -16,9 +16,7 @@ import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -29,7 +27,6 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-
 import org.yakindu.base.types.Domain;
 import org.yakindu.base.types.TypesPackage;
 

+ 3 - 16
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/EnumeratorItemProvider.java

@@ -16,12 +16,10 @@ import java.util.List;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.yakindu.base.base.provider.NamedElementItemProvider;
 import org.yakindu.base.types.Enumerator;
 import org.yakindu.base.types.TypesPackage;
 
@@ -32,7 +30,7 @@ import org.yakindu.base.types.TypesPackage;
  * @generated
  */
 public class EnumeratorItemProvider
-	extends NamedElementItemProvider {
+	extends DeclarationItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
@@ -73,10 +71,10 @@ public class EnumeratorItemProvider
 				 getString("_UI_Enumerator_literalValue_feature"),
 				 getString("_UI_PropertyDescriptor_description", "_UI_Enumerator_literalValue_feature", "_UI_Enumerator_type"),
 				 TypesPackage.Literals.ENUMERATOR__LITERAL_VALUE,
-				 true,
 				 false,
 				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
 				 null,
 				 null));
 	}
@@ -137,15 +135,4 @@ public class EnumeratorItemProvider
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 	}
 
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return TypesEditPlugin.INSTANCE;
-	}
-
 }

+ 49 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageItemProvider.java

@@ -18,6 +18,7 @@ import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.base.base.provider.NamedElementItemProvider;
@@ -53,10 +54,33 @@ public class PackageItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addImportPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Import feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addImportPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Package_import_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Package_import_feature", "_UI_Package_type"),
+				 TypesPackage.Literals.PACKAGE__IMPORT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
@@ -149,11 +173,26 @@ public class PackageItemProvider
 				(TypesPackage.Literals.PACKAGE__MEMBER,
 				 TypesFactory.eINSTANCE.createPackageMember()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createType()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(TypesPackage.Literals.PACKAGE__MEMBER,
 				 TypesFactory.eINSTANCE.createOperation()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createProperty()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createEvent()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(TypesPackage.Literals.PACKAGE__MEMBER,
@@ -174,6 +213,11 @@ public class PackageItemProvider
 				(TypesPackage.Literals.PACKAGE__MEMBER,
 				 TypesFactory.eINSTANCE.createComplexType()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createEnumerator()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(TypesPackage.Literals.PACKAGE__MEMBER,
@@ -184,6 +228,11 @@ public class PackageItemProvider
 				(TypesPackage.Literals.PACKAGE__MEMBER,
 				 TypesFactory.eINSTANCE.createTypeAlias()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createAnnotation()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(TypesPackage.Literals.PACKAGE__DOMAIN,

+ 56 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageMemberItemProvider.java

@@ -17,9 +17,13 @@ import java.util.List;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.base.base.provider.NamedElementItemProvider;
 import org.yakindu.base.types.PackageMember;
+import org.yakindu.base.types.TypesPackage;
 
 /**
  * This is the item provider adapter for a {@link org.yakindu.base.types.PackageMember} object.
@@ -50,10 +54,56 @@ public class PackageMemberItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addAnnotationsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
+	/**
+	 * This adds a property descriptor for the Annotations feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAnnotationsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AnnotatableElement_annotations_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AnnotatableElement_annotations_feature", "_UI_AnnotatableElement_type"),
+				 TypesPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_PackageMember_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_PackageMember_id_feature", "_UI_PackageMember_type"),
+				 TypesPackage.Literals.PACKAGE_MEMBER__ID,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This returns PackageMember.gif.
 	 * <!-- begin-user-doc -->
@@ -89,6 +139,12 @@ public class PackageMemberItemProvider
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(PackageMember.class)) {
+			case TypesPackage.PACKAGE_MEMBER__ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 

+ 18 - 14
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PrimitiveTypeItemProvider.java

@@ -21,10 +21,9 @@ import org.yakindu.base.types.PrimitiveType;
 import org.yakindu.base.types.TypesPackage;
 
 /**
- * This is the item provider adapter for a
- * {@link org.yakindu.base.types.PrimitiveType} object. <!-- begin-user-doc -->
+ * This is the item provider adapter for a {@link org.yakindu.base.types.PrimitiveType} object.
+ * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
- * 
  * @generated
  */
 public class PrimitiveTypeItemProvider extends TypeItemProvider {
@@ -61,13 +60,19 @@ public class PrimitiveTypeItemProvider extends TypeItemProvider {
 	 * @generated
 	 */
 	protected void addBaseTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add(createItemPropertyDescriptor(
-				((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_PrimitiveType_baseType_feature"),
-				getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveType_baseType_feature",
-						"_UI_PrimitiveType_type"), TypesPackage.Literals.PRIMITIVE_TYPE__BASE_TYPE, true, false, true,
-				null, null, null));
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_PrimitiveType_baseType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_PrimitiveType_baseType_feature", "_UI_PrimitiveType_type"),
+				 TypesPackage.Literals.PRIMITIVE_TYPE__BASE_TYPE,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
 	}
 
 	/**
@@ -94,11 +99,10 @@ public class PrimitiveTypeItemProvider extends TypeItemProvider {
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override

+ 71 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeAliasItemProvider.java

@@ -71,7 +71,10 @@ public class TypeAliasItemProvider
 			addTypePropertyDescriptor(object);
 			addTypeArgumentsPropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
+			addAnnotationsPropertyDescriptor(object);
+			addIdPropertyDescriptor(object);
 			addAbstractPropertyDescriptor(object);
+			addVisiblePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -142,6 +145,50 @@ public class TypeAliasItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Annotations feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addAnnotationsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AnnotatableElement_annotations_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AnnotatableElement_annotations_feature", "_UI_AnnotatableElement_type"),
+				 TypesPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Id feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIdPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_PackageMember_id_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_PackageMember_id_feature", "_UI_PackageMember_type"),
+				 TypesPackage.Literals.PACKAGE_MEMBER__ID,
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Abstract feature.
 	 * <!-- begin-user-doc -->
@@ -164,6 +211,28 @@ public class TypeAliasItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Visible feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Type_visible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Type_visible_feature", "_UI_Type_type"),
+				 TypesPackage.Literals.TYPE__VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
@@ -245,7 +314,9 @@ public class TypeAliasItemProvider
 
 		switch (notification.getFeatureID(TypeAlias.class)) {
 			case TypesPackage.TYPE_ALIAS__NAME:
+			case TypesPackage.TYPE_ALIAS__ID:
 			case TypesPackage.TYPE_ALIAS__ABSTRACT:
+			case TypesPackage.TYPE_ALIAS__VISIBLE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:

+ 24 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeItemProvider.java

@@ -55,6 +55,7 @@ public class TypeItemProvider
 			super.getPropertyDescriptors(object);
 
 			addAbstractPropertyDescriptor(object);
+			addVisiblePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -81,6 +82,28 @@ public class TypeItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Visible feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVisiblePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Type_visible_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Type_visible_feature", "_UI_Type_type"),
+				 TypesPackage.Literals.TYPE__VISIBLE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
@@ -149,6 +172,7 @@ public class TypeItemProvider
 
 		switch (notification.getFeatureID(Type.class)) {
 			case TypesPackage.TYPE__ABSTRACT:
+			case TypesPackage.TYPE__VISIBLE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case TypesPackage.TYPE__CONSTRAINT:

+ 72 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypesItemProviderAdapterFactory.java

@@ -100,6 +100,29 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		return packageItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Type} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TypeItemProvider typeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.Type}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTypeAdapter() {
+		if (typeItemProvider == null) {
+			typeItemProvider = new TypeItemProvider(this);
+		}
+
+		return typeItemProvider;
+	}
+
 	/**
 	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Operation} instances.
 	 * <!-- begin-user-doc -->
@@ -445,6 +468,52 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		return typeAliasItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Annotation} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotationItemProvider annotationItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.Annotation}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createAnnotationAdapter() {
+		if (annotationItemProvider == null) {
+			annotationItemProvider = new AnnotationItemProvider(this);
+		}
+
+		return annotationItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.AnnotatableElement} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotatableElementItemProvider annotatableElementItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.AnnotatableElement}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createAnnotatableElementAdapter() {
+		if (annotatableElementItemProvider == null) {
+			annotatableElementItemProvider = new AnnotatableElementItemProvider(this);
+		}
+
+		return annotatableElementItemProvider;
+	}
+
 	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
@@ -545,6 +614,7 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 	 */
 	public void dispose() {
 		if (packageItemProvider != null) packageItemProvider.dispose();
+		if (typeItemProvider != null) typeItemProvider.dispose();
 		if (operationItemProvider != null) operationItemProvider.dispose();
 		if (propertyItemProvider != null) propertyItemProvider.dispose();
 		if (parameterItemProvider != null) parameterItemProvider.dispose();
@@ -560,6 +630,8 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		if (rangeConstraintItemProvider != null) rangeConstraintItemProvider.dispose();
 		if (domainItemProvider != null) domainItemProvider.dispose();
 		if (typeAliasItemProvider != null) typeAliasItemProvider.dispose();
+		if (annotationItemProvider != null) annotationItemProvider.dispose();
+		if (annotatableElementItemProvider != null) annotatableElementItemProvider.dispose();
 	}
 
 }

+ 11 - 1
plugins/org.yakindu.base.types/model/types.ecore

@@ -74,7 +74,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" upperBound="-1"
         eType="#//TypeParameter" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PackageMember" eSuperTypes="base.ecore#//NamedElement">
+  <eClassifiers xsi:type="ecore:EClass" name="PackageMember" eSuperTypes="base.ecore#//NamedElement #//AnnotatableElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         changeable="false" volatile="true" transient="true" derived="true" iD="true"/>
   </eClassifiers>
@@ -86,4 +86,14 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TypeAlias" eSuperTypes="#//TypedElement #//Type"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//PackageMember">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+        eType="#//Property" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="targets" upperBound="-1"
+        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="AnnotatableElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+        eType="#//Annotation"/>
+  </eClassifiers>
 </ecore:EPackage>

+ 1 - 0
plugins/org.yakindu.base.types/plugin.xml

@@ -12,6 +12,7 @@
             uri="http://www.yakindu.org/base/base/2.0.0">
       </package>
    </extension>
+
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated base -->
       <package

+ 1 - 1
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/BaseFactoryImpl.java

@@ -11,10 +11,10 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.yakindu.base.base.*;
 import org.yakindu.base.base.BaseFactory;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
+import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
 
 /**

+ 0 - 3
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/DomainElementImpl.java

@@ -3,12 +3,9 @@
 package org.yakindu.base.base.impl;
 
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.ecore.EClass;
-
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
-
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DomainElement;
 

+ 1 - 1
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseAdapterFactory.java

@@ -10,9 +10,9 @@ import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.yakindu.base.base.*;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
+import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
 
 /**

+ 1 - 1
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseSwitch.java

@@ -9,9 +9,9 @@ package org.yakindu.base.base.util;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.yakindu.base.base.*;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
+import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
 
 /**

+ 41 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/AnnotatableElement.java

@@ -0,0 +1,41 @@
+/**
+ */
+package org.yakindu.base.types;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotatable Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.types.AnnotatableElement#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.base.types.TypesPackage#getAnnotatableElement()
+ * @model
+ * @generated
+ */
+public interface AnnotatableElement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Annotations</b></em>' reference list.
+	 * The list contents are of type {@link org.yakindu.base.types.Annotation}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Annotations</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Annotations</em>' reference list.
+	 * @see org.yakindu.base.types.TypesPackage#getAnnotatableElement_Annotations()
+	 * @model
+	 * @generated
+	 */
+	EList<Annotation> getAnnotations();
+
+} // AnnotatableElement

+ 58 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Annotation.java

@@ -0,0 +1,58 @@
+/**
+ */
+package org.yakindu.base.types;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.types.Annotation#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.yakindu.base.types.Annotation#getTargets <em>Targets</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.base.types.TypesPackage#getAnnotation()
+ * @model
+ * @generated
+ */
+public interface Annotation extends PackageMember {
+	/**
+	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.base.types.Property}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Properties</em>' containment reference list.
+	 * @see org.yakindu.base.types.TypesPackage#getAnnotation_Properties()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Property> getProperties();
+
+	/**
+	 * Returns the value of the '<em><b>Targets</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Targets</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Targets</em>' reference list.
+	 * @see org.yakindu.base.types.TypesPackage#getAnnotation_Targets()
+	 * @model
+	 * @generated
+	 */
+	EList<EObject> getTargets();
+
+} // Annotation

+ 1 - 1
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/PackageMember.java

@@ -20,7 +20,7 @@ import org.yakindu.base.base.NamedElement;
  * @model
  * @generated
  */
-public interface PackageMember extends NamedElement {
+public interface PackageMember extends NamedElement, AnnotatableElement {
 
 	/**
 	 * Returns the value of the '<em><b>Id</b></em>' attribute.

+ 0 - 1
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Parameter.java

@@ -8,7 +8,6 @@ package org.yakindu.base.types;
 
 import org.yakindu.base.base.NamedElement;
 
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Parameter</b></em>'.

+ 18 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesFactory.java

@@ -178,6 +178,24 @@ public interface TypesFactory extends EFactory {
 	 */
 	TypeAlias createTypeAlias();
 
+	/**
+	 * Returns a new object of class '<em>Annotation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Annotation</em>'.
+	 * @generated
+	 */
+	Annotation createAnnotation();
+
+	/**
+	 * Returns a new object of class '<em>Annotatable Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Annotatable Element</em>'.
+	 * @generated
+	 */
+	AnnotatableElement createAnnotatableElement();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->

+ 316 - 10
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesPackage.java

@@ -135,6 +135,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PACKAGE_MEMBER__NAME = BasePackage.NAMED_ELEMENT__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PACKAGE_MEMBER__ANNOTATIONS = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 0;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -142,7 +151,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PACKAGE_MEMBER__ID = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 0;
+	int PACKAGE_MEMBER__ID = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Package Member</em>' class.
@@ -151,7 +160,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PACKAGE_MEMBER_FEATURE_COUNT = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 1;
+	int PACKAGE_MEMBER_FEATURE_COUNT = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.base.types.impl.TypeImpl <em>Type</em>}' class.
@@ -212,6 +221,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE__NAME = PACKAGE_MEMBER__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE__ANNOTATIONS = PACKAGE_MEMBER__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -321,6 +339,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int DECLARATION__NAME = TYPED_ELEMENT_FEATURE_COUNT + 0;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DECLARATION__ANNOTATIONS = TYPED_ELEMENT_FEATURE_COUNT + 1;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -328,7 +355,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int DECLARATION__ID = TYPED_ELEMENT_FEATURE_COUNT + 1;
+	int DECLARATION__ID = TYPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Declaration</em>' class.
@@ -337,7 +364,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int DECLARATION_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 2;
+	int DECLARATION_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' reference.
@@ -366,6 +393,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int OPERATION__NAME = DECLARATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -420,6 +456,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PROPERTY__NAME = DECLARATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -548,6 +593,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int EVENT__NAME = DECLARATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -605,6 +659,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PRIMITIVE_TYPE__NAME = TYPE__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__ANNOTATIONS = TYPE__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -668,6 +731,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int ENUMERATION_TYPE__NAME = PRIMITIVE_TYPE__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATION_TYPE__ANNOTATIONS = PRIMITIVE_TYPE__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -750,6 +822,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PARAMETERIZED_TYPE__NAME = TYPE__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETERIZED_TYPE__ANNOTATIONS = TYPE__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -823,6 +904,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int COMPLEX_TYPE__NAME = PARAMETERIZED_TYPE__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPLEX_TYPE__ANNOTATIONS = PARAMETERIZED_TYPE__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -932,6 +1022,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int ENUMERATOR__NAME = DECLARATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUMERATOR__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1016,6 +1115,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE_PARAMETER__NAME = TYPE__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_PARAMETER__ANNOTATIONS = TYPE__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1181,6 +1289,15 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE_ALIAS__NAME = TYPED_ELEMENT_FEATURE_COUNT + 0;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_ALIAS__ANNOTATIONS = TYPED_ELEMENT_FEATURE_COUNT + 1;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1188,7 +1305,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__ID = TYPED_ELEMENT_FEATURE_COUNT + 1;
+	int TYPE_ALIAS__ID = TYPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Constraint</b></em>' containment reference list.
@@ -1197,7 +1314,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__CONSTRAINT = TYPED_ELEMENT_FEATURE_COUNT + 2;
+	int TYPE_ALIAS__CONSTRAINT = TYPED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Abstract</b></em>' attribute.
@@ -1206,7 +1323,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__ABSTRACT = TYPED_ELEMENT_FEATURE_COUNT + 3;
+	int TYPE_ALIAS__ABSTRACT = TYPED_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
@@ -1215,7 +1332,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__VISIBLE = TYPED_ELEMENT_FEATURE_COUNT + 4;
+	int TYPE_ALIAS__VISIBLE = TYPED_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Type Alias</em>' class.
@@ -1224,7 +1341,99 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 5;
+	int TYPE_ALIAS_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.base.types.impl.AnnotationImpl <em>Annotation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.base.types.impl.AnnotationImpl
+	 * @see org.yakindu.base.types.impl.TypesPackageImpl#getAnnotation()
+	 * @generated
+	 */
+	int ANNOTATION = 19;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__NAME = PACKAGE_MEMBER__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__ANNOTATIONS = PACKAGE_MEMBER__ANNOTATIONS;
+
+	/**
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__ID = PACKAGE_MEMBER__ID;
+
+	/**
+	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__PROPERTIES = PACKAGE_MEMBER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Targets</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION__TARGETS = PACKAGE_MEMBER_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Annotation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATION_FEATURE_COUNT = PACKAGE_MEMBER_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.base.types.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.base.types.impl.AnnotatableElementImpl
+	 * @see org.yakindu.base.types.impl.TypesPackageImpl#getAnnotatableElement()
+	 * @generated
+	 */
+	int ANNOTATABLE_ELEMENT = 20;
+
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATABLE_ELEMENT__ANNOTATIONS = 0;
+
+	/**
+	 * The number of structural features of the '<em>Annotatable Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ANNOTATABLE_ELEMENT_FEATURE_COUNT = 1;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.base.types.Direction <em>Direction</em>}' enum.
@@ -1234,7 +1443,7 @@ public interface TypesPackage extends EPackage {
 	 * @see org.yakindu.base.types.impl.TypesPackageImpl#getDirection()
 	 * @generated
 	 */
-	int DIRECTION = 19;
+	int DIRECTION = 21;
 
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.base.types.Package <em>Package</em>}'.
@@ -1723,6 +1932,59 @@ public interface TypesPackage extends EPackage {
 	 */
 	EClass getTypeAlias();
 
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.base.types.Annotation <em>Annotation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Annotation</em>'.
+	 * @see org.yakindu.base.types.Annotation
+	 * @generated
+	 */
+	EClass getAnnotation();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.yakindu.base.types.Annotation#getProperties <em>Properties</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Properties</em>'.
+	 * @see org.yakindu.base.types.Annotation#getProperties()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EReference getAnnotation_Properties();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.yakindu.base.types.Annotation#getTargets <em>Targets</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Targets</em>'.
+	 * @see org.yakindu.base.types.Annotation#getTargets()
+	 * @see #getAnnotation()
+	 * @generated
+	 */
+	EReference getAnnotation_Targets();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.base.types.AnnotatableElement <em>Annotatable Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Annotatable Element</em>'.
+	 * @see org.yakindu.base.types.AnnotatableElement
+	 * @generated
+	 */
+	EClass getAnnotatableElement();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.yakindu.base.types.AnnotatableElement#getAnnotations <em>Annotations</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Annotations</em>'.
+	 * @see org.yakindu.base.types.AnnotatableElement#getAnnotations()
+	 * @see #getAnnotatableElement()
+	 * @generated
+	 */
+	EReference getAnnotatableElement_Annotations();
+
 	/**
 	 * Returns the meta object for enum '{@link org.yakindu.base.types.Direction <em>Direction</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2161,6 +2423,50 @@ public interface TypesPackage extends EPackage {
 		 */
 		EClass TYPE_ALIAS = eINSTANCE.getTypeAlias();
 
+		/**
+		 * The meta object literal for the '{@link org.yakindu.base.types.impl.AnnotationImpl <em>Annotation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.base.types.impl.AnnotationImpl
+		 * @see org.yakindu.base.types.impl.TypesPackageImpl#getAnnotation()
+		 * @generated
+		 */
+		EClass ANNOTATION = eINSTANCE.getAnnotation();
+
+		/**
+		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ANNOTATION__PROPERTIES = eINSTANCE.getAnnotation_Properties();
+
+		/**
+		 * The meta object literal for the '<em><b>Targets</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ANNOTATION__TARGETS = eINSTANCE.getAnnotation_Targets();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.base.types.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.base.types.impl.AnnotatableElementImpl
+		 * @see org.yakindu.base.types.impl.TypesPackageImpl#getAnnotatableElement()
+		 * @generated
+		 */
+		EClass ANNOTATABLE_ELEMENT = eINSTANCE.getAnnotatableElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Annotations</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ANNOTATABLE_ELEMENT__ANNOTATIONS = eINSTANCE.getAnnotatableElement_Annotations();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.base.types.Direction <em>Direction</em>}' enum.
 		 * <!-- begin-user-doc -->

+ 130 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotatableElementImpl.java

@@ -0,0 +1,130 @@
+/**
+ */
+package org.yakindu.base.types.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotatable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.types.impl.AnnotatableElementImpl#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AnnotatableElementImpl extends EObjectImpl implements AnnotatableElement {
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotatableElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TypesPackage.Literals.ANNOTATABLE_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectResolvingEList<Annotation>(Annotation.class, this, TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
+				return getAnnotations();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
+				getAnnotations().clear();
+				getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
+				getAnnotations().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AnnotatableElementImpl

+ 182 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotationImpl.java

@@ -0,0 +1,182 @@
+/**
+ */
+package org.yakindu.base.types.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.yakindu.base.types.Annotation;
+import org.yakindu.base.types.Property;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.types.impl.AnnotationImpl#getProperties <em>Properties</em>}</li>
+ *   <li>{@link org.yakindu.base.types.impl.AnnotationImpl#getTargets <em>Targets</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AnnotationImpl extends PackageMemberImpl implements Annotation {
+	/**
+	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getProperties()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Property> properties;
+
+	/**
+	 * The cached value of the '{@link #getTargets() <em>Targets</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargets()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<EObject> targets;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AnnotationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TypesPackage.Literals.ANNOTATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Property> getProperties() {
+		if (properties == null) {
+			properties = new EObjectContainmentEList<Property>(Property.class, this, TypesPackage.ANNOTATION__PROPERTIES);
+		}
+		return properties;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<EObject> getTargets() {
+		if (targets == null) {
+			targets = new EObjectResolvingEList<EObject>(EObject.class, this, TypesPackage.ANNOTATION__TARGETS);
+		}
+		return targets;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				return getProperties();
+			case TypesPackage.ANNOTATION__TARGETS:
+				return getTargets();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				getProperties().clear();
+				getProperties().addAll((Collection<? extends Property>)newValue);
+				return;
+			case TypesPackage.ANNOTATION__TARGETS:
+				getTargets().clear();
+				getTargets().addAll((Collection<? extends EObject>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				getProperties().clear();
+				return;
+			case TypesPackage.ANNOTATION__TARGETS:
+				getTargets().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TypesPackage.ANNOTATION__PROPERTIES:
+				return properties != null && !properties.isEmpty();
+			case TypesPackage.ANNOTATION__TARGETS:
+				return targets != null && !targets.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AnnotationImpl

+ 48 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/DeclarationImpl.java

@@ -13,6 +13,8 @@ import org.eclipse.emf.ecore.impl.EObjectImpl;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.PackageMember;
 import org.yakindu.base.types.Type;
@@ -30,6 +32,7 @@ import org.yakindu.base.types.TypesUtil;
  *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getType <em>Type</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getTypeArguments <em>Type Arguments</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getAnnotations <em>Annotations</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getId <em>Id</em>}</li>
  * </ul>
  *
@@ -76,6 +79,16 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 	 */
 	protected String name = NAME_EDEFAULT;
 
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
+
 	/**
 	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -176,6 +189,18 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 			eNotify(new ENotificationImpl(this, Notification.SET, TypesPackage.DECLARATION__NAME, oldName, name));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectResolvingEList<Annotation>(Annotation.class, this, TypesPackage.DECLARATION__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191,6 +216,8 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				return getTypeArguments();
 			case TypesPackage.DECLARATION__NAME:
 				return getName();
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				return getAnnotations();
 			case TypesPackage.DECLARATION__ID:
 				return getId();
 		}
@@ -216,6 +243,10 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 			case TypesPackage.DECLARATION__NAME:
 				setName((String)newValue);
 				return;
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				getAnnotations().clear();
+				getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -237,6 +268,9 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 			case TypesPackage.DECLARATION__NAME:
 				setName(NAME_EDEFAULT);
 				return;
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				getAnnotations().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -255,6 +289,8 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				return typeArguments != null && !typeArguments.isEmpty();
 			case TypesPackage.DECLARATION__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
 			case TypesPackage.DECLARATION__ID:
 				return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
 		}
@@ -274,6 +310,12 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				default: return -1;
 			}
 		}
+		if (baseClass == AnnotatableElement.class) {
+			switch (derivedFeatureID) {
+				case TypesPackage.DECLARATION__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
+				default: return -1;
+			}
+		}
 		if (baseClass == PackageMember.class) {
 			switch (derivedFeatureID) {
 				case TypesPackage.DECLARATION__ID: return TypesPackage.PACKAGE_MEMBER__ID;
@@ -296,6 +338,12 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				default: return -1;
 			}
 		}
+		if (baseClass == AnnotatableElement.class) {
+			switch (baseFeatureID) {
+				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.DECLARATION__ANNOTATIONS;
+				default: return -1;
+			}
+		}
 		if (baseClass == PackageMember.class) {
 			switch (baseFeatureID) {
 				case TypesPackage.PACKAGE_MEMBER__ID: return TypesPackage.DECLARATION__ID;

+ 96 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/PackageMemberImpl.java

@@ -2,8 +2,14 @@
  */
 package org.yakindu.base.types.impl;
 
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.yakindu.base.base.impl.NamedElementImpl;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.PackageMember;
 import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.TypesUtil;
@@ -16,12 +22,22 @@ import org.yakindu.base.types.TypesUtil;
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.yakindu.base.types.impl.PackageMemberImpl#getAnnotations <em>Annotations</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.PackageMemberImpl#getId <em>Id</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class PackageMemberImpl extends NamedElementImpl implements PackageMember {
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
 	/**
 	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -52,6 +68,18 @@ public class PackageMemberImpl extends NamedElementImpl implements PackageMember
 	}
 
 	
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectResolvingEList<Annotation>(Annotation.class, this, TypesPackage.PACKAGE_MEMBER__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -70,12 +98,46 @@ public class PackageMemberImpl extends NamedElementImpl implements PackageMember
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS:
+				return getAnnotations();
 			case TypesPackage.PACKAGE_MEMBER__ID:
 				return getId();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS:
+				getAnnotations().clear();
+				getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS:
+				getAnnotations().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -84,10 +146,44 @@ public class PackageMemberImpl extends NamedElementImpl implements PackageMember
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
 			case TypesPackage.PACKAGE_MEMBER__ID:
 				return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == AnnotatableElement.class) {
+			switch (derivedFeatureID) {
+				case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == AnnotatableElement.class) {
+			switch (baseFeatureID) {
+				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.PACKAGE_MEMBER__ANNOTATIONS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
 } //PackageMemberImpl

+ 48 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypeAliasImpl.java

@@ -16,6 +16,8 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.PackageMember;
 import org.yakindu.base.types.Type;
 import org.yakindu.base.types.TypeAlias;
@@ -33,6 +35,7 @@ import org.yakindu.base.types.TypesUtil;
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getType <em>Type</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getTypeArguments <em>Type Arguments</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getAnnotations <em>Annotations</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getId <em>Id</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#getConstraint <em>Constraint</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.TypeAliasImpl#isAbstract <em>Abstract</em>}</li>
@@ -79,6 +82,16 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 	 */
 	protected String name = NAME_EDEFAULT;
 
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
+
 	/**
 	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -218,6 +231,18 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 			eNotify(new ENotificationImpl(this, Notification.SET, TypesPackage.TYPE_ALIAS__NAME, oldName, name));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectResolvingEList<Annotation>(Annotation.class, this, TypesPackage.TYPE_ALIAS__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
@@ -308,6 +333,8 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				return getTypeArguments();
 			case TypesPackage.TYPE_ALIAS__NAME:
 				return getName();
+			case TypesPackage.TYPE_ALIAS__ANNOTATIONS:
+				return getAnnotations();
 			case TypesPackage.TYPE_ALIAS__ID:
 				return getId();
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:
@@ -338,6 +365,10 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 			case TypesPackage.TYPE_ALIAS__NAME:
 				setName((String)newValue);
 				return;
+			case TypesPackage.TYPE_ALIAS__ANNOTATIONS:
+				getAnnotations().clear();
+				getAnnotations().addAll((Collection<? extends Annotation>)newValue);
+				return;
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:
 				getConstraint().clear();
 				getConstraint().addAll((Collection<? extends TypeConstraint>)newValue);
@@ -368,6 +399,9 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 			case TypesPackage.TYPE_ALIAS__NAME:
 				setName(NAME_EDEFAULT);
 				return;
+			case TypesPackage.TYPE_ALIAS__ANNOTATIONS:
+				getAnnotations().clear();
+				return;
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:
 				getConstraint().clear();
 				return;
@@ -394,6 +428,8 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				return typeArguments != null && !typeArguments.isEmpty();
 			case TypesPackage.TYPE_ALIAS__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case TypesPackage.TYPE_ALIAS__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
 			case TypesPackage.TYPE_ALIAS__ID:
 				return ID_EDEFAULT == null ? getId() != null : !ID_EDEFAULT.equals(getId());
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:
@@ -418,6 +454,12 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				default: return -1;
 			}
 		}
+		if (baseClass == AnnotatableElement.class) {
+			switch (derivedFeatureID) {
+				case TypesPackage.TYPE_ALIAS__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
+				default: return -1;
+			}
+		}
 		if (baseClass == PackageMember.class) {
 			switch (derivedFeatureID) {
 				case TypesPackage.TYPE_ALIAS__ID: return TypesPackage.PACKAGE_MEMBER__ID;
@@ -447,6 +489,12 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				default: return -1;
 			}
 		}
+		if (baseClass == AnnotatableElement.class) {
+			switch (baseFeatureID) {
+				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.TYPE_ALIAS__ANNOTATIONS;
+				default: return -1;
+			}
+		}
 		if (baseClass == PackageMember.class) {
 			switch (baseFeatureID) {
 				case TypesPackage.PACKAGE_MEMBER__ID: return TypesPackage.TYPE_ALIAS__ID;

+ 24 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesFactoryImpl.java

@@ -12,6 +12,8 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.ComplexType;
 import org.yakindu.base.types.Direction;
 import org.yakindu.base.types.Domain;
@@ -93,6 +95,8 @@ public class TypesFactoryImpl extends EFactoryImpl implements TypesFactory {
 			case TypesPackage.RANGE_CONSTRAINT: return createRangeConstraint();
 			case TypesPackage.DOMAIN: return createDomain();
 			case TypesPackage.TYPE_ALIAS: return createTypeAlias();
+			case TypesPackage.ANNOTATION: return createAnnotation();
+			case TypesPackage.ANNOTATABLE_ELEMENT: return createAnnotatableElement();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -298,6 +302,26 @@ public class TypesFactoryImpl extends EFactoryImpl implements TypesFactory {
 		return typeAlias;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Annotation createAnnotation() {
+		AnnotationImpl annotation = new AnnotationImpl();
+		return annotation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AnnotatableElement createAnnotatableElement() {
+		AnnotatableElementImpl annotatableElement = new AnnotatableElementImpl();
+		return annotatableElement;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 77 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesPackageImpl.java

@@ -13,6 +13,8 @@ import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.ComplexType;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.Direction;
@@ -164,6 +166,20 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 	 */
 	private EClass typeAliasEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass annotationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass annotatableElementEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -630,6 +646,51 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		return typeAliasEClass;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAnnotation() {
+		return annotationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAnnotation_Properties() {
+		return (EReference)annotationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAnnotation_Targets() {
+		return (EReference)annotationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAnnotatableElement() {
+		return annotatableElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAnnotatableElement_Annotations() {
+		return (EReference)annotatableElementEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -730,6 +791,13 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 
 		typeAliasEClass = createEClass(TYPE_ALIAS);
 
+		annotationEClass = createEClass(ANNOTATION);
+		createEReference(annotationEClass, ANNOTATION__PROPERTIES);
+		createEReference(annotationEClass, ANNOTATION__TARGETS);
+
+		annotatableElementEClass = createEClass(ANNOTATABLE_ELEMENT);
+		createEReference(annotatableElementEClass, ANNOTATABLE_ELEMENT__ANNOTATIONS);
+
 		// Create enums
 		directionEEnum = createEEnum(DIRECTION);
 	}
@@ -781,9 +849,11 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		typeParameterEClass.getESuperTypes().add(this.getType());
 		parameterizedTypeEClass.getESuperTypes().add(this.getType());
 		packageMemberEClass.getESuperTypes().add(theBasePackage.getNamedElement());
+		packageMemberEClass.getESuperTypes().add(this.getAnnotatableElement());
 		rangeConstraintEClass.getESuperTypes().add(this.getTypeConstraint());
 		typeAliasEClass.getESuperTypes().add(this.getTypedElement());
 		typeAliasEClass.getESuperTypes().add(this.getType());
+		annotationEClass.getESuperTypes().add(this.getPackageMember());
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(packageEClass, org.yakindu.base.types.Package.class, "Package", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -855,6 +925,13 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 
 		initEClass(typeAliasEClass, TypeAlias.class, "TypeAlias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
+		initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAnnotation_Properties(), this.getProperty(), null, "properties", null, 0, -1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAnnotation_Targets(), ecorePackage.getEObject(), null, "targets", null, 0, -1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(annotatableElementEClass, AnnotatableElement.class, "AnnotatableElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAnnotatableElement_Annotations(), this.getAnnotation(), null, "annotations", null, 0, -1, AnnotatableElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Initialize enums and add enum literals
 		initEEnum(directionEEnum, Direction.class, "Direction");
 		addEEnumLiteral(directionEEnum, Direction.LOCAL);

+ 38 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/util/TypesAdapterFactory.java

@@ -11,6 +11,8 @@ import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.ComplexType;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.Domain;
@@ -161,6 +163,14 @@ public class TypesAdapterFactory extends AdapterFactoryImpl {
 				return createTypeAliasAdapter();
 			}
 			@Override
+			public Adapter caseAnnotation(Annotation object) {
+				return createAnnotationAdapter();
+			}
+			@Override
+			public Adapter caseAnnotatableElement(AnnotatableElement object) {
+				return createAnnotatableElementAdapter();
+			}
+			@Override
 			public Adapter caseNamedElement(NamedElement object) {
 				return createNamedElementAdapter();
 			}
@@ -467,6 +477,34 @@ public class TypesAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.base.types.Annotation <em>Annotation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.base.types.Annotation
+	 * @generated
+	 */
+	public Adapter createAnnotationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.base.types.AnnotatableElement <em>Annotatable Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.base.types.AnnotatableElement
+	 * @generated
+	 */
+	public Adapter createAnnotatableElementAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc --> This

+ 60 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/util/TypesSwitch.java

@@ -10,6 +10,8 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
+import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.ComplexType;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.Domain;
@@ -95,6 +97,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				T result = caseType(type);
 				if (result == null) result = casePackageMember(type);
 				if (result == null) result = caseNamedElement(type);
+				if (result == null) result = caseAnnotatableElement(type);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -104,6 +107,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(declaration);
 				if (result == null) result = casePackageMember(declaration);
 				if (result == null) result = caseNamedElement(declaration);
+				if (result == null) result = caseAnnotatableElement(declaration);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -114,6 +118,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(operation);
 				if (result == null) result = casePackageMember(operation);
 				if (result == null) result = caseNamedElement(operation);
+				if (result == null) result = caseAnnotatableElement(operation);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -124,6 +129,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(property);
 				if (result == null) result = casePackageMember(property);
 				if (result == null) result = caseNamedElement(property);
+				if (result == null) result = caseAnnotatableElement(property);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -148,6 +154,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(event);
 				if (result == null) result = casePackageMember(event);
 				if (result == null) result = caseNamedElement(event);
+				if (result == null) result = caseAnnotatableElement(event);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -158,6 +165,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(enumerationType);
 				if (result == null) result = casePackageMember(enumerationType);
 				if (result == null) result = caseNamedElement(enumerationType);
+				if (result == null) result = caseAnnotatableElement(enumerationType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -167,6 +175,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(primitiveType);
 				if (result == null) result = casePackageMember(primitiveType);
 				if (result == null) result = caseNamedElement(primitiveType);
+				if (result == null) result = caseAnnotatableElement(primitiveType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -177,6 +186,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(complexType);
 				if (result == null) result = casePackageMember(complexType);
 				if (result == null) result = caseNamedElement(complexType);
+				if (result == null) result = caseAnnotatableElement(complexType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -187,6 +197,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(enumerator);
 				if (result == null) result = casePackageMember(enumerator);
 				if (result == null) result = caseNamedElement(enumerator);
+				if (result == null) result = caseAnnotatableElement(enumerator);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -202,6 +213,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(typeParameter);
 				if (result == null) result = casePackageMember(typeParameter);
 				if (result == null) result = caseNamedElement(typeParameter);
+				if (result == null) result = caseAnnotatableElement(typeParameter);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -211,6 +223,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(parameterizedType);
 				if (result == null) result = casePackageMember(parameterizedType);
 				if (result == null) result = caseNamedElement(parameterizedType);
+				if (result == null) result = caseAnnotatableElement(parameterizedType);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -218,6 +231,7 @@ public class TypesSwitch<T> extends Switch<T> {
 				PackageMember packageMember = (PackageMember)theEObject;
 				T result = casePackageMember(packageMember);
 				if (result == null) result = caseNamedElement(packageMember);
+				if (result == null) result = caseAnnotatableElement(packageMember);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -241,6 +255,22 @@ public class TypesSwitch<T> extends Switch<T> {
 				if (result == null) result = caseType(typeAlias);
 				if (result == null) result = casePackageMember(typeAlias);
 				if (result == null) result = caseNamedElement(typeAlias);
+				if (result == null) result = caseAnnotatableElement(typeAlias);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TypesPackage.ANNOTATION: {
+				Annotation annotation = (Annotation)theEObject;
+				T result = caseAnnotation(annotation);
+				if (result == null) result = casePackageMember(annotation);
+				if (result == null) result = caseNamedElement(annotation);
+				if (result == null) result = caseAnnotatableElement(annotation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case TypesPackage.ANNOTATABLE_ELEMENT: {
+				AnnotatableElement annotatableElement = (AnnotatableElement)theEObject;
+				T result = caseAnnotatableElement(annotatableElement);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -539,6 +569,36 @@ public class TypesSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotation</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Annotation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotation(Annotation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotatable Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Annotatable Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotatableElement(AnnotatableElement object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc --> This implementation returns

+ 1 - 0
plugins/org.yakindu.sct.model.sgraph.edit/plugin.properties

@@ -157,3 +157,4 @@ _UI_Statechart_imports_feature = Imports
 _UI_Import_importedNamespace_feature = Imported Namespace
 _UI_ImportDeclaration_declaration_feature = Declaration
 _UI_Statechart_domainID_feature = Domain ID
+_UI_Scope_reactions_feature = Reactions

+ 0 - 23
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/ReactiveElementItemProvider.java

@@ -73,33 +73,10 @@ public class ReactiveElementItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addReactionsPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
-	/**
-	 * This adds a property descriptor for the Reactions feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addReactionsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ReactiveElement_reactions_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ReactiveElement_reactions_feature", "_UI_ReactiveElement_type"),
-				 SGraphPackage.Literals.REACTIVE_ELEMENT__REACTIONS,
-				 false,
-				 false,
-				 false,
-				 null,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

+ 12 - 0
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/ScopeItemProvider.java

@@ -137,6 +137,7 @@ public class ScopeItemProvider
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(SGraphPackage.Literals.SCOPE__DECLARATIONS);
+			childrenFeatures.add(SGraphPackage.Literals.SCOPE__REACTIONS);
 		}
 		return childrenFeatures;
 	}
@@ -189,6 +190,7 @@ public class ScopeItemProvider
 
 		switch (notification.getFeatureID(Scope.class)) {
 			case SGraphPackage.SCOPE__DECLARATIONS:
+			case SGraphPackage.SCOPE__REACTIONS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -225,6 +227,16 @@ public class ScopeItemProvider
 			(createChildParameter
 				(SGraphPackage.Literals.SCOPE__DECLARATIONS,
 				 TypesFactory.eINSTANCE.createEvent()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.SCOPE__DECLARATIONS,
+				 TypesFactory.eINSTANCE.createEnumerator()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.SCOPE__REACTIONS,
+				 SGraphFactory.eINSTANCE.createTransition()));
 	}
 
 	/**

+ 0 - 94
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StateItemProvider.java

@@ -62,15 +62,11 @@ public class StateItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addReactionsPropertyDescriptor(object);
 			addNamespacePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addIncomingTransitionsPropertyDescriptor(object);
 			addDocumentationPropertyDescriptor(object);
 			addOrthogonalPropertyDescriptor(object);
-			addSubstatechartPropertyDescriptor(object);
-			addSubstatechartIdPropertyDescriptor(object);
-			addSubchartPropertyDescriptor(object);
 			addSimplePropertyDescriptor(object);
 			addCompositePropertyDescriptor(object);
 			addLeafPropertyDescriptor(object);
@@ -78,28 +74,6 @@ public class StateItemProvider
 		return itemPropertyDescriptors;
 	}
 
-	/**
-	 * This adds a property descriptor for the Reactions feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addReactionsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ReactiveElement_reactions_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ReactiveElement_reactions_feature", "_UI_ReactiveElement_type"),
-				 SGraphPackage.Literals.REACTIVE_ELEMENT__REACTIONS,
-				 false,
-				 false,
-				 false,
-				 null,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This adds a property descriptor for the Namespace feature.
 	 * <!-- begin-user-doc -->
@@ -210,72 +184,6 @@ public class StateItemProvider
 				 null));
 	}
 
-	/**
-	 * This adds a property descriptor for the Substatechart feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSubstatechartPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_State_substatechart_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_State_substatechart_feature", "_UI_State_type"),
-				 SGraphPackage.Literals.STATE__SUBSTATECHART,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Substatechart Id feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSubstatechartIdPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_State_substatechartId_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_State_substatechartId_feature", "_UI_State_type"),
-				 SGraphPackage.Literals.STATE__SUBSTATECHART_ID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Subchart feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSubchartPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_State_subchart_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_State_subchart_feature", "_UI_State_type"),
-				 SGraphPackage.Literals.STATE__SUBCHART,
-				 false,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This adds a property descriptor for the Simple feature.
 	 * <!-- begin-user-doc -->
@@ -416,8 +324,6 @@ public class StateItemProvider
 			case SGraphPackage.STATE__NAME:
 			case SGraphPackage.STATE__DOCUMENTATION:
 			case SGraphPackage.STATE__ORTHOGONAL:
-			case SGraphPackage.STATE__SUBSTATECHART_ID:
-			case SGraphPackage.STATE__SUBCHART:
 			case SGraphPackage.STATE__SIMPLE:
 			case SGraphPackage.STATE__COMPOSITE:
 			case SGraphPackage.STATE__LEAF:

+ 0 - 23
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StatechartItemProvider.java

@@ -62,7 +62,6 @@ public class StatechartItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addReactionsPropertyDescriptor(object);
 			addNamespacePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addDocumentationPropertyDescriptor(object);
@@ -71,28 +70,6 @@ public class StatechartItemProvider
 		return itemPropertyDescriptors;
 	}
 
-	/**
-	 * This adds a property descriptor for the Reactions feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addReactionsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ReactiveElement_reactions_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ReactiveElement_reactions_feature", "_UI_ReactiveElement_type"),
-				 SGraphPackage.Literals.REACTIVE_ELEMENT__REACTIONS,
-				 false,
-				 false,
-				 false,
-				 null,
-				 null,
-				 null));
-	}
-
 	/**
 	 * This adds a property descriptor for the Namespace feature.
 	 * <!-- begin-user-doc -->

+ 2 - 7
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore

@@ -41,8 +41,6 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
   <eClassifiers xsi:type="ecore:EClass" name="ReactiveElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
-        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="localReactions" upperBound="-1"
         eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
   </eClassifiers>
@@ -70,6 +68,8 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="variables" unique="false"
         upperBound="-1" eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Property"
         changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
+        eType="#//Reaction" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
@@ -80,11 +80,6 @@
   <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//RegularState #//CompositeElement ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="orthogonal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="substatechart" eType="#//Statechart"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="substatechartId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="subchart" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="simple" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"

+ 0 - 17
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ReactiveElement.java

@@ -22,7 +22,6 @@ import org.eclipse.emf.ecore.EObject;
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.ReactiveElement#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.ReactiveElement#getLocalReactions <em>Local Reactions</em>}</li>
  * </ul>
  *
@@ -38,22 +37,6 @@ public interface ReactiveElement extends EObject {
 	 */
 	String copyright = "Copyright (c) 2011 committers of YAKINDU and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\nContributors:\r\ncommitters of YAKINDU - initial API and implementation\r\n";
 
-	/**
-	 * Returns the value of the '<em><b>Reactions</b></em>' reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Reaction}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Reactions</em>' reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Reactions</em>' reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getReactiveElement_Reactions()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	EList<Reaction> getReactions();
-
 	/**
 	 * Returns the value of the '<em><b>Local Reactions</b></em>' reference list.
 	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Reaction}.

+ 63 - 156
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java

@@ -542,15 +542,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int STATECHART__SPECIFICATION = SPECIFICATION_ELEMENT__SPECIFICATION;
 
-	/**
-	 * The feature id for the '<em><b>Reactions</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATECHART__REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 0;
-
 	/**
 	 * The feature id for the '<em><b>Local Reactions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -558,7 +549,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__LOCAL_REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 1;
+	int STATECHART__LOCAL_REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Scopes</b></em>' containment reference list.
@@ -567,7 +558,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__SCOPES = SPECIFICATION_ELEMENT_FEATURE_COUNT + 2;
+	int STATECHART__SCOPES = SPECIFICATION_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
@@ -576,7 +567,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__NAMESPACE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 3;
+	int STATECHART__NAMESPACE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
@@ -585,7 +576,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__REGIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 4;
+	int STATECHART__REGIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -594,7 +585,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__NAME = SPECIFICATION_ELEMENT_FEATURE_COUNT + 5;
+	int STATECHART__NAME = SPECIFICATION_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Documentation</b></em>' attribute.
@@ -603,7 +594,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__DOCUMENTATION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 6;
+	int STATECHART__DOCUMENTATION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Domain ID</b></em>' attribute.
@@ -612,7 +603,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__DOMAIN_ID = SPECIFICATION_ELEMENT_FEATURE_COUNT + 7;
+	int STATECHART__DOMAIN_ID = SPECIFICATION_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Imports</b></em>' containment reference list.
@@ -621,7 +612,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART__IMPORTS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 8;
+	int STATECHART__IMPORTS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The number of structural features of the '<em>Statechart</em>' class.
@@ -630,7 +621,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATECHART_FEATURE_COUNT = SPECIFICATION_ELEMENT_FEATURE_COUNT + 9;
+	int STATECHART_FEATURE_COUNT = SPECIFICATION_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sgraph.impl.EntryImpl <em>Entry</em>}' class.
@@ -801,15 +792,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int EXIT_FEATURE_COUNT = PSEUDOSTATE_FEATURE_COUNT + 0;
 
-	/**
-	 * The feature id for the '<em><b>Reactions</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REACTIVE_ELEMENT__REACTIONS = 0;
-
 	/**
 	 * The feature id for the '<em><b>Local Reactions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -817,7 +799,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int REACTIVE_ELEMENT__LOCAL_REACTIONS = 1;
+	int REACTIVE_ELEMENT__LOCAL_REACTIONS = 0;
 
 	/**
 	 * The number of structural features of the '<em>Reactive Element</em>' class.
@@ -826,7 +808,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int REACTIVE_ELEMENT_FEATURE_COUNT = 2;
+	int REACTIVE_ELEMENT_FEATURE_COUNT = 1;
 
 	/**
 	 * The feature id for the '<em><b>Trigger</b></em>' containment reference.
@@ -928,6 +910,15 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int SCOPE__VARIABLES = 2;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCOPE__REACTIONS = 3;
+
 	/**
 	 * The number of structural features of the '<em>Scope</em>' class.
 	 * <!-- begin-user-doc -->
@@ -935,7 +926,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int SCOPE_FEATURE_COUNT = 3;
+	int SCOPE_FEATURE_COUNT = 4;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sgraph.impl.ScopedElementImpl <em>Scoped Element</em>}' class.
@@ -1038,15 +1029,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int STATE__SPECIFICATION = SPECIFICATION_ELEMENT__SPECIFICATION;
 
-	/**
-	 * The feature id for the '<em><b>Reactions</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE__REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 0;
-
 	/**
 	 * The feature id for the '<em><b>Local Reactions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -1054,7 +1036,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__LOCAL_REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 1;
+	int STATE__LOCAL_REACTIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Scopes</b></em>' containment reference list.
@@ -1063,7 +1045,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__SCOPES = SPECIFICATION_ELEMENT_FEATURE_COUNT + 2;
+	int STATE__SCOPES = SPECIFICATION_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
@@ -1072,7 +1054,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__NAMESPACE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 3;
+	int STATE__NAMESPACE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1081,7 +1063,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__NAME = SPECIFICATION_ELEMENT_FEATURE_COUNT + 4;
+	int STATE__NAME = SPECIFICATION_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Parent Region</b></em>' container reference.
@@ -1090,7 +1072,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__PARENT_REGION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 5;
+	int STATE__PARENT_REGION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Incoming Transitions</b></em>' reference list.
@@ -1099,7 +1081,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__INCOMING_TRANSITIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 6;
+	int STATE__INCOMING_TRANSITIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Outgoing Transitions</b></em>' containment reference list.
@@ -1108,7 +1090,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__OUTGOING_TRANSITIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 7;
+	int STATE__OUTGOING_TRANSITIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
@@ -1117,7 +1099,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__REGIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 8;
+	int STATE__REGIONS = SPECIFICATION_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Documentation</b></em>' attribute.
@@ -1126,7 +1108,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__DOCUMENTATION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 9;
+	int STATE__DOCUMENTATION = SPECIFICATION_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Orthogonal</b></em>' attribute.
@@ -1135,34 +1117,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__ORTHOGONAL = SPECIFICATION_ELEMENT_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>Substatechart</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE__SUBSTATECHART = SPECIFICATION_ELEMENT_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>Substatechart Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE__SUBSTATECHART_ID = SPECIFICATION_ELEMENT_FEATURE_COUNT + 12;
-
-	/**
-	 * The feature id for the '<em><b>Subchart</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE__SUBCHART = SPECIFICATION_ELEMENT_FEATURE_COUNT + 13;
+	int STATE__ORTHOGONAL = SPECIFICATION_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Simple</b></em>' attribute.
@@ -1171,7 +1126,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__SIMPLE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 14;
+	int STATE__SIMPLE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 10;
 
 	/**
 	 * The feature id for the '<em><b>Composite</b></em>' attribute.
@@ -1180,7 +1135,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__COMPOSITE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 15;
+	int STATE__COMPOSITE = SPECIFICATION_ELEMENT_FEATURE_COUNT + 11;
 
 	/**
 	 * The feature id for the '<em><b>Leaf</b></em>' attribute.
@@ -1189,7 +1144,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE__LEAF = SPECIFICATION_ELEMENT_FEATURE_COUNT + 16;
+	int STATE__LEAF = SPECIFICATION_ELEMENT_FEATURE_COUNT + 12;
 
 	/**
 	 * The number of structural features of the '<em>State</em>' class.
@@ -1198,7 +1153,7 @@ public interface SGraphPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int STATE_FEATURE_COUNT = SPECIFICATION_ELEMENT_FEATURE_COUNT + 17;
+	int STATE_FEATURE_COUNT = SPECIFICATION_ELEMENT_FEATURE_COUNT + 13;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sgraph.impl.CompositeElementImpl <em>Composite Element</em>}' class.
@@ -1293,6 +1248,15 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int IMPORT_DECLARATION__NAME = TypesPackage.DECLARATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMPORT_DECLARATION__ANNOTATIONS = TypesPackage.DECLARATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1490,39 +1454,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	EAttribute getState_Orthogonal();
 
-	/**
-	 * Returns the meta object for the reference '{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Substatechart</em>'.
-	 * @see org.yakindu.sct.model.sgraph.State#getSubstatechart()
-	 * @see #getState()
-	 * @generated
-	 */
-	EReference getState_Substatechart();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Substatechart Id</em>'.
-	 * @see org.yakindu.sct.model.sgraph.State#getSubstatechartId()
-	 * @see #getState()
-	 * @generated
-	 */
-	EAttribute getState_SubstatechartId();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgraph.State#isSubchart <em>Subchart</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Subchart</em>'.
-	 * @see org.yakindu.sct.model.sgraph.State#isSubchart()
-	 * @see #getState()
-	 * @generated
-	 */
-	EAttribute getState_Subchart();
-
 	/**
 	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgraph.State#isSimple <em>Simple</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1796,17 +1727,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	EClass getReactiveElement();
 
-	/**
-	 * Returns the meta object for the reference list '{@link org.yakindu.sct.model.sgraph.ReactiveElement#getReactions <em>Reactions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Reactions</em>'.
-	 * @see org.yakindu.sct.model.sgraph.ReactiveElement#getReactions()
-	 * @see #getReactiveElement()
-	 * @generated
-	 */
-	EReference getReactiveElement_Reactions();
-
 	/**
 	 * Returns the meta object for the reference list '{@link org.yakindu.sct.model.sgraph.ReactiveElement#getLocalReactions <em>Local Reactions</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1871,6 +1791,17 @@ public interface SGraphPackage extends EPackage {
 	 */
 	EReference getScope_Variables();
 
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.sgraph.Scope#getReactions <em>Reactions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Reactions</em>'.
+	 * @see org.yakindu.sct.model.sgraph.Scope#getReactions()
+	 * @see #getScope()
+	 * @generated
+	 */
+	EReference getScope_Reactions();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgraph.ScopedElement <em>Scoped Element</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2079,30 +2010,6 @@ public interface SGraphPackage extends EPackage {
 		 */
 		EAttribute STATE__ORTHOGONAL = eINSTANCE.getState_Orthogonal();
 
-		/**
-		 * The meta object literal for the '<em><b>Substatechart</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference STATE__SUBSTATECHART = eINSTANCE.getState_Substatechart();
-
-		/**
-		 * The meta object literal for the '<em><b>Substatechart Id</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute STATE__SUBSTATECHART_ID = eINSTANCE.getState_SubstatechartId();
-
-		/**
-		 * The meta object literal for the '<em><b>Subchart</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute STATE__SUBCHART = eINSTANCE.getState_Subchart();
-
 		/**
 		 * The meta object literal for the '<em><b>Simple</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
@@ -2337,14 +2244,6 @@ public interface SGraphPackage extends EPackage {
 		 */
 		EClass REACTIVE_ELEMENT = eINSTANCE.getReactiveElement();
 
-		/**
-		 * The meta object literal for the '<em><b>Reactions</b></em>' reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference REACTIVE_ELEMENT__REACTIONS = eINSTANCE.getReactiveElement_Reactions();
-
 		/**
 		 * The meta object literal for the '<em><b>Local Reactions</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2397,6 +2296,14 @@ public interface SGraphPackage extends EPackage {
 		 */
 		EReference SCOPE__VARIABLES = eINSTANCE.getScope_Variables();
 
+		/**
+		 * The meta object literal for the '<em><b>Reactions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SCOPE__REACTIONS = eINSTANCE.getScope_Reactions();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sgraph.impl.ScopedElementImpl <em>Scoped Element</em>}' class.
 		 * <!-- begin-user-doc -->

+ 17 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Scope.java

@@ -28,6 +28,7 @@ import org.yakindu.base.types.Property;
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getDeclarations <em>Declarations</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getEvents <em>Events</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getVariables <em>Variables</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getReactions <em>Reactions</em>}</li>
  * </ul>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getScope()
@@ -90,4 +91,20 @@ public interface Scope extends EObject {
 	 */
 	EList<Property> getVariables();
 
+	/**
+	 * Returns the value of the '<em><b>Reactions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Reaction}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reactions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Reactions</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getScope_Reactions()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<Reaction> getReactions();
+
 } // Scope

+ 0 - 70
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/State.java

@@ -23,9 +23,6 @@ import org.yakindu.base.base.DocumentedElement;
  * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.State#isOrthogonal <em>Orthogonal</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isSubchart <em>Subchart</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.State#isSimple <em>Simple</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.State#isComposite <em>Composite</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.State#isLeaf <em>Leaf</em>}</li>
@@ -58,73 +55,6 @@ public interface State extends SpecificationElement, ReactiveElement, ScopedElem
 	 */
 	boolean isOrthogonal();
 
-	/**
-	 * Returns the value of the '<em><b>Substatechart</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Substatechart</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Substatechart</em>' reference.
-	 * @see #setSubstatechart(Statechart)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Substatechart()
-	 * @model transient="true"
-	 * @generated
-	 */
-	Statechart getSubstatechart();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Substatechart</em>' reference.
-	 * @see #getSubstatechart()
-	 * @generated
-	 */
-	void setSubstatechart(Statechart value);
-
-	/**
-	 * Returns the value of the '<em><b>Substatechart Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Substatechart Id</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Substatechart Id</em>' attribute.
-	 * @see #setSubstatechartId(String)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_SubstatechartId()
-	 * @model
-	 * @generated
-	 */
-	String getSubstatechartId();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Substatechart Id</em>' attribute.
-	 * @see #getSubstatechartId()
-	 * @generated
-	 */
-	void setSubstatechartId(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Subchart</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Subchart</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Subchart</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Subchart()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isSubchart();
-
 	/**
 	 * Returns the value of the '<em><b>Simple</b></em>' attribute.
 	 * <!-- begin-user-doc -->

+ 0 - 5
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactiveElementImpl.java

@@ -25,7 +25,6 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactiveElementImpl#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactiveElementImpl#getLocalReactions <em>Local Reactions</em>}</li>
  * </ul>
  *
@@ -84,8 +83,6 @@ public abstract class ReactiveElementImpl extends EObjectImpl implements Reactiv
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SGraphPackage.REACTIVE_ELEMENT__REACTIONS:
-				return getReactions();
 			case SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS:
 				return getLocalReactions();
 		}
@@ -100,8 +97,6 @@ public abstract class ReactiveElementImpl extends EObjectImpl implements Reactiv
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SGraphPackage.REACTIVE_ELEMENT__REACTIONS:
-				return !getReactions().isEmpty();
 			case SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS:
 				return !getLocalReactions().isEmpty();
 		}

+ 0 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphFactoryImpl.java

@@ -16,7 +16,6 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.yakindu.sct.model.sgraph.*;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.ChoiceKind;
 import org.yakindu.sct.model.sgraph.Entry;

+ 15 - 48
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java

@@ -425,40 +425,13 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		return (EAttribute)stateEClass.getEStructuralFeatures().get(0);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getState_Substatechart() {
-		return (EReference)stateEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getState_SubstatechartId() {
-		return (EAttribute)stateEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getState_Subchart() {
-		return (EAttribute)stateEClass.getEStructuralFeatures().get(3);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EAttribute getState_Simple() {
-		return (EAttribute)stateEClass.getEStructuralFeatures().get(4);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -467,7 +440,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Composite() {
-		return (EAttribute)stateEClass.getEStructuralFeatures().get(5);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -476,7 +449,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * @generated
 	 */
 	public EAttribute getState_Leaf() {
-		return (EAttribute)stateEClass.getEStructuralFeatures().get(6);
+		return (EAttribute)stateEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -686,22 +659,13 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		return reactiveElementEClass;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getReactiveElement_Reactions() {
-		return (EReference)reactiveElementEClass.getEStructuralFeatures().get(0);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public EReference getReactiveElement_LocalReactions() {
-		return (EReference)reactiveElementEClass.getEStructuralFeatures().get(1);
+		return (EReference)reactiveElementEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -749,6 +713,15 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		return (EReference)scopeEClass.getEStructuralFeatures().get(2);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getScope_Reactions() {
+		return (EReference)scopeEClass.getEStructuralFeatures().get(3);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -860,7 +833,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		exitEClass = createEClass(EXIT);
 
 		reactiveElementEClass = createEClass(REACTIVE_ELEMENT);
-		createEReference(reactiveElementEClass, REACTIVE_ELEMENT__REACTIONS);
 		createEReference(reactiveElementEClass, REACTIVE_ELEMENT__LOCAL_REACTIONS);
 
 		reactionEClass = createEClass(REACTION);
@@ -881,6 +853,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		createEReference(scopeEClass, SCOPE__DECLARATIONS);
 		createEReference(scopeEClass, SCOPE__EVENTS);
 		createEReference(scopeEClass, SCOPE__VARIABLES);
+		createEReference(scopeEClass, SCOPE__REACTIONS);
 
 		scopedElementEClass = createEClass(SCOPED_ELEMENT);
 		createEReference(scopedElementEClass, SCOPED_ELEMENT__SCOPES);
@@ -890,9 +863,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 
 		stateEClass = createEClass(STATE);
 		createEAttribute(stateEClass, STATE__ORTHOGONAL);
-		createEReference(stateEClass, STATE__SUBSTATECHART);
-		createEAttribute(stateEClass, STATE__SUBSTATECHART_ID);
-		createEAttribute(stateEClass, STATE__SUBCHART);
 		createEAttribute(stateEClass, STATE__SIMPLE);
 		createEAttribute(stateEClass, STATE__COMPOSITE);
 		createEAttribute(stateEClass, STATE__LEAF);
@@ -1002,7 +972,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		initEClass(exitEClass, Exit.class, "Exit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(reactiveElementEClass, ReactiveElement.class, "ReactiveElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getReactiveElement_Reactions(), this.getReaction(), null, "reactions", null, 0, -1, ReactiveElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getReactiveElement_LocalReactions(), this.getReaction(), null, "localReactions", null, 0, -1, ReactiveElement.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
 		initEClass(reactionEClass, Reaction.class, "Reaction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1023,6 +992,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		initEReference(getScope_Declarations(), theTypesPackage.getDeclaration(), null, "declarations", null, 0, -1, Scope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getScope_Events(), theTypesPackage.getEvent(), null, "events", null, 0, -1, Scope.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getScope_Variables(), theTypesPackage.getProperty(), null, "variables", null, 0, -1, Scope.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getScope_Reactions(), this.getReaction(), null, "reactions", null, 0, -1, Scope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(scopedElementEClass, ScopedElement.class, "ScopedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getScopedElement_Scopes(), this.getScope(), null, "scopes", null, 0, -1, ScopedElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1032,9 +1002,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 
 		initEClass(stateEClass, State.class, "State", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getState_Orthogonal(), ecorePackage.getEBoolean(), "orthogonal", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getState_Substatechart(), this.getStatechart(), null, "substatechart", null, 0, 1, State.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getState_SubstatechartId(), ecorePackage.getEString(), "substatechartId", null, 0, 1, State.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getState_Subchart(), ecorePackage.getEBoolean(), "subchart", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEAttribute(getState_Simple(), ecorePackage.getEBoolean(), "simple", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEAttribute(getState_Composite(), ecorePackage.getEBoolean(), "composite", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEAttribute(getState_Leaf(), ecorePackage.getEBoolean(), "leaf", null, 0, 1, State.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

+ 37 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ScopeImpl.java

@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.Event;
 import org.yakindu.base.types.Property;
+import org.yakindu.sct.model.sgraph.Reaction;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Scope;
 import org.yakindu.sct.model.sgraph.util.DerivedSubsetEObjectEList;
@@ -36,6 +37,7 @@ import org.yakindu.sct.model.sgraph.util.DerivedSubsetEObjectEList;
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getDeclarations <em>Declarations</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getEvents <em>Events</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getVariables <em>Variables</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getReactions <em>Reactions</em>}</li>
  * </ul>
  *
  * @generated
@@ -58,6 +60,16 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 	 */
 	protected EList<Declaration> declarations;
 
+	/**
+	 * The cached value of the '{@link #getReactions() <em>Reactions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReactions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Reaction> reactions;
+
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
@@ -108,6 +120,18 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 				SGraphPackage.SCOPE__DECLARATIONS);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Reaction> getReactions() {
+		if (reactions == null) {
+			reactions = new EObjectContainmentEList.Resolving<Reaction>(Reaction.class, this, SGraphPackage.SCOPE__REACTIONS);
+		}
+		return reactions;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -118,6 +142,8 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 		switch (featureID) {
 			case SGraphPackage.SCOPE__DECLARATIONS:
 				return ((InternalEList<?>)getDeclarations()).basicRemove(otherEnd, msgs);
+			case SGraphPackage.SCOPE__REACTIONS:
+				return ((InternalEList<?>)getReactions()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -135,6 +161,8 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 				return getEvents();
 			case SGraphPackage.SCOPE__VARIABLES:
 				return getVariables();
+			case SGraphPackage.SCOPE__REACTIONS:
+				return getReactions();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -151,6 +179,10 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 				getDeclarations().clear();
 				getDeclarations().addAll((Collection<? extends Declaration>)newValue);
 				return;
+			case SGraphPackage.SCOPE__REACTIONS:
+				getReactions().clear();
+				getReactions().addAll((Collection<? extends Reaction>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -165,6 +197,9 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 			case SGraphPackage.SCOPE__DECLARATIONS:
 				getDeclarations().clear();
 				return;
+			case SGraphPackage.SCOPE__REACTIONS:
+				getReactions().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -182,6 +217,8 @@ public class ScopeImpl extends EObjectImpl implements Scope {
 				return !getEvents().isEmpty();
 			case SGraphPackage.SCOPE__VARIABLES:
 				return !getVariables().isEmpty();
+			case SGraphPackage.SCOPE__REACTIONS:
+				return reactions != null && !reactions.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}

+ 1 - 152
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java

@@ -27,7 +27,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.NamedElement;
-import org.yakindu.base.types.Declaration;
 import org.yakindu.sct.model.sgraph.CompositeElement;
 import org.yakindu.sct.model.sgraph.Reaction;
 import org.yakindu.sct.model.sgraph.ReactiveElement;
@@ -37,7 +36,6 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Scope;
 import org.yakindu.sct.model.sgraph.ScopedElement;
 import org.yakindu.sct.model.sgraph.State;
-import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
 
@@ -48,7 +46,6 @@ import org.yakindu.sct.model.sgraph.Vertex;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getLocalReactions <em>Local Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getScopes <em>Scopes</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getNamespace <em>Namespace</em>}</li>
@@ -59,9 +56,6 @@ import org.yakindu.sct.model.sgraph.Vertex;
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getRegions <em>Regions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getDocumentation <em>Documentation</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isOrthogonal <em>Orthogonal</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getSubstatechart <em>Substatechart</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getSubstatechartId <em>Substatechart Id</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isSubchart <em>Subchart</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isSimple <em>Simple</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isComposite <em>Composite</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isLeaf <em>Leaf</em>}</li>
@@ -180,45 +174,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	 */
 	protected static final boolean ORTHOGONAL_EDEFAULT = false;
 
-	/**
-	 * The cached value of the '{@link #getSubstatechart() <em>Substatechart</em>}' reference.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @see #getSubstatechart()
-	 * @generated
-	 * @ordered
-	 */
-	protected Statechart substatechart;
-
-	/**
-	 * The default value of the '{@link #getSubstatechartId() <em>Substatechart Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @see #getSubstatechartId()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SUBSTATECHART_ID_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSubstatechartId() <em>Substatechart Id</em>}' attribute.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
-	 * @see #getSubstatechartId()
-	 * @generated
-	 * @ordered
-	 */
-	protected String substatechartId = SUBSTATECHART_ID_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #isSubchart() <em>Subchart</em>}' attribute.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @see #isSubchart()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean SUBCHART_EDEFAULT = false;
-
 	/**
 	 * The default value of the '{@link #isSimple() <em>Simple</em>}' attribute.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -286,12 +241,7 @@ public class StateImpl extends SpecificationElementImpl implements State {
 				Reaction.class);
 		EList<Scope> scopes = getScopes();
 		for (Scope scope : scopes) {
-			EList<Declaration> declarations = scope.getDeclarations();
-			for (Declaration declaration : declarations) {
-				if (declaration instanceof Reaction) {
-					result.add((Reaction) declaration);
-				}
-			}
+			result.addAll(scope.getReactions());
 		}
 		return result;
 	}
@@ -454,78 +404,12 @@ public class StateImpl extends SpecificationElementImpl implements State {
 		return getRegions().size() > 1;
 	}
 
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Statechart getSubstatechart() {
-		if (substatechart != null && substatechart.eIsProxy()) {
-			InternalEObject oldSubstatechart = (InternalEObject)substatechart;
-			substatechart = (Statechart)eResolveProxy(oldSubstatechart);
-			if (substatechart != oldSubstatechart) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SGraphPackage.STATE__SUBSTATECHART, oldSubstatechart, substatechart));
-			}
-		}
-		return substatechart;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Statechart basicGetSubstatechart() {
-		return substatechart;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSubstatechart(Statechart newSubstatechart) {
-		Statechart oldSubstatechart = substatechart;
-		substatechart = newSubstatechart;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__SUBSTATECHART, oldSubstatechart, substatechart));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getSubstatechartId() {
-		return substatechartId;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSubstatechartId(String newSubstatechartId) {
-		String oldSubstatechartId = substatechartId;
-		substatechartId = newSubstatechartId;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__SUBSTATECHART_ID, oldSubstatechartId, substatechartId));
-	}
-
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public boolean isSubchart() {
-		return substatechart != null;
-	}
-
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
 	public boolean isSimple() {
-		if (isSubchart()) {
-			return false;
-		}
 		if (isComposite()) {
 			for (Region r : getRegions()) {
 				for (Vertex v : r.getVertices()) {
@@ -554,8 +438,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	 * @generated NOT
 	 */
 	public boolean isLeaf() {
-		if (isSubchart())
-			return false;
 		EList<Region> subRegions = getRegions();
 		for (Region region : subRegions) {
 			if (region.getVertices().size() > 0)
@@ -630,8 +512,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SGraphPackage.STATE__REACTIONS:
-				return getReactions();
 			case SGraphPackage.STATE__LOCAL_REACTIONS:
 				return getLocalReactions();
 			case SGraphPackage.STATE__SCOPES:
@@ -653,13 +533,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 				return getDocumentation();
 			case SGraphPackage.STATE__ORTHOGONAL:
 				return isOrthogonal();
-			case SGraphPackage.STATE__SUBSTATECHART:
-				if (resolve) return getSubstatechart();
-				return basicGetSubstatechart();
-			case SGraphPackage.STATE__SUBSTATECHART_ID:
-				return getSubstatechartId();
-			case SGraphPackage.STATE__SUBCHART:
-				return isSubchart();
 			case SGraphPackage.STATE__SIMPLE:
 				return isSimple();
 			case SGraphPackage.STATE__COMPOSITE:
@@ -706,12 +579,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 			case SGraphPackage.STATE__DOCUMENTATION:
 				setDocumentation((String)newValue);
 				return;
-			case SGraphPackage.STATE__SUBSTATECHART:
-				setSubstatechart((Statechart)newValue);
-				return;
-			case SGraphPackage.STATE__SUBSTATECHART_ID:
-				setSubstatechartId((String)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -747,12 +614,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 			case SGraphPackage.STATE__DOCUMENTATION:
 				setDocumentation(DOCUMENTATION_EDEFAULT);
 				return;
-			case SGraphPackage.STATE__SUBSTATECHART:
-				setSubstatechart((Statechart)null);
-				return;
-			case SGraphPackage.STATE__SUBSTATECHART_ID:
-				setSubstatechartId(SUBSTATECHART_ID_EDEFAULT);
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -764,8 +625,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SGraphPackage.STATE__REACTIONS:
-				return !getReactions().isEmpty();
 			case SGraphPackage.STATE__LOCAL_REACTIONS:
 				return !getLocalReactions().isEmpty();
 			case SGraphPackage.STATE__SCOPES:
@@ -786,12 +645,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 				return DOCUMENTATION_EDEFAULT == null ? documentation != null : !DOCUMENTATION_EDEFAULT.equals(documentation);
 			case SGraphPackage.STATE__ORTHOGONAL:
 				return isOrthogonal() != ORTHOGONAL_EDEFAULT;
-			case SGraphPackage.STATE__SUBSTATECHART:
-				return substatechart != null;
-			case SGraphPackage.STATE__SUBSTATECHART_ID:
-				return SUBSTATECHART_ID_EDEFAULT == null ? substatechartId != null : !SUBSTATECHART_ID_EDEFAULT.equals(substatechartId);
-			case SGraphPackage.STATE__SUBCHART:
-				return isSubchart() != SUBCHART_EDEFAULT;
 			case SGraphPackage.STATE__SIMPLE:
 				return isSimple() != SIMPLE_EDEFAULT;
 			case SGraphPackage.STATE__COMPOSITE:
@@ -810,7 +663,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ReactiveElement.class) {
 			switch (derivedFeatureID) {
-				case SGraphPackage.STATE__REACTIONS: return SGraphPackage.REACTIVE_ELEMENT__REACTIONS;
 				case SGraphPackage.STATE__LOCAL_REACTIONS: return SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS;
 				default: return -1;
 			}
@@ -864,7 +716,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ReactiveElement.class) {
 			switch (baseFeatureID) {
-				case SGraphPackage.REACTIVE_ELEMENT__REACTIONS: return SGraphPackage.STATE__REACTIONS;
 				case SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS: return SGraphPackage.STATE__LOCAL_REACTIONS;
 				default: return -1;
 			}
@@ -925,8 +776,6 @@ public class StateImpl extends SpecificationElementImpl implements State {
 		result.append(name);
 		result.append(", documentation: ");
 		result.append(documentation);
-		result.append(", substatechartId: ");
-		result.append(substatechartId);
 		result.append(')');
 		return result.toString();
 	}

+ 1 - 14
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java

@@ -26,7 +26,6 @@ import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
-import org.yakindu.base.types.Declaration;
 import org.yakindu.sct.model.sgraph.CompositeElement;
 import org.yakindu.sct.model.sgraph.Import;
 import org.yakindu.sct.model.sgraph.Reaction;
@@ -44,7 +43,6 @@ import org.yakindu.sct.model.sgraph.Statechart;
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.StatechartImpl#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StatechartImpl#getLocalReactions <em>Local Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StatechartImpl#getScopes <em>Scopes</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.StatechartImpl#getNamespace <em>Namespace</em>}</li>
@@ -208,12 +206,7 @@ public class StatechartImpl extends SpecificationElementImpl implements
 				Reaction.class);
 		EList<Scope> scopes = getScopes();
 		for (Scope scope : scopes) {
-			EList<Declaration> declarations = scope.getDeclarations();
-			for (Declaration declaration : declarations) {
-				if (declaration instanceof Reaction) {
-					result.add((Reaction) declaration);
-				}
-			}
+				result.addAll(scope.getReactions());
 		}
 		return result;
 	}
@@ -370,8 +363,6 @@ public class StatechartImpl extends SpecificationElementImpl implements
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case SGraphPackage.STATECHART__REACTIONS:
-				return getReactions();
 			case SGraphPackage.STATECHART__LOCAL_REACTIONS:
 				return getLocalReactions();
 			case SGraphPackage.STATECHART__SCOPES:
@@ -467,8 +458,6 @@ public class StatechartImpl extends SpecificationElementImpl implements
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SGraphPackage.STATECHART__REACTIONS:
-				return !getReactions().isEmpty();
 			case SGraphPackage.STATECHART__LOCAL_REACTIONS:
 				return !getLocalReactions().isEmpty();
 			case SGraphPackage.STATECHART__SCOPES:
@@ -497,7 +486,6 @@ public class StatechartImpl extends SpecificationElementImpl implements
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ReactiveElement.class) {
 			switch (derivedFeatureID) {
-				case SGraphPackage.STATECHART__REACTIONS: return SGraphPackage.REACTIVE_ELEMENT__REACTIONS;
 				case SGraphPackage.STATECHART__LOCAL_REACTIONS: return SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS;
 				default: return -1;
 			}
@@ -544,7 +532,6 @@ public class StatechartImpl extends SpecificationElementImpl implements
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ReactiveElement.class) {
 			switch (baseFeatureID) {
-				case SGraphPackage.REACTIVE_ELEMENT__REACTIONS: return SGraphPackage.STATECHART__REACTIONS;
 				case SGraphPackage.REACTIVE_ELEMENT__LOCAL_REACTIONS: return SGraphPackage.STATECHART__LOCAL_REACTIONS;
 				default: return -1;
 			}

+ 19 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java

@@ -17,6 +17,7 @@ import org.eclipse.emf.ecore.EObject;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.PackageMember;
 import org.yakindu.base.types.TypedElement;
@@ -218,6 +219,10 @@ public class SGraphAdapterFactory extends AdapterFactoryImpl {
 				return createTypedElementAdapter();
 			}
 			@Override
+			public Adapter caseAnnotatableElement(AnnotatableElement object) {
+				return createAnnotatableElementAdapter();
+			}
+			@Override
 			public Adapter casePackageMember(PackageMember object) {
 				return createPackageMemberAdapter();
 			}
@@ -329,6 +334,20 @@ public class SGraphAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.base.types.AnnotatableElement <em>Annotatable Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.base.types.AnnotatableElement
+	 * @generated
+	 */
+	public Adapter createAnnotatableElementAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link org.yakindu.base.types.PackageMember <em>Package Member</em>}'.
 	 * <!-- begin-user-doc -->

+ 17 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java

@@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.util.Switch;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.AnnotatableElement;
 import org.yakindu.base.types.Declaration;
 import org.yakindu.base.types.PackageMember;
 import org.yakindu.base.types.TypedElement;
@@ -287,6 +288,7 @@ public class SGraphSwitch<T> extends Switch<T> {
 				if (result == null) result = caseTypedElement(importDeclaration);
 				if (result == null) result = casePackageMember(importDeclaration);
 				if (result == null) result = caseNamedElement(importDeclaration);
+				if (result == null) result = caseAnnotatableElement(importDeclaration);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -384,6 +386,21 @@ public class SGraphSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Annotatable Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Annotatable Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAnnotatableElement(AnnotatableElement object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Package Member</em>'.
 	 * <!-- begin-user-doc -->

+ 6 - 6
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventDefinitionItemProvider.java

@@ -19,6 +19,7 @@ import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.yakindu.base.types.Event;
 import org.yakindu.base.types.provider.EventItemProvider;
+import org.yakindu.sct.model.stext.stext.EventDefinition;
 
 /**
  * This is the item provider adapter for a
@@ -54,9 +55,9 @@ public class EventDefinitionItemProvider extends EventItemProvider {
 	}
 
 	/**
-	 * This returns EventDefinition.gif. <!-- begin-user-doc --> <!--
+	 * This returns EventDefinition.gif.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -78,11 +79,10 @@ public class EventDefinitionItemProvider extends EventItemProvider {
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override

+ 23 - 18
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/InterfaceScopeItemProvider.java

@@ -58,25 +58,31 @@ public class InterfaceScopeItemProvider extends StatechartScopeItemProvider {
 	}
 
 	/**
-	 * This adds a property descriptor for the Name feature. <!-- begin-user-doc
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc
 	 * --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add(createItemPropertyDescriptor(
-				((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
-				getResourceLocator(),
-				getString("_UI_NamedElement_name_feature"),
-				getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature",
-						"_UI_NamedElement_type"), BasePackage.Literals.NAMED_ELEMENT__NAME, true, false, false,
-				ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_NamedElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+				 BasePackage.Literals.NAMED_ELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
 	}
 
 	/**
-	 * This returns InterfaceScope.gif. <!-- begin-user-doc --> <!--
+	 * This returns InterfaceScope.gif.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -98,11 +104,10 @@ public class InterfaceScopeItemProvider extends StatechartScopeItemProvider {
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -110,9 +115,9 @@ public class InterfaceScopeItemProvider extends StatechartScopeItemProvider {
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(InterfaceScope.class)) {
-		case StextPackage.INTERFACE_SCOPE__NAME:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-			return;
+			case StextPackage.INTERFACE_SCOPE__NAME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
 		}
 		super.notifyChanged(notification);
 	}

+ 1 - 79
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/LocalReactionItemProvider.java

@@ -60,80 +60,11 @@ public class LocalReactionItemProvider extends ReactionItemProvider
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addTypePropertyDescriptor(object);
-			addTypeArgumentsPropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
   /**
-	 * This adds a property descriptor for the Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_TypedElement_type_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_type_feature", "_UI_TypedElement_type"),
-				 TypesPackage.Literals.TYPED_ELEMENT__TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-		/**
-	 * This adds a property descriptor for the Type Arguments feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addTypeArgumentsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_TypedElement_typeArguments_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_typeArguments_feature", "_UI_TypedElement_type"),
-				 TypesPackage.Literals.TYPED_ELEMENT__TYPE_ARGUMENTS,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-		/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 BasePackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-		/**
 	 * This returns LocalReaction.gif.
 	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
@@ -154,10 +85,7 @@ public class LocalReactionItemProvider extends ReactionItemProvider
   @Override
   public String getText(Object object)
   {
-		String label = ((LocalReaction)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_LocalReaction_type") :
-			getString("_UI_LocalReaction_type") + " " + label;
+		return getString("_UI_LocalReaction_type");
 	}
   
 
@@ -172,12 +100,6 @@ public class LocalReactionItemProvider extends ReactionItemProvider
   public void notifyChanged(Notification notification)
   {
 		updateChildren(notification);
-
-		switch (notification.getFeatureID(LocalReaction.class)) {
-			case StextPackage.LOCAL_REACTION__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
 		super.notifyChanged(notification);
 	}
 

+ 15 - 0
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/OperationDefinitionItemProvider.java

@@ -19,6 +19,7 @@ import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.yakindu.base.types.provider.OperationItemProvider;
+import org.yakindu.sct.model.stext.stext.OperationDefinition;
 
 /**
  * This is the item provider adapter for a {@link org.yakindu.sct.model.stext.stext.OperationDefinition} object.
@@ -68,6 +69,20 @@ public class OperationDefinitionItemProvider extends OperationItemProvider
 	}
 
   /**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((OperationDefinition)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_OperationDefinition_type") :
+			getString("_UI_OperationDefinition_type") + " " + label;
+	}
+
+		/**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
 	 * <!-- begin-user-doc -->

+ 6 - 1
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/SimpleScopeItemProvider.java

@@ -130,8 +130,13 @@ public class SimpleScopeItemProvider extends ScopeItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SGraphPackage.Literals.SCOPE__DECLARATIONS,
+				(SGraphPackage.Literals.SCOPE__REACTIONS,
 				 StextFactory.eINSTANCE.createLocalReaction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.SCOPE__REACTIONS,
+				 StextFactory.eINSTANCE.createTransitionReaction()));
 	}
 
   /**

+ 6 - 1
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/StatechartScopeItemProvider.java

@@ -130,8 +130,13 @@ public class StatechartScopeItemProvider extends ScopeItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SGraphPackage.Literals.SCOPE__DECLARATIONS,
+				(SGraphPackage.Literals.SCOPE__REACTIONS,
 				 StextFactory.eINSTANCE.createLocalReaction()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.SCOPE__REACTIONS,
+				 StextFactory.eINSTANCE.createTransitionReaction()));
 	}
 
   /**

+ 6 - 6
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TypeAliasDefinitionItemProvider.java

@@ -19,6 +19,7 @@ import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.yakindu.base.types.TypeAlias;
 import org.yakindu.base.types.provider.TypeAliasItemProvider;
+import org.yakindu.sct.model.stext.stext.TypeAliasDefinition;
 
 /**
  * This is the item provider adapter for a
@@ -54,9 +55,9 @@ public class TypeAliasDefinitionItemProvider extends TypeAliasItemProvider {
 	}
 
 	/**
-	 * This returns TypeAliasDefinition.gif. <!-- begin-user-doc --> <!--
+	 * This returns TypeAliasDefinition.gif.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -90,11 +91,10 @@ public class TypeAliasDefinitionItemProvider extends TypeAliasItemProvider {
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override

+ 117 - 81
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/VariableDefinitionItemProvider.java

@@ -59,13 +59,10 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 	}
 
 	/**
-	 * This specifies how to implement {@link #getChildren} and is used to
-	 * deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand},
-	 * {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in
-	 * {@link #createCommand}. <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
@@ -79,22 +76,20 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
 	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper
-		// feature to use for
+		// Check the type of the specified child object and return the proper feature to use for
 		// adding (see {@link AddCommand}) it as a child.
 
 		return super.getChildFeature(object, child);
 	}
 
 	/**
-	 * This returns VariableDefinition.gif. <!-- begin-user-doc --> <!--
+	 * This returns VariableDefinition.gif.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -121,11 +116,10 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to
-	 * update any cached children and by creating a viewer notification, which
-	 * it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!--
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc --> <!--
 	 * end-user-doc -->
-	 * 
 	 * @generated
 	 */
 	@Override
@@ -133,9 +127,9 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(VariableDefinition.class)) {
-		case StextPackage.VARIABLE_DEFINITION__INITIAL_VALUE:
-			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-			return;
+			case StextPackage.VARIABLE_DEFINITION__INITIAL_VALUE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
 		}
 		super.notifyChanged(notification);
 	}
@@ -151,68 +145,110 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				StextFactory.eINSTANCE.createEventRaisingExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				StextFactory.eINSTANCE.createEventValueReferenceExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				StextFactory.eINSTANCE.createActiveStateReferenceExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createAssignmentExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createConditionalExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createLogicalOrExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createLogicalAndExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createLogicalNotExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createBitwiseXorExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createBitwiseOrExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createBitwiseAndExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createLogicalRelationExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createShiftExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createNumericalAddSubtractExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createNumericalMultiplyDivideExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createNumericalUnaryExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createPrimitiveValueExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createFeatureCall()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createElementReferenceExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createParenthesizedExpression()));
-
-		newChildDescriptors.add(createChildParameter(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				ExpressionsFactory.eINSTANCE.createTypeCastExpression()));
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 StextFactory.eINSTANCE.createEventRaisingExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 StextFactory.eINSTANCE.createEventValueReferenceExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 StextFactory.eINSTANCE.createActiveStateReferenceExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createAssignmentExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createConditionalExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createLogicalOrExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createLogicalAndExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createLogicalNotExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createBitwiseXorExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createBitwiseOrExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createBitwiseAndExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createLogicalRelationExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createShiftExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createNumericalAddSubtractExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createNumericalMultiplyDivideExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createNumericalUnaryExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createPrimitiveValueExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createFeatureCall()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createElementReferenceExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createParenthesizedExpression()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
+				 ExpressionsFactory.eINSTANCE.createTypeCastExpression()));
 	}
 
 	/**

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ActiveStateReferenceExpression.java

@@ -12,10 +12,10 @@ import org.yakindu.sct.model.sgraph.State;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ActiveStateReferenceExpression#getValue <em>Value</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getActiveStateReferenceExpression()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EntryPointSpec.java

@@ -11,10 +11,10 @@ import org.yakindu.sct.model.sgraph.ReactionProperty;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.EntryPointSpec#getEntrypoint <em>Entrypoint</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getEntryPointSpec()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EventRaisingExpression.java

@@ -11,11 +11,11 @@ import org.yakindu.base.expressions.expressions.Expression;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.EventRaisingExpression#getEvent <em>Event</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.EventRaisingExpression#getValue <em>Value</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getEventRaisingExpression()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/EventValueReferenceExpression.java

@@ -11,10 +11,10 @@ import org.yakindu.base.expressions.expressions.Expression;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.EventValueReferenceExpression#getValue <em>Value</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getEventValueReferenceExpression()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ExitPointSpec.java

@@ -11,10 +11,10 @@ import org.yakindu.sct.model.sgraph.ReactionProperty;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ExitPointSpec#getExitpoint <em>Exitpoint</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getExitPointSpec()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Guard.java

@@ -12,10 +12,10 @@ import org.yakindu.base.expressions.expressions.Expression;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.Guard#getExpression <em>Expression</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getGuard()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Import.java

@@ -11,10 +11,10 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.Import#getImportedNamespace <em>Imported Namespace</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getImport()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ImportScope.java

@@ -11,10 +11,10 @@ import org.eclipse.emf.common.util.EList;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ImportScope#getImports <em>Imports</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getImportScope()
  * @model

+ 1 - 2
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/LocalReaction.java

@@ -2,7 +2,6 @@
  */
 package org.yakindu.sct.model.stext.stext;
 
-import org.yakindu.base.types.Declaration;
 import org.yakindu.sct.model.sgraph.Reaction;
 
 /**
@@ -15,5 +14,5 @@ import org.yakindu.sct.model.sgraph.Reaction;
  * @model
  * @generated
  */
-public interface LocalReaction extends Reaction, Declaration {
+public interface LocalReaction extends Reaction {
 } // LocalReaction

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ReactionEffect.java

@@ -13,10 +13,10 @@ import org.yakindu.sct.model.sgraph.Effect;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ReactionEffect#getActions <em>Actions</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getReactionEffect()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ReactionTrigger.java

@@ -12,11 +12,11 @@ import org.yakindu.sct.model.sgraph.Trigger;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ReactionTrigger#getTriggers <em>Triggers</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.ReactionTrigger#getGuard <em>Guard</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getReactionTrigger()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/RegularEventSpec.java

@@ -11,10 +11,10 @@ import org.yakindu.base.expressions.expressions.Expression;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.RegularEventSpec#getEvent <em>Event</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getRegularEventSpec()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/Root.java

@@ -12,10 +12,10 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.Root#getRoots <em>Roots</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getRoot()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StateRoot.java

@@ -10,10 +10,10 @@ package org.yakindu.sct.model.stext.stext;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.StateRoot#getDef <em>Def</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateRoot()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StateSpecification.java

@@ -12,10 +12,10 @@ import org.yakindu.sct.model.sgraph.Scope;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.StateSpecification#getScope <em>Scope</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getStateSpecification()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StatechartRoot.java

@@ -10,10 +10,10 @@ package org.yakindu.sct.model.stext.stext;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.StatechartRoot#getDef <em>Def</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getStatechartRoot()
  * @model

+ 82 - 37
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StextPackage.java

@@ -320,6 +320,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int STATECHART_SCOPE__VARIABLES = SGraphPackage.SCOPE__VARIABLES;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STATECHART_SCOPE__REACTIONS = SGraphPackage.SCOPE__REACTIONS;
+
 	/**
 	 * The number of structural features of the '<em>Statechart Scope</em>' class.
 	 * <!-- begin-user-doc -->
@@ -366,6 +375,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int INTERFACE_SCOPE__VARIABLES = STATECHART_SCOPE__VARIABLES;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_SCOPE__REACTIONS = STATECHART_SCOPE__REACTIONS;
+
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -421,6 +439,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int INTERNAL_SCOPE__VARIABLES = STATECHART_SCOPE__VARIABLES;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERNAL_SCOPE__REACTIONS = STATECHART_SCOPE__REACTIONS;
+
 	/**
 	 * The number of structural features of the '<em>Internal Scope</em>' class.
 	 * <!-- begin-user-doc -->
@@ -467,6 +494,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int IMPORT_SCOPE__VARIABLES = STATECHART_SCOPE__VARIABLES;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMPORT_SCOPE__REACTIONS = STATECHART_SCOPE__REACTIONS;
+
 	/**
 	 * The feature id for the '<em><b>Imports</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -550,6 +586,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int EVENT_DEFINITION__NAME = TypesPackage.EVENT__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_DEFINITION__ANNOTATIONS = TypesPackage.EVENT__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -614,6 +659,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int VARIABLE_DEFINITION__NAME = TypesPackage.PROPERTY__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_DEFINITION__ANNOTATIONS = TypesPackage.PROPERTY__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -705,6 +759,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int OPERATION_DEFINITION__NAME = TypesPackage.OPERATION__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATION_DEFINITION__ANNOTATIONS = TypesPackage.OPERATION__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -769,6 +832,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int TYPE_ALIAS_DEFINITION__NAME = TypesPackage.TYPE_ALIAS__NAME;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_ALIAS_DEFINITION__ANNOTATIONS = TypesPackage.TYPE_ALIAS__ANNOTATIONS;
+
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -851,42 +923,6 @@ public interface StextPackage extends EPackage {
 	 */
 	int LOCAL_REACTION__PROPERTIES = SGraphPackage.REACTION__PROPERTIES;
 
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOCAL_REACTION__TYPE = SGraphPackage.REACTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Type Arguments</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOCAL_REACTION__TYPE_ARGUMENTS = SGraphPackage.REACTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOCAL_REACTION__NAME = SGraphPackage.REACTION_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOCAL_REACTION__ID = SGraphPackage.REACTION_FEATURE_COUNT + 3;
-
 	/**
 	 * The number of structural features of the '<em>Local Reaction</em>' class.
 	 * <!-- begin-user-doc -->
@@ -894,7 +930,7 @@ public interface StextPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL_REACTION_FEATURE_COUNT = SGraphPackage.REACTION_FEATURE_COUNT + 4;
+	int LOCAL_REACTION_FEATURE_COUNT = SGraphPackage.REACTION_FEATURE_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.TransitionReactionImpl <em>Transition Reaction</em>}' class.
@@ -1232,6 +1268,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int SIMPLE_SCOPE__VARIABLES = SGraphPackage.SCOPE__VARIABLES;
 
+	/**
+	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SIMPLE_SCOPE__REACTIONS = SGraphPackage.SCOPE__REACTIONS;
+
 	/**
 	 * The number of structural features of the '<em>Simple Scope</em>' class.
 	 * <!-- begin-user-doc -->

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeEventSpec.java

@@ -11,12 +11,12 @@ import org.yakindu.base.expressions.expressions.Expression;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TimeEventSpec#getType <em>Type</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TimeEventSpec#getValue <em>Value</em>}</li>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TimeEventSpec#getUnit <em>Unit</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getTimeEventSpec()
  * @model

+ 6 - 0
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeEventType.java

@@ -92,6 +92,8 @@ public enum TimeEventType implements Enumerator {
 	 * Returns the '<em><b>Time Event Type</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeEventType get(String literal) {
@@ -108,6 +110,8 @@ public enum TimeEventType implements Enumerator {
 	 * Returns the '<em><b>Time Event Type</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeEventType getByName(String name) {
@@ -124,6 +128,8 @@ public enum TimeEventType implements Enumerator {
 	 * Returns the '<em><b>Time Event Type</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeEventType get(int value) {

+ 6 - 0
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TimeUnit.java

@@ -144,6 +144,8 @@ public enum TimeUnit implements Enumerator {
 	 * Returns the '<em><b>Time Unit</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeUnit get(String literal) {
@@ -160,6 +162,8 @@ public enum TimeUnit implements Enumerator {
 	 * Returns the '<em><b>Time Unit</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeUnit getByName(String name) {
@@ -176,6 +180,8 @@ public enum TimeUnit implements Enumerator {
 	 * Returns the '<em><b>Time Unit</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static TimeUnit get(int value) {

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TransitionRoot.java

@@ -10,10 +10,10 @@ package org.yakindu.sct.model.stext.stext;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TransitionRoot#getDef <em>Def</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionRoot()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/TransitionSpecification.java

@@ -11,10 +11,10 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.TransitionSpecification#getReaction <em>Reaction</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getTransitionSpecification()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/VariableDefinition.java

@@ -12,10 +12,10 @@ import org.yakindu.base.types.Property;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.VariableDefinition#getInitialValue <em>Initial Value</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.stext.stext.StextPackage#getVariableDefinition()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/ActiveStateReferenceExpressionImpl.java

@@ -17,10 +17,10 @@ import org.yakindu.sct.model.stext.stext.StextPackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.stext.stext.impl.ActiveStateReferenceExpressionImpl#getValue <em>Value</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 0 - 2
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/AlwaysEventImpl.java

@@ -10,8 +10,6 @@ import org.yakindu.sct.model.stext.stext.StextPackage;
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Always Event</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */

+ 0 - 0
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/BuiltinEventSpecImpl.java


Някои файлове не бяха показани, защото твърде много файлове са промени