Bläddra i källkod

Renamed AnnotationDefinition to ArgumentedAnnotation

Introduce interface for AnnotatableElement without making assumptions
how the annotations are actually stored at the object. This is required
because in Sgraph annotations are transient volatile on statecharts
since they are parsed dynamically from the text specification
Andreas Muelder 8 år sedan
förälder
incheckning
74a5edea51
84 ändrade filer med 664 tillägg och 1605 borttagningar
  1. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateAnnotatableElement_annotations_Annotation.gif
  2. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateDeclaration_annotations_Annotation.gif
  3. 1 0
      plugins/org.yakindu.base.types.edit/plugin.properties
  4. 0 143
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotatableElementItemProvider.java
  5. 0 3
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/AnnotationTypeItemProvider.java
  6. 0 1
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ComplexTypeItemProvider.java
  7. 7 23
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DeclarationItemProvider.java
  8. 0 23
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageMemberItemProvider.java
  9. 0 23
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ParameterItemProvider.java
  10. 0 23
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeAliasItemProvider.java
  11. 0 24
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypesItemProviderAdapterFactory.java
  12. 10 4
      plugins/org.yakindu.base.types/model/types.ecore
  13. 10 12
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/AnnotatableElement.java
  14. 0 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/AnnotationType.java
  15. 23 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Declaration.java
  16. 0 9
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesFactory.java
  17. 55 145
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesPackage.java
  18. 0 147
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotatableElementImpl.java
  19. 0 4
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotationTypeImpl.java
  20. 27 14
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/DeclarationImpl.java
  21. 11 100
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/PackageMemberImpl.java
  22. 14 35
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/ParameterImpl.java
  23. 14 30
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypeAliasImpl.java
  24. 0 12
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesFactoryImpl.java
  25. 18 12
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesPackageImpl.java
  26. BIN
      plugins/org.yakindu.sct.model.sgraph.edit/icons/full/ctool16/CreateStatechart_annotations_Annotation.gif
  27. 1 0
      plugins/org.yakindu.sct.model.sgraph.edit/plugin.properties
  28. 0 184
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/AnnotatableElementItemProvider.java
  29. 0 24
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/SGraphItemProviderAdapterFactory.java
  30. 2 2
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StatechartItemProvider.java
  31. 5 9
      plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore
  32. 0 67
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/AnnotatableElement.java
  33. 0 9
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphFactory.java
  34. 21 78
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java
  35. 25 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Statechart.java
  36. 0 184
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/AnnotatableElementImpl.java
  37. 0 12
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphFactoryImpl.java
  38. 11 36
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java
  39. 2 5
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java
  40. 4 22
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java
  41. 7 28
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java
  42. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventRaisingExpression_event_ArgumentedAnnotation.gif
  43. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventRaisingExpression_value_ArgumentedAnnotation.gif
  44. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventValueReferenceExpression_value_ArgumentedAnnotation.gif
  45. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateGuard_expression_ArgumentedAnnotation.gif
  46. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateReactionEffect_actions_ArgumentedAnnotation.gif
  47. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateRegularEventSpec_event_ArgumentedAnnotation.gif
  48. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateStatechartSpecification_annotation_ArgumentedAnnotation.gif
  49. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTimeEventSpec_value_ArgumentedAnnotation.gif
  50. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateVariableDefinition_initialValue_ArgumentedAnnotation.gif
  51. BIN
      plugins/org.yakindu.sct.model.stext.edit/icons/full/obj16/ArgumentedAnnotation.gif
  52. 1 0
      plugins/org.yakindu.sct.model.stext.edit/plugin.properties
  53. 10 10
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/AnnotationDefinitionItemProvider.java
  54. 7 0
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventDefinitionItemProvider.java
  55. 2 2
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventRaisingExpressionItemProvider.java
  56. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventValueReferenceExpressionItemProvider.java
  57. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/GuardItemProvider.java
  58. 7 0
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/OperationDefinitionItemProvider.java
  59. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/ReactionEffectItemProvider.java
  60. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/RegularEventSpecItemProvider.java
  61. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/StatechartSpecificationItemProvider.java
  62. 8 8
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/StextItemProviderAdapterFactory.java
  63. 1 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TimeEventSpecItemProvider.java
  64. 52 0
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/TypeAliasDefinitionItemProvider.java
  65. 30 1
      plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/VariableDefinitionItemProvider.java
  66. 0 20
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/AnnotationDefinition.java
  67. 20 0
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ArgumentedAnnotation.java
  68. 2 2
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StatechartSpecification.java
  69. 3 3
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StextFactory.java
  70. 38 38
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StextPackage.java
  71. 15 15
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/AnnotationDefinitionImpl.java
  72. 5 5
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StatechartSpecificationImpl.java
  73. 4 4
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StextFactoryImpl.java
  74. 9 9
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StextPackageImpl.java
  75. 143 0
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/TypeAliasDefinitionImpl.java
  76. 5 5
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/util/StextAdapterFactory.java
  77. 9 9
      plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/util/StextSwitch.java
  78. 3 3
      plugins/org.yakindu.sct.model.stext/model/SText.ecore
  79. 6 6
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext
  80. 2 2
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/inferrer/STextTypeInferrer.java
  81. 2 2
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/resource/StextResource.java
  82. 3 3
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java
  83. 3 3
      plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/container/DefaultSimulationEngineFactory.java
  84. 1 1
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/SCTUnitClassifierTest.java

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


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


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

@@ -222,3 +222,4 @@ _UI_AnnotationType_type = Annotation Type
 _UI_Annotation_type_feature = Type
 _UI_AnnotationType_properties_feature = Properties
 _UI_AnnotationType_targets_feature = Targets
+_UI_Declaration_annotations_feature = Annotations

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

@@ -1,143 +0,0 @@
-/**
- */
-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;
-	}
-
-}

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

@@ -8,13 +8,10 @@ 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.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-
 import org.yakindu.base.types.AnnotationType;
 import org.yakindu.base.types.TypesFactory;
 import org.yakindu.base.types.TypesPackage;

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

@@ -19,7 +19,6 @@ import org.eclipse.emf.common.notify.Notification;
 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.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.base.types.ComplexType;
 import org.yakindu.base.types.TypesFactory;

+ 7 - 23
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/DeclarationItemProvider.java

@@ -63,7 +63,6 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 
 			addTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
-			addAnnotationsPropertyDescriptor(object);
 			addIdPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -113,28 +112,6 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 				 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 -->
@@ -170,6 +147,7 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(TypesPackage.Literals.TYPED_ELEMENT__TYPE_SPECIFIER);
+			childrenFeatures.add(TypesPackage.Literals.DECLARATION__ANNOTATIONS);
 		}
 		return childrenFeatures;
 	}
@@ -216,6 +194,7 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case TypesPackage.DECLARATION__TYPE_SPECIFIER:
+			case TypesPackage.DECLARATION__ANNOTATIONS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -242,6 +221,11 @@ public class DeclarationItemProvider extends ItemProviderAdapter implements IEdi
 			(createChildParameter
 				(TypesPackage.Literals.TYPED_ELEMENT__TYPE_SPECIFIER,
 				 TypesFactory.eINSTANCE.createArrayTypeSpecifier()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 TypesFactory.eINSTANCE.createAnnotation()));
 	}
 
 	/**

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

@@ -54,34 +54,11 @@ 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 -->

+ 0 - 23
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ParameterItemProvider.java

@@ -70,7 +70,6 @@ public class ParameterItemProvider
 
 			addTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
-			addAnnotationsPropertyDescriptor(object);
 			addVarArgsPropertyDescriptor(object);
 			addOptionalPropertyDescriptor(object);
 		}
@@ -121,28 +120,6 @@ public class ParameterItemProvider
 				 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 Var Args feature.
 	 * <!-- begin-user-doc -->

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

@@ -70,7 +70,6 @@ public class TypeAliasItemProvider
 
 			addTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
-			addAnnotationsPropertyDescriptor(object);
 			addIdPropertyDescriptor(object);
 			addAbstractPropertyDescriptor(object);
 			addVisiblePropertyDescriptor(object);
@@ -122,28 +121,6 @@ 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 -->

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

@@ -514,29 +514,6 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		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 keeps track of the one adapter used for all {@link org.yakindu.base.types.ArrayTypeSpecifier} instances.
 	 * <!-- begin-user-doc -->
@@ -701,7 +678,6 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		if (domainItemProvider != null) domainItemProvider.dispose();
 		if (typeAliasItemProvider != null) typeAliasItemProvider.dispose();
 		if (annotationItemProvider != null) annotationItemProvider.dispose();
-		if (annotatableElementItemProvider != null) annotatableElementItemProvider.dispose();
 		if (arrayTypeSpecifierItemProvider != null) arrayTypeSpecifierItemProvider.dispose();
 		if (annotationTypeItemProvider != null) annotationTypeItemProvider.dispose();
 	}

+ 10 - 4
plugins/org.yakindu.base.types/model/types.ecore

@@ -17,7 +17,10 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="visible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         defaultValueLiteral="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Declaration" abstract="true" eSuperTypes="#//TypedElement base.ecore#//NamedElement #//PackageMember"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Declaration" abstract="true" eSuperTypes="#//TypedElement base.ecore#//NamedElement #//PackageMember">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+        eType="#//Annotation" containment="true"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//Declaration #//GenericElement">
     <eOperations name="getVarArgIndex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
@@ -102,9 +105,12 @@
   <eClassifiers xsi:type="ecore:EClass" name="Annotation">
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//AnnotationType"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AnnotatableElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
-        eType="#//Annotation" containment="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="AnnotatableElement" abstract="true"
+      interface="true">
+    <eOperations name="getAnnotations" upperBound="-1" eType="#//Annotation"/>
+    <eOperations name="getAnnotationOfType" eType="#//Annotation">
+      <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ArrayTypeSpecifier" eSuperTypes="#//TypeSpecifier">
     <eOperations name="getElementType" eType="#//Type"/>

+ 10 - 12
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/AnnotatableElement.java

@@ -10,32 +10,30 @@ import org.eclipse.emf.ecore.EObject;
  * 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
+ * @model interface="true" abstract="true"
  * @generated
  */
 public interface AnnotatableElement extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Annotations</b></em>' containment 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>' containment reference list.
-	 * @see org.yakindu.base.types.TypesPackage#getAnnotatableElement_Annotations()
-	 * @model containment="true"
+	 * @model kind="operation"
 	 * @generated
 	 */
 	EList<Annotation> getAnnotations();
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model
+	 * @generated
+	 */
+	Annotation getAnnotationOfType(String typeName);
+
 } // AnnotatableElement

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

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

+ 23 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/Declaration.java

@@ -2,6 +2,7 @@
  */
 package org.yakindu.base.types;
 
+import org.eclipse.emf.common.util.EList;
 import org.yakindu.base.base.NamedElement;
 
 /**
@@ -9,10 +10,32 @@ import org.yakindu.base.base.NamedElement;
  * A representation of the model object '<em><b>Declaration</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.types.Declaration#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
  *
  * @see org.yakindu.base.types.TypesPackage#getDeclaration()
  * @model abstract="true"
  * @generated
  */
 public interface Declaration extends TypedElement, NamedElement, PackageMember {
+
+	/**
+	 * Returns the value of the '<em><b>Annotations</b></em>' containment 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>' 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>Annotations</em>' containment reference list.
+	 * @see org.yakindu.base.types.TypesPackage#getDeclaration_Annotations()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Annotation> getAnnotations();
 } // Declaration

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

@@ -196,15 +196,6 @@ public interface TypesFactory extends EFactory {
 	 */
 	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 a new object of class '<em>Array Type Specifier</em>'.
 	 * <!-- begin-user-doc -->

+ 55 - 145
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/TypesPackage.java

@@ -135,15 +135,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PACKAGE_MEMBER__NAME = BasePackage.NAMED_ELEMENT__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -151,7 +142,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PACKAGE_MEMBER__ID = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 1;
+	int PACKAGE_MEMBER__ID = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Package Member</em>' class.
@@ -160,7 +151,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PACKAGE_MEMBER_FEATURE_COUNT = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 2;
+	int PACKAGE_MEMBER_FEATURE_COUNT = BasePackage.NAMED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.base.types.impl.TypeImpl <em>Type</em>}' class.
@@ -221,15 +212,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE__NAME = PACKAGE_MEMBER__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -340,22 +322,22 @@ public interface TypesPackage extends EPackage {
 	int DECLARATION__NAME = TYPED_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DECLARATION__ANNOTATIONS = TYPED_ELEMENT_FEATURE_COUNT + 1;
+	int DECLARATION__ID = TYPED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DECLARATION__ID = TYPED_ELEMENT_FEATURE_COUNT + 2;
+	int DECLARATION__ANNOTATIONS = TYPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Declaration</em>' class.
@@ -394,22 +376,22 @@ public interface TypesPackage extends EPackage {
 	int OPERATION__NAME = DECLARATION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+	int OPERATION__ID = DECLARATION__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION__ID = DECLARATION__ID;
+	int OPERATION__ANNOTATIONS = DECLARATION__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
@@ -475,22 +457,22 @@ public interface TypesPackage extends EPackage {
 	int PROPERTY__NAME = DECLARATION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+	int PROPERTY__ID = DECLARATION__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY__ID = DECLARATION__ID;
+	int PROPERTY__ANNOTATIONS = DECLARATION__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Const</b></em>' attribute.
@@ -555,15 +537,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PARAMETER__NAME = TYPED_ELEMENT_FEATURE_COUNT + 0;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__ANNOTATIONS = TYPED_ELEMENT_FEATURE_COUNT + 1;
-
 	/**
 	 * The feature id for the '<em><b>Owning Operation</b></em>' container reference.
 	 * <!-- begin-user-doc -->
@@ -571,7 +544,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__OWNING_OPERATION = TYPED_ELEMENT_FEATURE_COUNT + 2;
+	int PARAMETER__OWNING_OPERATION = TYPED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Var Args</b></em>' attribute.
@@ -580,7 +553,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__VAR_ARGS = TYPED_ELEMENT_FEATURE_COUNT + 3;
+	int PARAMETER__VAR_ARGS = TYPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Optional</b></em>' attribute.
@@ -589,7 +562,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__OPTIONAL = TYPED_ELEMENT_FEATURE_COUNT + 4;
+	int PARAMETER__OPTIONAL = TYPED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Parameter</em>' class.
@@ -598,7 +571,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 5;
+	int PARAMETER_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 4;
 
 
 	/**
@@ -676,22 +649,22 @@ public interface TypesPackage extends EPackage {
 	int EVENT__NAME = DECLARATION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+	int EVENT__ID = DECLARATION__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT__ID = DECLARATION__ID;
+	int EVENT__ANNOTATIONS = DECLARATION__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Direction</b></em>' attribute.
@@ -741,15 +714,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int PRIMITIVE_TYPE__NAME = TYPE__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -813,15 +777,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int ENUMERATION_TYPE__NAME = PRIMITIVE_TYPE__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -914,15 +869,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int COMPLEX_TYPE__NAME = TYPE__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int COMPLEX_TYPE__ANNOTATIONS = TYPE__ANNOTATIONS;
-
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1033,22 +979,22 @@ public interface TypesPackage extends EPackage {
 	int ENUMERATOR__NAME = DECLARATION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ENUMERATOR__ANNOTATIONS = DECLARATION__ANNOTATIONS;
+	int ENUMERATOR__ID = DECLARATION__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ENUMERATOR__ID = DECLARATION__ID;
+	int ENUMERATOR__ANNOTATIONS = DECLARATION__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Owning Enumeration</b></em>' container reference.
@@ -1125,15 +1071,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE_PARAMETER__NAME = TYPE__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -1326,15 +1263,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int TYPE_ALIAS__NAME = TYPED_ELEMENT_FEATURE_COUNT + 0;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -1342,7 +1270,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__ID = TYPED_ELEMENT_FEATURE_COUNT + 2;
+	int TYPE_ALIAS__ID = TYPED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Constraint</b></em>' containment reference list.
@@ -1351,7 +1279,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__CONSTRAINT = TYPED_ELEMENT_FEATURE_COUNT + 3;
+	int TYPE_ALIAS__CONSTRAINT = TYPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Abstract</b></em>' attribute.
@@ -1360,7 +1288,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__ABSTRACT = TYPED_ELEMENT_FEATURE_COUNT + 4;
+	int TYPE_ALIAS__ABSTRACT = TYPED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Visible</b></em>' attribute.
@@ -1369,7 +1297,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS__VISIBLE = TYPED_ELEMENT_FEATURE_COUNT + 5;
+	int TYPE_ALIAS__VISIBLE = TYPED_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Type Alias</em>' class.
@@ -1378,7 +1306,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 6;
+	int TYPE_ALIAS_FEATURE_COUNT = TYPED_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.base.types.impl.AnnotationImpl <em>Annotation</em>}' class.
@@ -1409,24 +1337,15 @@ public interface TypesPackage extends EPackage {
 	int ANNOTATION_FEATURE_COUNT = 1;
 
 	/**
-	 * The meta object id for the '{@link org.yakindu.base.types.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
+	 * The meta object id for the '{@link org.yakindu.base.types.AnnotatableElement <em>Annotatable Element</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.yakindu.base.types.impl.AnnotatableElementImpl
+	 * @see org.yakindu.base.types.AnnotatableElement
 	 * @see org.yakindu.base.types.impl.TypesPackageImpl#getAnnotatableElement()
 	 * @generated
 	 */
 	int ANNOTATABLE_ELEMENT = 21;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -1434,7 +1353,7 @@ public interface TypesPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ANNOTATABLE_ELEMENT_FEATURE_COUNT = 1;
+	int ANNOTATABLE_ELEMENT_FEATURE_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.base.types.impl.ArrayTypeSpecifierImpl <em>Array Type Specifier</em>}' class.
@@ -1501,15 +1420,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	int ANNOTATION_TYPE__NAME = TYPE__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ANNOTATION_TYPE__ANNOTATIONS = TYPE__ANNOTATIONS;
-
 	/**
 	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -1679,6 +1589,17 @@ public interface TypesPackage extends EPackage {
 	 */
 	EClass getDeclaration();
 
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.yakindu.base.types.Declaration#getAnnotations <em>Annotations</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
+	 * @see org.yakindu.base.types.Declaration#getAnnotations()
+	 * @see #getDeclaration()
+	 * @generated
+	 */
+	EReference getDeclaration_Annotations();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.base.types.Operation <em>Operation</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2166,17 +2087,6 @@ public interface TypesPackage extends EPackage {
 	 */
 	EClass getAnnotatableElement();
 
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.yakindu.base.types.AnnotatableElement#getAnnotations <em>Annotations</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
-	 * @see org.yakindu.base.types.AnnotatableElement#getAnnotations()
-	 * @see #getAnnotatableElement()
-	 * @generated
-	 */
-	EReference getAnnotatableElement_Annotations();
-
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.base.types.ArrayTypeSpecifier <em>Array Type Specifier</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2340,6 +2250,14 @@ public interface TypesPackage extends EPackage {
 		 */
 		EClass DECLARATION = eINSTANCE.getDeclaration();
 
+		/**
+		 * The meta object literal for the '<em><b>Annotations</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DECLARATION__ANNOTATIONS = eINSTANCE.getDeclaration_Annotations();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.base.types.impl.OperationImpl <em>Operation</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -2737,23 +2655,15 @@ public interface TypesPackage extends EPackage {
 		EReference ANNOTATION__TYPE = eINSTANCE.getAnnotation_Type();
 
 		/**
-		 * The meta object literal for the '{@link org.yakindu.base.types.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
+		 * The meta object literal for the '{@link org.yakindu.base.types.AnnotatableElement <em>Annotatable Element</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.yakindu.base.types.impl.AnnotatableElementImpl
+		 * @see org.yakindu.base.types.AnnotatableElement
 		 * @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>' containment 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.impl.ArrayTypeSpecifierImpl <em>Array Type Specifier</em>}' class.
 		 * <!-- begin-user-doc -->

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

@@ -1,147 +0,0 @@
-/**
- */
-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.InternalEObject;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-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>}' containment 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 EObjectContainmentEList<Annotation>(Annotation.class, this, TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS);
-		}
-		return annotations;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
-				return ((InternalEList<?>)getAnnotations()).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.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

+ 0 - 4
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/AnnotationTypeImpl.java

@@ -5,17 +5,13 @@ 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.AnnotationType;
 import org.yakindu.base.types.Property;
 import org.yakindu.base.types.TypesPackage;

+ 27 - 14
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/DeclarationImpl.java

@@ -3,7 +3,6 @@
 package org.yakindu.base.types.impl;
 
 import java.util.Collection;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.EList;
@@ -35,8 +34,8 @@ 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#getTypeSpecifier <em>Type Specifier</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>
+ *   <li>{@link org.yakindu.base.types.impl.DeclarationImpl#getAnnotations <em>Annotations</em>}</li>
  * </ul>
  *
  * @generated
@@ -73,24 +72,24 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 	protected String name = NAME_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getAnnotations()
+	 * @see #getId()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Annotation> annotations;
+	protected static final String ID_EDEFAULT = null;
 
 	/**
-	 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getId()
+	 * @see #getAnnotations()
 	 * @generated
 	 * @ordered
 	 */
-	protected static final String ID_EDEFAULT = null;
+	protected EList<Annotation> annotations;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -209,6 +208,22 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 		return annotations;
 	}
 
+	/**
+	 * <!-- begin-user-doc --> 
+	 * <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	public Annotation getAnnotationOfType(final String typeName) {
+		EList<Annotation> annotations = getAnnotations();
+		for (Annotation annotation : annotations) {
+			if (typeName.equals(annotation.getType().getName())) {
+				return annotation;
+			}
+		}
+		return null;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -224,10 +239,10 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				return getTypeSpecifier();
 			case TypesPackage.DECLARATION__NAME:
 				return getName();
-			case TypesPackage.DECLARATION__ANNOTATIONS:
-				return getAnnotations();
 			case TypesPackage.DECLARATION__ID:
 				return getId();
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				return getAnnotations();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -290,10 +305,10 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 				return typeSpecifier != null;
 			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());
+			case TypesPackage.DECLARATION__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -313,7 +328,6 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (derivedFeatureID) {
-				case TypesPackage.DECLARATION__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
 				default: return -1;
 			}
 		}
@@ -341,7 +355,6 @@ public abstract class DeclarationImpl extends EObjectImpl implements Declaration
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (baseFeatureID) {
-				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.DECLARATION__ANNOTATIONS;
 				default: return -1;
 			}
 		}

+ 11 - 100
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/PackageMemberImpl.java

@@ -2,16 +2,9 @@
  */
 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.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
 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;
@@ -25,22 +18,12 @@ 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>}' containment 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 -->
@@ -77,34 +60,30 @@ public class PackageMemberImpl extends NamedElementImpl implements PackageMember
 	 * @generated
 	 */
 	public EList<Annotation> getAnnotations() {
-		if (annotations == null) {
-			annotations = new EObjectContainmentEList<Annotation>(Annotation.class, this, TypesPackage.PACKAGE_MEMBER__ANNOTATIONS);
-		}
-		return annotations;
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated NOT
+	 * @generated
 	 */
-	@Override
-	public String getId() {
-		return TypesUtil.computeQID(this);
+	public Annotation getAnnotationOfType(String typeName) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @generated
+	 * @generated NOT
 	 */
 	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case TypesPackage.PACKAGE_MEMBER__ANNOTATIONS:
-				return ((InternalEList<?>)getAnnotations()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
+	public String getId() {
+		return TypesUtil.computeQID(this);
 	}
 
 	/**
@@ -115,46 +94,12 @@ 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 -->
@@ -163,44 +108,10 @@ 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

+ 14 - 35
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/ParameterImpl.java

@@ -6,8 +6,6 @@
  */
 package org.yakindu.base.types.impl;
 
-import java.util.Collection;
-
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 import org.eclipse.emf.common.util.EList;
@@ -15,9 +13,7 @@ import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EcoreUtil;
-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;
@@ -39,7 +35,6 @@ import org.yakindu.base.types.TypesPackage;
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#getType <em>Type</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#getTypeSpecifier <em>Type Specifier</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#getAnnotations <em>Annotations</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#getOwningOperation <em>Owning Operation</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#isVarArgs <em>Var Args</em>}</li>
  *   <li>{@link org.yakindu.base.types.impl.ParameterImpl#isOptional <em>Optional</em>}</li>
@@ -78,16 +73,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 	 */
 	protected String name = NAME_EDEFAULT;
 
-	/**
-	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAnnotations()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Annotation> annotations;
-
 	/**
 	 * The default value of the '{@link #isVarArgs() <em>Var Args</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -239,10 +224,20 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 	 * @generated
 	 */
 	public EList<Annotation> getAnnotations() {
-		if (annotations == null) {
-			annotations = new EObjectContainmentEList<Annotation>(Annotation.class, this, TypesPackage.PARAMETER__ANNOTATIONS);
-		}
-		return annotations;
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Annotation getAnnotationOfType(String typeName) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
 	}
 
 	/**
@@ -354,8 +349,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 		switch (featureID) {
 			case TypesPackage.PARAMETER__TYPE_SPECIFIER:
 				return basicSetTypeSpecifier(null, msgs);
-			case TypesPackage.PARAMETER__ANNOTATIONS:
-				return ((InternalEList<?>)getAnnotations()).basicRemove(otherEnd, msgs);
 			case TypesPackage.PARAMETER__OWNING_OPERATION:
 				return basicSetOwningOperation(null, msgs);
 		}
@@ -391,8 +384,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 				return getTypeSpecifier();
 			case TypesPackage.PARAMETER__NAME:
 				return getName();
-			case TypesPackage.PARAMETER__ANNOTATIONS:
-				return getAnnotations();
 			case TypesPackage.PARAMETER__OWNING_OPERATION:
 				return getOwningOperation();
 			case TypesPackage.PARAMETER__VAR_ARGS:
@@ -408,7 +399,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
@@ -418,10 +408,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 			case TypesPackage.PARAMETER__NAME:
 				setName((String)newValue);
 				return;
-			case TypesPackage.PARAMETER__ANNOTATIONS:
-				getAnnotations().clear();
-				getAnnotations().addAll((Collection<? extends Annotation>)newValue);
-				return;
 			case TypesPackage.PARAMETER__OWNING_OPERATION:
 				setOwningOperation((Operation)newValue);
 				return;
@@ -449,9 +435,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 			case TypesPackage.PARAMETER__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case TypesPackage.PARAMETER__ANNOTATIONS:
-				getAnnotations().clear();
-				return;
 			case TypesPackage.PARAMETER__OWNING_OPERATION:
 				setOwningOperation((Operation)null);
 				return;
@@ -479,8 +462,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 				return typeSpecifier != null;
 			case TypesPackage.PARAMETER__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case TypesPackage.PARAMETER__ANNOTATIONS:
-				return annotations != null && !annotations.isEmpty();
 			case TypesPackage.PARAMETER__OWNING_OPERATION:
 				return getOwningOperation() != null;
 			case TypesPackage.PARAMETER__VAR_ARGS:
@@ -506,7 +487,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (derivedFeatureID) {
-				case TypesPackage.PARAMETER__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
 				default: return -1;
 			}
 		}
@@ -528,7 +508,6 @@ public class ParameterImpl extends EObjectImpl implements Parameter {
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (baseFeatureID) {
-				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.PARAMETER__ANNOTATIONS;
 				default: return -1;
 			}
 		}

+ 14 - 30
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypeAliasImpl.java

@@ -35,7 +35,6 @@ 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#getTypeSpecifier <em>Type Specifier</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>
@@ -73,16 +72,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 	 */
 	protected String name = NAME_EDEFAULT;
 
-	/**
-	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment 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 -->
@@ -245,10 +234,20 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 	 * @generated
 	 */
 	public EList<Annotation> getAnnotations() {
-		if (annotations == null) {
-			annotations = new EObjectContainmentEList<Annotation>(Annotation.class, this, TypesPackage.TYPE_ALIAS__ANNOTATIONS);
-		}
-		return annotations;
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Annotation getAnnotationOfType(String typeName) {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
 	}
 
 	/**
@@ -323,8 +322,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 		switch (featureID) {
 			case TypesPackage.TYPE_ALIAS__TYPE_SPECIFIER:
 				return basicSetTypeSpecifier(null, msgs);
-			case TypesPackage.TYPE_ALIAS__ANNOTATIONS:
-				return ((InternalEList<?>)getAnnotations()).basicRemove(otherEnd, msgs);
 			case TypesPackage.TYPE_ALIAS__CONSTRAINT:
 				return ((InternalEList<?>)getConstraint()).basicRemove(otherEnd, msgs);
 		}
@@ -345,8 +342,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				return getTypeSpecifier();
 			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:
@@ -373,10 +368,6 @@ 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);
@@ -404,9 +395,6 @@ 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;
@@ -433,8 +421,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 				return typeSpecifier != null;
 			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:
@@ -461,7 +447,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (derivedFeatureID) {
-				case TypesPackage.TYPE_ALIAS__ANNOTATIONS: return TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
 				default: return -1;
 			}
 		}
@@ -496,7 +481,6 @@ public class TypeAliasImpl extends EObjectImpl implements TypeAlias {
 		}
 		if (baseClass == AnnotatableElement.class) {
 			switch (baseFeatureID) {
-				case TypesPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return TypesPackage.TYPE_ALIAS__ANNOTATIONS;
 				default: return -1;
 			}
 		}

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

@@ -12,7 +12,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.base.types.AnnotatableElement;
 import org.yakindu.base.types.Annotation;
 import org.yakindu.base.types.AnnotationType;
 import org.yakindu.base.types.ArrayTypeSpecifier;
@@ -100,7 +99,6 @@ public class TypesFactoryImpl extends EFactoryImpl implements TypesFactory {
 			case TypesPackage.DOMAIN: return createDomain();
 			case TypesPackage.TYPE_ALIAS: return createTypeAlias();
 			case TypesPackage.ANNOTATION: return createAnnotation();
-			case TypesPackage.ANNOTATABLE_ELEMENT: return createAnnotatableElement();
 			case TypesPackage.ARRAY_TYPE_SPECIFIER: return createArrayTypeSpecifier();
 			case TypesPackage.ANNOTATION_TYPE: return createAnnotationType();
 			default:
@@ -328,16 +326,6 @@ public class TypesFactoryImpl extends EFactoryImpl implements TypesFactory {
 		return annotation;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AnnotatableElement createAnnotatableElement() {
-		AnnotatableElementImpl annotatableElement = new AnnotatableElementImpl();
-		return annotatableElement;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 18 - 12
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/types/impl/TypesPackageImpl.java

@@ -9,6 +9,7 @@ package org.yakindu.base.types.impl;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
@@ -354,6 +355,15 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		return declarationEClass;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDeclaration_Annotations() {
+		return (EReference)declarationEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
@@ -751,15 +761,6 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		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 -->
@@ -851,6 +852,7 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		createEAttribute(typeEClass, TYPE__VISIBLE);
 
 		declarationEClass = createEClass(DECLARATION);
+		createEReference(declarationEClass, DECLARATION__ANNOTATIONS);
 
 		operationEClass = createEClass(OPERATION);
 		createEReference(operationEClass, OPERATION__PARAMETERS);
@@ -916,7 +918,6 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		createEReference(annotationEClass, ANNOTATION__TYPE);
 
 		annotatableElementEClass = createEClass(ANNOTATABLE_ELEMENT);
-		createEReference(annotatableElementEClass, ANNOTATABLE_ELEMENT__ANNOTATIONS);
 
 		arrayTypeSpecifierEClass = createEClass(ARRAY_TYPE_SPECIFIER);
 		createEAttribute(arrayTypeSpecifierEClass, ARRAY_TYPE_SPECIFIER__SIZE);
@@ -1000,6 +1001,7 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		addEOperation(typeEClass, this.getType(), "getOriginType", 0, 1, IS_UNIQUE, IS_ORDERED);
 
 		initEClass(declarationEClass, Declaration.class, "Declaration", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDeclaration_Annotations(), this.getAnnotation(), null, "annotations", null, 0, -1, Declaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(operationEClass, Operation.class, "Operation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getOperation_Parameters(), this.getParameter(), this.getParameter_OwningOperation(), "parameters", null, 0, -1, Operation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1068,8 +1070,12 @@ public class TypesPackageImpl extends EPackageImpl implements TypesPackage {
 		initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getAnnotation_Type(), this.getAnnotationType(), null, "type", 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);
+		initEClass(annotatableElementEClass, AnnotatableElement.class, "AnnotatableElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		addEOperation(annotatableElementEClass, this.getAnnotation(), "getAnnotations", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+		EOperation op = addEOperation(annotatableElementEClass, this.getAnnotation(), "getAnnotationOfType", 0, 1, IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, ecorePackage.getEString(), "typeName", 0, 1, IS_UNIQUE, IS_ORDERED);
 
 		initEClass(arrayTypeSpecifierEClass, ArrayTypeSpecifier.class, "ArrayTypeSpecifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getArrayTypeSpecifier_Size(), ecorePackage.getEInt(), "size", null, 0, 1, ArrayTypeSpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

BIN
plugins/org.yakindu.sct.model.sgraph.edit/icons/full/ctool16/CreateStatechart_annotations_Annotation.gif


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

@@ -160,3 +160,4 @@ _UI_Statechart_domainID_feature = Domain ID
 _UI_Scope_reactions_feature = Reactions
 _UI_AnnotatableElement_type = Annotatable Element
 _UI_AnnotatableElement_annotations_feature = Annotations
+_UI_Statechart_annotations_feature = Annotations

+ 0 - 184
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/AnnotatableElementItemProvider.java

@@ -1,184 +0,0 @@
-/**
- * Copyright (c) 2011 committers of YAKINDU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * Contributors:
- * committers of YAKINDU - initial API and implementation
- * 
- */
-package org.yakindu.sct.model.sgraph.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.ecore.EStructuralFeature;
-
-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.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.yakindu.base.types.TypesFactory;
-
-import org.yakindu.sct.model.sgraph.AnnotatableElement;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * This is the item provider adapter for a {@link org.yakindu.sct.model.sgraph.AnnotatableElement} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class AnnotatableElementItemProvider 
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final 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";
-
-	/**
-	 * 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);
-
-		}
-		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(SGraphPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS);
-		}
-		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 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);
-
-		switch (notification.getFeatureID(AnnotatableElement.class)) {
-			case SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
-				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
-				(SGraphPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
-				 TypesFactory.eINSTANCE.createAnnotation()));
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return SGraphEditPlugin.INSTANCE;
-	}
-
-}

+ 0 - 24
plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/SGraphItemProviderAdapterFactory.java

@@ -360,29 +360,6 @@ public class SGraphItemProviderAdapterFactory extends SGraphAdapterFactory imple
 		return importDeclarationItemProvider;
 	}
 
-	/**
-	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sgraph.AnnotatableElement} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AnnotatableElementItemProvider annotatableElementItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.yakindu.sct.model.sgraph.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 -->
@@ -494,7 +471,6 @@ public class SGraphItemProviderAdapterFactory extends SGraphAdapterFactory imple
 		if (synchronizationItemProvider != null) synchronizationItemProvider.dispose();
 		if (stateItemProvider != null) stateItemProvider.dispose();
 		if (importDeclarationItemProvider != null) importDeclarationItemProvider.dispose();
-		if (annotatableElementItemProvider != null) annotatableElementItemProvider.dispose();
 	}
 
 }

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

@@ -174,7 +174,7 @@ public class StatechartItemProvider
 			childrenFeatures.add(SGraphPackage.Literals.REACTIVE_ELEMENT__LOCAL_REACTIONS);
 			childrenFeatures.add(SGraphPackage.Literals.SCOPED_ELEMENT__SCOPES);
 			childrenFeatures.add(SGraphPackage.Literals.COMPOSITE_ELEMENT__REGIONS);
-			childrenFeatures.add(SGraphPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS);
+			childrenFeatures.add(SGraphPackage.Literals.STATECHART__ANNOTATIONS);
 		}
 		return childrenFeatures;
 	}
@@ -273,7 +273,7 @@ public class StatechartItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SGraphPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+				(SGraphPackage.Literals.STATECHART__ANNOTATIONS,
 				 TypesFactory.eINSTANCE.createAnnotation()));
 	}
 

+ 5 - 9
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore

@@ -27,7 +27,11 @@
   <eClassifiers xsi:type="ecore:EClass" name="Choice" eSuperTypes="#//Pseudostate">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ChoiceKind"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//CompositeElement ../../../org.yakindu.base.types/model/base.ecore#//NamedElement ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement ../../../org.yakindu.base.types/model/base.ecore#//DomainElement #//AnnotatableElement"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Statechart" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//CompositeElement ../../../org.yakindu.base.types/model/base.ecore#//NamedElement ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement ../../../org.yakindu.base.types/model/base.ecore#//DomainElement ../../../org.yakindu.base.types/model/types.ecore#//AnnotatableElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Annotation"
+        transient="true" containment="true"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//EntryKind"/>
   </eClassifiers>
@@ -96,12 +100,4 @@
   <eClassifiers xsi:type="ecore:EClass" name="ImportDeclaration" eSuperTypes="../../../org.yakindu.base.types/model/types.ecore#//Declaration">
     <eStructuralFeatures xsi:type="ecore:EReference" name="declaration" eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Declaration"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AnnotatableElement">
-    <eOperations name="getAnnotationOfType" eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Annotation">
-      <eParameters name="typeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
-        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Annotation"
-        transient="true" containment="true"/>
-  </eClassifiers>
 </ecore:EPackage>

+ 0 - 67
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/AnnotatableElement.java

@@ -1,67 +0,0 @@
-/**
- * Copyright (c) 2011 committers of YAKINDU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * Contributors:
- * committers of YAKINDU - initial API and implementation
- * 
- */
-package org.yakindu.sct.model.sgraph;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.yakindu.base.types.Annotation;
-
-/**
- * <!-- 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.sct.model.sgraph.AnnotatableElement#getAnnotations <em>Annotations</em>}</li>
- * </ul>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getAnnotatableElement()
- * @model
- * @generated
- */
-public interface AnnotatableElement extends EObject {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	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>Annotations</b></em>' containment 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>' 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>Annotations</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getAnnotatableElement_Annotations()
-	 * @model containment="true" resolveProxies="true" transient="true"
-	 * @generated
-	 */
-	EList<Annotation> getAnnotations();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model
-	 * @generated
-	 */
-	Annotation getAnnotationOfType(String typeName);
-
-} // AnnotatableElement

+ 0 - 9
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphFactory.java

@@ -144,15 +144,6 @@ public interface SGraphFactory extends EFactory {
 	 */
 	ImportDeclaration createImportDeclaration();
 
-	/**
-	 * 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 -->

+ 21 - 78
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java

@@ -1220,15 +1220,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int IMPORT_DECLARATION__NAME = TypesPackage.DECLARATION__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -1256,34 +1247,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	int IMPORT_DECLARATION_FEATURE_COUNT = TypesPackage.DECLARATION_FEATURE_COUNT + 1;
 
-	/**
-	 * The meta object id for the '{@link org.yakindu.sct.model.sgraph.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.yakindu.sct.model.sgraph.impl.AnnotatableElementImpl
-	 * @see org.yakindu.sct.model.sgraph.impl.SGraphPackageImpl#getAnnotatableElement()
-	 * @generated
-	 */
-	int ANNOTATABLE_ELEMENT = 22;
-
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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.sct.model.sgraph.EntryKind <em>Entry Kind</em>}' enum.
 	 * <!-- begin-user-doc -->
@@ -1292,7 +1255,7 @@ public interface SGraphPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sgraph.impl.SGraphPackageImpl#getEntryKind()
 	 * @generated
 	 */
-	int ENTRY_KIND = 23;
+	int ENTRY_KIND = 22;
 
 
 	/**
@@ -1303,7 +1266,7 @@ public interface SGraphPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sgraph.impl.SGraphPackageImpl#getChoiceKind()
 	 * @generated
 	 */
-	int CHOICE_KIND = 24;
+	int CHOICE_KIND = 23;
 
 
 	/**
@@ -1539,27 +1502,6 @@ public interface SGraphPackage extends EPackage {
 	 */
 	EReference getImportDeclaration_Declaration();
 
-	/**
-	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgraph.AnnotatableElement <em>Annotatable Element</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Annotatable Element</em>'.
-	 * @see org.yakindu.sct.model.sgraph.AnnotatableElement
-	 * @generated
-	 */
-	EClass getAnnotatableElement();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.sgraph.AnnotatableElement#getAnnotations <em>Annotations</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
-	 * @see org.yakindu.sct.model.sgraph.AnnotatableElement#getAnnotations()
-	 * @see #getAnnotatableElement()
-	 * @generated
-	 */
-	EReference getAnnotatableElement_Annotations();
-
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgraph.Choice <em>Choice</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1591,6 +1533,17 @@ public interface SGraphPackage extends EPackage {
 	 */
 	EClass getStatechart();
 
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.sgraph.Statechart#getAnnotations <em>Annotations</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Annotations</em>'.
+	 * @see org.yakindu.sct.model.sgraph.Statechart#getAnnotations()
+	 * @see #getStatechart()
+	 * @generated
+	 */
+	EReference getStatechart_Annotations();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgraph.Entry <em>Entry</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2069,24 +2022,6 @@ public interface SGraphPackage extends EPackage {
 		 */
 		EReference IMPORT_DECLARATION__DECLARATION = eINSTANCE.getImportDeclaration_Declaration();
 
-		/**
-		 * The meta object literal for the '{@link org.yakindu.sct.model.sgraph.impl.AnnotatableElementImpl <em>Annotatable Element</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.yakindu.sct.model.sgraph.impl.AnnotatableElementImpl
-		 * @see org.yakindu.sct.model.sgraph.impl.SGraphPackageImpl#getAnnotatableElement()
-		 * @generated
-		 */
-		EClass ANNOTATABLE_ELEMENT = eINSTANCE.getAnnotatableElement();
-
-		/**
-		 * The meta object literal for the '<em><b>Annotations</b></em>' containment 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.sct.model.sgraph.impl.ChoiceImpl <em>Choice</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -2115,6 +2050,14 @@ public interface SGraphPackage extends EPackage {
 		 */
 		EClass STATECHART = eINSTANCE.getStatechart();
 
+		/**
+		 * The meta object literal for the '<em><b>Annotations</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STATECHART__ANNOTATIONS = eINSTANCE.getStatechart_Annotations();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sgraph.impl.EntryImpl <em>Entry</em>}' class.
 		 * <!-- begin-user-doc -->

+ 25 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Statechart.java

@@ -10,9 +10,12 @@
  */
 package org.yakindu.sct.model.sgraph;
 
+import org.eclipse.emf.common.util.EList;
 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.Annotation;
 
 
 /**
@@ -20,6 +23,12 @@ import org.yakindu.base.base.NamedElement;
  * A representation of the model object '<em><b>Statechart</b></em>'.
  * <!-- end-user-doc -->
  *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Statechart#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart()
  * @model
@@ -33,4 +42,20 @@ public interface Statechart extends SpecificationElement, ReactiveElement, Scope
 	 */
 	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>Annotations</b></em>' containment 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>' 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>Annotations</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart_Annotations()
+	 * @model containment="true" resolveProxies="true" transient="true"
+	 * @generated
+	 */
+	EList<Annotation> getAnnotations();
+
 } // Statechart

+ 0 - 184
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/AnnotatableElementImpl.java

@@ -1,184 +0,0 @@
-/**
- * Copyright (c) 2011 committers of YAKINDU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * Contributors:
- * committers of YAKINDU - initial API and implementation
- * 
- */
-package org.yakindu.sct.model.sgraph.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.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.yakindu.base.types.Annotation;
-
-import org.yakindu.sct.model.sgraph.AnnotatableElement;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- 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.sct.model.sgraph.impl.AnnotatableElementImpl#getAnnotations <em>Annotations</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class AnnotatableElementImpl extends EObjectImpl implements AnnotatableElement {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final 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";
-
-	/**
-	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment 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 SGraphPackage.Literals.ANNOTATABLE_ELEMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Annotation> getAnnotations() {
-		if (annotations == null) {
-			annotations = new EObjectContainmentEList.Resolving<Annotation>(Annotation.class, this, SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS);
-		}
-		return annotations;
-	}
-
-	/**
-	 * <!-- begin-user-doc --> 
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public Annotation getAnnotationOfType(final String typeName) {
-		EList<Annotation> annotations = getAnnotations();
-		for (Annotation annotation : annotations) {
-			if (typeName.equals(annotation.getType().getName())) {
-				return annotation;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
-				return ((InternalEList<?>)getAnnotations()).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 SGraphPackage.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 SGraphPackage.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 SGraphPackage.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 SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS:
-				return annotations != null && !annotations.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //AnnotatableElementImpl

+ 0 - 12
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;
@@ -97,7 +96,6 @@ public class SGraphFactoryImpl extends EFactoryImpl implements SGraphFactory {
 			case SGraphPackage.SYNCHRONIZATION: return createSynchronization();
 			case SGraphPackage.STATE: return createState();
 			case SGraphPackage.IMPORT_DECLARATION: return createImportDeclaration();
-			case SGraphPackage.ANNOTATABLE_ELEMENT: return createAnnotatableElement();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -257,16 +255,6 @@ public class SGraphFactoryImpl extends EFactoryImpl implements SGraphFactory {
 		return importDeclaration;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AnnotatableElement createAnnotatableElement() {
-		AnnotatableElementImpl annotatableElement = new AnnotatableElementImpl();
-		return annotatableElement;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 11 - 36
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java

@@ -13,13 +13,11 @@ package org.yakindu.sct.model.sgraph.impl;
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EOperation;
 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.TypesPackage;
-import org.yakindu.sct.model.sgraph.AnnotatableElement;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.ChoiceKind;
 import org.yakindu.sct.model.sgraph.CompositeElement;
@@ -124,13 +122,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 */
 	private EClass importDeclarationEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass annotatableElementEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -503,17 +494,8 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- 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);
+	public EClass getChoice() {
+		return choiceEClass;
 	}
 
 	/**
@@ -521,8 +503,8 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getChoice() {
-		return choiceEClass;
+	public EAttribute getChoice_Kind() {
+		return (EAttribute)choiceEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -530,8 +512,8 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getChoice_Kind() {
-		return (EAttribute)choiceEClass.getEStructuralFeatures().get(0);
+	public EClass getStatechart() {
+		return statechartEClass;
 	}
 
 	/**
@@ -539,8 +521,8 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getStatechart() {
-		return statechartEClass;
+	public EReference getStatechart_Annotations() {
+		return (EReference)statechartEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -817,6 +799,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		createEAttribute(choiceEClass, CHOICE__KIND);
 
 		statechartEClass = createEClass(STATECHART);
+		createEReference(statechartEClass, STATECHART__ANNOTATIONS);
 
 		entryEClass = createEClass(ENTRY);
 		createEAttribute(entryEClass, ENTRY__KIND);
@@ -866,9 +849,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		importDeclarationEClass = createEClass(IMPORT_DECLARATION);
 		createEReference(importDeclarationEClass, IMPORT_DECLARATION__DECLARATION);
 
-		annotatableElementEClass = createEClass(ANNOTATABLE_ELEMENT);
-		createEReference(annotatableElementEClass, ANNOTATABLE_ELEMENT__ANNOTATIONS);
-
 		// Create enums
 		entryKindEEnum = createEEnum(ENTRY_KIND);
 		choiceKindEEnum = createEEnum(CHOICE_KIND);
@@ -921,7 +901,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		statechartEClass.getESuperTypes().add(theBasePackage.getNamedElement());
 		statechartEClass.getESuperTypes().add(theBasePackage.getDocumentedElement());
 		statechartEClass.getESuperTypes().add(theBasePackage.getDomainElement());
-		statechartEClass.getESuperTypes().add(this.getAnnotatableElement());
+		statechartEClass.getESuperTypes().add(theTypesPackage.getAnnotatableElement());
 		entryEClass.getESuperTypes().add(this.getPseudostate());
 		exitEClass.getESuperTypes().add(this.getPseudostate());
 		synchronizationEClass.getESuperTypes().add(this.getPseudostate());
@@ -956,6 +936,7 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		initEAttribute(getChoice_Kind(), this.getChoiceKind(), "kind", null, 0, 1, Choice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(statechartEClass, Statechart.class, "Statechart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getStatechart_Annotations(), theTypesPackage.getAnnotation(), null, "annotations", null, 0, -1, Statechart.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(entryEClass, Entry.class, "Entry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getEntry_Kind(), this.getEntryKind(), "kind", null, 0, 1, Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1005,12 +986,6 @@ public class SGraphPackageImpl extends EPackageImpl implements SGraphPackage {
 		initEClass(importDeclarationEClass, ImportDeclaration.class, "ImportDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getImportDeclaration_Declaration(), theTypesPackage.getDeclaration(), null, "declaration", null, 0, 1, ImportDeclaration.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(), theTypesPackage.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);
-
-		EOperation op = addEOperation(annotatableElementEClass, theTypesPackage.getAnnotation(), "getAnnotationOfType", 0, 1, IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, ecorePackage.getEString(), "typeName", 0, 1, IS_UNIQUE, IS_ORDERED);
-
 		// Initialize enums and add enum literals
 		initEEnum(entryKindEEnum, EntryKind.class, "EntryKind");
 		addEEnumLiteral(entryKindEEnum, EntryKind.INITIAL);

+ 2 - 5
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java

@@ -27,7 +27,6 @@ import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
 import org.yakindu.base.types.Annotation;
-import org.yakindu.sct.model.sgraph.AnnotatableElement;
 import org.yakindu.sct.model.sgraph.CompositeElement;
 import org.yakindu.sct.model.sgraph.Reaction;
 import org.yakindu.sct.model.sgraph.ReactiveElement;
@@ -538,9 +537,8 @@ public class StatechartImpl extends SpecificationElementImpl implements
 				default: return -1;
 			}
 		}
-		if (baseClass == AnnotatableElement.class) {
+		if (baseClass == org.yakindu.base.types.AnnotatableElement.class) {
 			switch (derivedFeatureID) {
-				case SGraphPackage.STATECHART__ANNOTATIONS: return SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS;
 				default: return -1;
 			}
 		}
@@ -590,9 +588,8 @@ public class StatechartImpl extends SpecificationElementImpl implements
 				default: return -1;
 			}
 		}
-		if (baseClass == AnnotatableElement.class) {
+		if (baseClass == org.yakindu.base.types.AnnotatableElement.class) {
 			switch (baseFeatureID) {
-				case SGraphPackage.ANNOTATABLE_ELEMENT__ANNOTATIONS: return SGraphPackage.STATECHART__ANNOTATIONS;
 				default: return -1;
 			}
 		}

+ 4 - 22
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java

@@ -197,10 +197,6 @@ public class SGraphAdapterFactory extends AdapterFactoryImpl {
 				return createImportDeclarationAdapter();
 			}
 			@Override
-			public Adapter caseAnnotatableElement(org.yakindu.sct.model.sgraph.AnnotatableElement object) {
-				return createAnnotatableElementAdapter();
-			}
-			@Override
 			public Adapter caseNamedElement(NamedElement object) {
 				return createNamedElementAdapter();
 			}
@@ -213,12 +209,12 @@ public class SGraphAdapterFactory extends AdapterFactoryImpl {
 				return createDomainElementAdapter();
 			}
 			@Override
-			public Adapter caseTypedElement(TypedElement object) {
-				return createTypedElementAdapter();
+			public Adapter caseAnnotatableElement(AnnotatableElement object) {
+				return createAnnotatableElementAdapter();
 			}
 			@Override
-			public Adapter caseTypes_AnnotatableElement(AnnotatableElement object) {
-				return createTypes_AnnotatableElementAdapter();
+			public Adapter caseTypedElement(TypedElement object) {
+				return createTypedElementAdapter();
 			}
 			@Override
 			public Adapter casePackageMember(PackageMember object) {
@@ -342,20 +338,6 @@ public class SGraphAdapterFactory extends AdapterFactoryImpl {
 	 * @see org.yakindu.base.types.AnnotatableElement
 	 * @generated
 	 */
-	public Adapter createTypes_AnnotatableElementAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgraph.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.sct.model.sgraph.AnnotatableElement
-	 * @generated
-	 */
 	public Adapter createAnnotatableElementAdapter() {
 		return null;
 	}

+ 7 - 28
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java

@@ -281,13 +281,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 = caseTypes_AnnotatableElement(importDeclaration);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case SGraphPackage.ANNOTATABLE_ELEMENT: {
-				org.yakindu.sct.model.sgraph.AnnotatableElement annotatableElement = (org.yakindu.sct.model.sgraph.AnnotatableElement)theEObject;
-				T result = caseAnnotatableElement(annotatableElement);
+				if (result == null) result = caseAnnotatableElement(importDeclaration);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -371,32 +365,32 @@ public class SGraphSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+	 * 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>Typed Element</em>'.
+	 * @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 caseTypedElement(TypedElement object) {
+	public T caseAnnotatableElement(AnnotatableElement object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Annotatable Element</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Typed 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>'.
+	 * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseTypes_AnnotatableElement(AnnotatableElement object) {
+	public T caseTypedElement(TypedElement object) {
 		return null;
 	}
 
@@ -535,21 +529,6 @@ 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(org.yakindu.sct.model.sgraph.AnnotatableElement object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Choice</em>'.
 	 * <!-- begin-user-doc -->

BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventRaisingExpression_event_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventRaisingExpression_value_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateEventValueReferenceExpression_value_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateGuard_expression_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateReactionEffect_actions_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateRegularEventSpec_event_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateStatechartSpecification_annotation_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateTimeEventSpec_value_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/ctool16/CreateVariableDefinition_initialValue_ArgumentedAnnotation.gif


BIN
plugins/org.yakindu.sct.model.stext.edit/icons/full/obj16/ArgumentedAnnotation.gif


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

@@ -244,3 +244,4 @@ _UI_VariableDefinition_const_feature = Const
 _UI_TypeAliasDefinition_type = Type Alias Definition
 _UI_AnnotationDefinition_type = Annotation Definition
 _UI_StatechartSpecification_annotation_feature = Annotation
+_UI_ArgumentedAnnotation_type = Argumented Annotation

+ 10 - 10
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/AnnotationDefinitionItemProvider.java

@@ -21,24 +21,24 @@ import org.yakindu.base.expressions.expressions.ExpressionsPackage;
 
 import org.yakindu.base.types.provider.AnnotationItemProvider;
 
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.StextFactory;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
- * This is the item provider adapter for a {@link org.yakindu.sct.model.stext.stext.AnnotationDefinition} object.
+ * This is the item provider adapter for a {@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class AnnotationDefinitionItemProvider extends AnnotationItemProvider {
+public class ArgumentedAnnotationItemProvider extends AnnotationItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnnotationDefinitionItemProvider(AdapterFactory adapterFactory) {
+	public ArgumentedAnnotationItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -88,14 +88,14 @@ public class AnnotationDefinitionItemProvider extends AnnotationItemProvider {
 	}
 
 	/**
-	 * This returns AnnotationDefinition.gif.
+	 * This returns ArgumentedAnnotation.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/AnnotationDefinition"));
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ArgumentedAnnotation"));
 	}
 
 	/**
@@ -106,7 +106,7 @@ public class AnnotationDefinitionItemProvider extends AnnotationItemProvider {
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_AnnotationDefinition_type");
+		return getString("_UI_ArgumentedAnnotation_type");
 	}
 	
 
@@ -121,8 +121,8 @@ public class AnnotationDefinitionItemProvider extends AnnotationItemProvider {
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(AnnotationDefinition.class)) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+		switch (notification.getFeatureID(ArgumentedAnnotation.class)) {
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -158,7 +158,7 @@ public class AnnotationDefinitionItemProvider extends AnnotationItemProvider {
 		newChildDescriptors.add
 			(createChildParameter
 				(ExpressionsPackage.Literals.ARGUMENT_EXPRESSION__ARGS,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -18,7 +18,9 @@ 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.Event;
+import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.provider.EventItemProvider;
+import org.yakindu.sct.model.stext.stext.StextFactory;
 
 /**
  * This is the item provider adapter for a
@@ -100,6 +102,11 @@ public class EventDefinitionItemProvider extends EventItemProvider {
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 	}
 
 	/**

+ 2 - 2
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/EventRaisingExpressionItemProvider.java

@@ -170,7 +170,7 @@ public class EventRaisingExpressionItemProvider extends ExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.EVENT_RAISING_EXPRESSION__EVENT,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -280,7 +280,7 @@ public class EventRaisingExpressionItemProvider extends ExpressionItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.EVENT_RAISING_EXPRESSION__VALUE,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -168,7 +168,7 @@ public class EventValueReferenceExpressionItemProvider extends ExpressionItemPro
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.EVENT_VALUE_REFERENCE_EXPRESSION__VALUE,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -180,7 +180,7 @@ public class GuardItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.GUARD__EXPRESSION,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -18,7 +18,9 @@ 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.IItemPropertyDescriptor;
+import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.provider.OperationItemProvider;
+import org.yakindu.sct.model.stext.stext.StextFactory;
 
 /**
  * This is the item provider adapter for a {@link org.yakindu.sct.model.stext.stext.OperationDefinition} object.
@@ -103,6 +105,11 @@ public class OperationDefinitionItemProvider extends OperationItemProvider
   protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
   {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 	}
 
   /**

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

@@ -168,7 +168,7 @@ public class ReactionEffectItemProvider extends EffectItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.REACTION_EFFECT__ACTIONS,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -166,7 +166,7 @@ public class RegularEventSpecItemProvider extends EventSpecItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.REGULAR_EVENT_SPEC__EVENT,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -179,7 +179,7 @@ public class StatechartSpecificationItemProvider extends ScopedElementItemProvid
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.STATECHART_SPECIFICATION__ANNOTATION,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 	}
 
   /**

+ 8 - 8
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/StextItemProviderAdapterFactory.java

@@ -919,26 +919,26 @@ public class StextItemProviderAdapterFactory extends StextAdapterFactory impleme
 	}
 
   /**
-	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.stext.stext.AnnotationDefinition} instances.
+	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected AnnotationDefinitionItemProvider annotationDefinitionItemProvider;
+	protected ArgumentedAnnotationItemProvider argumentedAnnotationItemProvider;
 
 		/**
-	 * This creates an adapter for a {@link org.yakindu.sct.model.stext.stext.AnnotationDefinition}.
+	 * This creates an adapter for a {@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createAnnotationDefinitionAdapter() {
-		if (annotationDefinitionItemProvider == null) {
-			annotationDefinitionItemProvider = new AnnotationDefinitionItemProvider(this);
+	public Adapter createArgumentedAnnotationAdapter() {
+		if (argumentedAnnotationItemProvider == null) {
+			argumentedAnnotationItemProvider = new ArgumentedAnnotationItemProvider(this);
 		}
 
-		return annotationDefinitionItemProvider;
+		return argumentedAnnotationItemProvider;
 	}
 
 		/**
@@ -1084,7 +1084,7 @@ public class StextItemProviderAdapterFactory extends StextAdapterFactory impleme
 		if (eventRaisingExpressionItemProvider != null) eventRaisingExpressionItemProvider.dispose();
 		if (eventValueReferenceExpressionItemProvider != null) eventValueReferenceExpressionItemProvider.dispose();
 		if (activeStateReferenceExpressionItemProvider != null) activeStateReferenceExpressionItemProvider.dispose();
-		if (annotationDefinitionItemProvider != null) annotationDefinitionItemProvider.dispose();
+		if (argumentedAnnotationItemProvider != null) argumentedAnnotationItemProvider.dispose();
 	}
 
 }

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

@@ -225,7 +225,7 @@ public class TimeEventSpecItemProvider extends EventSpecItemProvider
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.TIME_EVENT_SPEC__VALUE,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter

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

@@ -16,9 +16,15 @@ 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.ecore.EStructuralFeature;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.base.types.TypeAlias;
+import org.yakindu.base.types.TypesFactory;
+import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.provider.TypeAliasItemProvider;
+import org.yakindu.sct.model.stext.stext.StextFactory;
+import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TypeAliasDefinition;
 
 /**
@@ -54,6 +60,36 @@ public class TypeAliasDefinitionItemProvider extends TypeAliasItemProvider {
 		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.DECLARATION__ANNOTATIONS);
+		}
+		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 TypeAliasDefinition.gif.
 	 * <!-- begin-user-doc --> <!--
@@ -100,6 +136,12 @@ public class TypeAliasDefinitionItemProvider extends TypeAliasItemProvider {
 	@Override
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
+
+		switch (notification.getFeatureID(TypeAliasDefinition.class)) {
+			case StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
 		super.notifyChanged(notification);
 	}
 
@@ -113,6 +155,16 @@ public class TypeAliasDefinitionItemProvider extends TypeAliasItemProvider {
 	@Override
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 TypesFactory.eINSTANCE.createAnnotation()));
 	}
 
 	/**

+ 30 - 1
plugins/org.yakindu.sct.model.stext.edit/src/org/yakindu/sct/model/stext/stext/provider/VariableDefinitionItemProvider.java

@@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.base.expressions.expressions.ExpressionsFactory;
+import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.provider.PropertyItemProvider;
 import org.yakindu.sct.model.stext.stext.StextFactory;
 import org.yakindu.sct.model.stext.stext.StextPackage;
@@ -145,6 +146,11 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.DECLARATION__ANNOTATIONS,
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
@@ -163,7 +169,7 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 		newChildDescriptors.add
 			(createChildParameter
 				(StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE,
-				 StextFactory.eINSTANCE.createAnnotationDefinition()));
+				 StextFactory.eINSTANCE.createArgumentedAnnotation()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -256,6 +262,29 @@ public class VariableDefinitionItemProvider extends PropertyItemProvider {
 				 ExpressionsFactory.eINSTANCE.createTypeCastExpression()));
 	}
 
+	/**
+	 * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+		Object childFeature = feature;
+		Object childObject = child;
+
+		boolean qualify =
+			childFeature == TypesPackage.Literals.DECLARATION__ANNOTATIONS ||
+			childFeature == StextPackage.Literals.VARIABLE_DEFINITION__INITIAL_VALUE;
+
+		if (qualify) {
+			return getString
+				("_UI_CreateChild_text2",
+				 new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+		}
+		return super.getCreateChildText(owner, feature, child, selection);
+	}
+
 	/**
 	 * Return the resource locator for this item provider's resources. <!--
 	 * begin-user-doc --> <!-- end-user-doc -->

+ 0 - 20
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/AnnotationDefinition.java

@@ -1,20 +0,0 @@
-/**
- */
-package org.yakindu.sct.model.stext.stext;
-
-import org.yakindu.base.expressions.expressions.ArgumentExpression;
-
-import org.yakindu.base.types.Annotation;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Annotation Definition</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.yakindu.sct.model.stext.stext.StextPackage#getAnnotationDefinition()
- * @model
- * @generated
- */
-public interface AnnotationDefinition extends Annotation, ArgumentExpression {
-} // AnnotationDefinition

+ 20 - 0
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/ArgumentedAnnotation.java

@@ -0,0 +1,20 @@
+/**
+ */
+package org.yakindu.sct.model.stext.stext;
+
+import org.yakindu.base.expressions.expressions.ArgumentExpression;
+
+import org.yakindu.base.types.Annotation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Argumented Annotation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.yakindu.sct.model.stext.stext.StextPackage#getArgumentedAnnotation()
+ * @model
+ * @generated
+ */
+public interface ArgumentedAnnotation extends Annotation, ArgumentExpression {
+} // ArgumentedAnnotation

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

@@ -25,7 +25,7 @@ public interface StatechartSpecification extends ScopedElement {
 
 	/**
 	 * Returns the value of the '<em><b>Annotation</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.stext.stext.AnnotationDefinition}.
+	 * The list contents are of type {@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation}.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Annotation</em>' containment reference list isn't clear,
@@ -37,5 +37,5 @@ public interface StatechartSpecification extends ScopedElement {
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<AnnotationDefinition> getAnnotation();
+	EList<ArgumentedAnnotation> getAnnotation();
 } // StatechartSpecification

+ 3 - 3
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/StextFactory.java

@@ -337,13 +337,13 @@ public interface StextFactory extends EFactory {
 	ActiveStateReferenceExpression createActiveStateReferenceExpression();
 
 	/**
-	 * Returns a new object of class '<em>Annotation Definition</em>'.
+	 * Returns a new object of class '<em>Argumented Annotation</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Annotation Definition</em>'.
+	 * @return a new object of class '<em>Argumented Annotation</em>'.
 	 * @generated
 	 */
-	AnnotationDefinition createAnnotationDefinition();
+	ArgumentedAnnotation createArgumentedAnnotation();
 
 	/**
 	 * Returns the package supported by this factory.

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

@@ -568,22 +568,22 @@ public interface StextPackage extends EPackage {
 	int EVENT_DEFINITION__NAME = TypesPackage.EVENT__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_DEFINITION__ANNOTATIONS = TypesPackage.EVENT__ANNOTATIONS;
+	int EVENT_DEFINITION__ID = TypesPackage.EVENT__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_DEFINITION__ID = TypesPackage.EVENT__ID;
+	int EVENT_DEFINITION__ANNOTATIONS = TypesPackage.EVENT__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Direction</b></em>' attribute.
@@ -641,22 +641,22 @@ public interface StextPackage extends EPackage {
 	int VARIABLE_DEFINITION__NAME = TypesPackage.PROPERTY__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_DEFINITION__ANNOTATIONS = TypesPackage.PROPERTY__ANNOTATIONS;
+	int VARIABLE_DEFINITION__ID = TypesPackage.PROPERTY__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_DEFINITION__ID = TypesPackage.PROPERTY__ID;
+	int VARIABLE_DEFINITION__ANNOTATIONS = TypesPackage.PROPERTY__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Const</b></em>' attribute.
@@ -741,22 +741,22 @@ public interface StextPackage extends EPackage {
 	int OPERATION_DEFINITION__NAME = TypesPackage.OPERATION__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Id</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_DEFINITION__ANNOTATIONS = TypesPackage.OPERATION__ANNOTATIONS;
+	int OPERATION_DEFINITION__ID = TypesPackage.OPERATION__ID;
 
 	/**
-	 * The feature id for the '<em><b>Id</b></em>' attribute.
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_DEFINITION__ID = TypesPackage.OPERATION__ID;
+	int OPERATION_DEFINITION__ANNOTATIONS = TypesPackage.OPERATION__ANNOTATIONS;
 
 	/**
 	 * The feature id for the '<em><b>Type Parameters</b></em>' containment reference list.
@@ -831,15 +831,6 @@ public interface StextPackage extends EPackage {
 	 */
 	int TYPE_ALIAS_DEFINITION__NAME = TypesPackage.TYPE_ALIAS__NAME;
 
-	/**
-	 * The feature id for the '<em><b>Annotations</b></em>' containment 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 -->
@@ -876,6 +867,15 @@ public interface StextPackage extends EPackage {
 	 */
 	int TYPE_ALIAS_DEFINITION__VISIBLE = TypesPackage.TYPE_ALIAS__VISIBLE;
 
+	/**
+	 * The feature id for the '<em><b>Annotations</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_ALIAS_DEFINITION__ANNOTATIONS = TypesPackage.TYPE_ALIAS_FEATURE_COUNT + 0;
+
 	/**
 	 * The number of structural features of the '<em>Type Alias Definition</em>' class.
 	 * <!-- begin-user-doc -->
@@ -883,7 +883,7 @@ public interface StextPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_ALIAS_DEFINITION_FEATURE_COUNT = TypesPackage.TYPE_ALIAS_FEATURE_COUNT + 0;
+	int TYPE_ALIAS_DEFINITION_FEATURE_COUNT = TypesPackage.TYPE_ALIAS_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.LocalReactionImpl <em>Local Reaction</em>}' class.
@@ -1463,14 +1463,14 @@ public interface StextPackage extends EPackage {
 	int ACTIVE_STATE_REFERENCE_EXPRESSION_FEATURE_COUNT = ExpressionsPackage.EXPRESSION_FEATURE_COUNT + 1;
 
 	/**
-	 * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.AnnotationDefinitionImpl <em>Annotation Definition</em>}' class.
+	 * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.impl.ArgumentedAnnotationImpl <em>Argumented Annotation</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.yakindu.sct.model.stext.stext.impl.AnnotationDefinitionImpl
-	 * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getAnnotationDefinition()
+	 * @see org.yakindu.sct.model.stext.stext.impl.ArgumentedAnnotationImpl
+	 * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getArgumentedAnnotation()
 	 * @generated
 	 */
-	int ANNOTATION_DEFINITION = 35;
+	int ARGUMENTED_ANNOTATION = 35;
 
 	/**
 	 * The feature id for the '<em><b>Type</b></em>' reference.
@@ -1479,7 +1479,7 @@ public interface StextPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ANNOTATION_DEFINITION__TYPE = TypesPackage.ANNOTATION__TYPE;
+	int ARGUMENTED_ANNOTATION__TYPE = TypesPackage.ANNOTATION__TYPE;
 
 	/**
 	 * The feature id for the '<em><b>Args</b></em>' containment reference list.
@@ -1488,16 +1488,16 @@ public interface StextPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ANNOTATION_DEFINITION__ARGS = TypesPackage.ANNOTATION_FEATURE_COUNT + 0;
+	int ARGUMENTED_ANNOTATION__ARGS = TypesPackage.ANNOTATION_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of structural features of the '<em>Annotation Definition</em>' class.
+	 * The number of structural features of the '<em>Argumented Annotation</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ANNOTATION_DEFINITION_FEATURE_COUNT = TypesPackage.ANNOTATION_FEATURE_COUNT + 1;
+	int ARGUMENTED_ANNOTATION_FEATURE_COUNT = TypesPackage.ANNOTATION_FEATURE_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.stext.stext.TimeEventType <em>Time Event Type</em>}' enum.
@@ -2124,14 +2124,14 @@ public interface StextPackage extends EPackage {
 	EReference getActiveStateReferenceExpression_Value();
 
 	/**
-	 * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.AnnotationDefinition <em>Annotation Definition</em>}'.
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation <em>Argumented Annotation</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Annotation Definition</em>'.
-	 * @see org.yakindu.sct.model.stext.stext.AnnotationDefinition
+	 * @return the meta object for class '<em>Argumented Annotation</em>'.
+	 * @see org.yakindu.sct.model.stext.stext.ArgumentedAnnotation
 	 * @generated
 	 */
-	EClass getAnnotationDefinition();
+	EClass getArgumentedAnnotation();
 
 	/**
 	 * Returns the meta object for enum '{@link org.yakindu.sct.model.stext.stext.TimeEventType <em>Time Event Type</em>}'.
@@ -2710,14 +2710,14 @@ public interface StextPackage extends EPackage {
 		EReference ACTIVE_STATE_REFERENCE_EXPRESSION__VALUE = eINSTANCE.getActiveStateReferenceExpression_Value();
 
 		/**
-		 * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.AnnotationDefinitionImpl <em>Annotation Definition</em>}' class.
+		 * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.impl.ArgumentedAnnotationImpl <em>Argumented Annotation</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.yakindu.sct.model.stext.stext.impl.AnnotationDefinitionImpl
-		 * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getAnnotationDefinition()
+		 * @see org.yakindu.sct.model.stext.stext.impl.ArgumentedAnnotationImpl
+		 * @see org.yakindu.sct.model.stext.stext.impl.StextPackageImpl#getArgumentedAnnotation()
 		 * @generated
 		 */
-		EClass ANNOTATION_DEFINITION = eINSTANCE.getAnnotationDefinition();
+		EClass ARGUMENTED_ANNOTATION = eINSTANCE.getArgumentedAnnotation();
 
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.stext.stext.TimeEventType <em>Time Event Type</em>}' enum.

+ 15 - 15
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/AnnotationDefinitionImpl.java

@@ -20,23 +20,23 @@ import org.yakindu.base.expressions.expressions.ExpressionsPackage;
 
 import org.yakindu.base.types.impl.AnnotationImpl;
 
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Annotation Definition</b></em>'.
+ * An implementation of the model object '<em><b>Argumented Annotation</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.yakindu.sct.model.stext.stext.impl.AnnotationDefinitionImpl#getArgs <em>Args</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.ArgumentedAnnotationImpl#getArgs <em>Args</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class AnnotationDefinitionImpl extends AnnotationImpl implements AnnotationDefinition {
+public class ArgumentedAnnotationImpl extends AnnotationImpl implements ArgumentedAnnotation {
 	/**
 	 * The cached value of the '{@link #getArgs() <em>Args</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -52,7 +52,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected AnnotationDefinitionImpl() {
+	protected ArgumentedAnnotationImpl() {
 		super();
 	}
 
@@ -63,7 +63,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return StextPackage.Literals.ANNOTATION_DEFINITION;
+		return StextPackage.Literals.ARGUMENTED_ANNOTATION;
 	}
 
 	/**
@@ -73,7 +73,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	 */
 	public EList<Expression> getArgs() {
 		if (args == null) {
-			args = new EObjectContainmentEList<Expression>(Expression.class, this, StextPackage.ANNOTATION_DEFINITION__ARGS);
+			args = new EObjectContainmentEList<Expression>(Expression.class, this, StextPackage.ARGUMENTED_ANNOTATION__ARGS);
 		}
 		return args;
 	}
@@ -86,7 +86,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				return ((InternalEList<?>)getArgs()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -100,7 +100,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				return getArgs();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -115,7 +115,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				getArgs().clear();
 				getArgs().addAll((Collection<? extends Expression>)newValue);
 				return;
@@ -131,7 +131,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				getArgs().clear();
 				return;
 		}
@@ -146,7 +146,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case StextPackage.ANNOTATION_DEFINITION__ARGS:
+			case StextPackage.ARGUMENTED_ANNOTATION__ARGS:
 				return args != null && !args.isEmpty();
 		}
 		return super.eIsSet(featureID);
@@ -166,7 +166,7 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 		}
 		if (baseClass == ArgumentExpression.class) {
 			switch (derivedFeatureID) {
-				case StextPackage.ANNOTATION_DEFINITION__ARGS: return ExpressionsPackage.ARGUMENT_EXPRESSION__ARGS;
+				case StextPackage.ARGUMENTED_ANNOTATION__ARGS: return ExpressionsPackage.ARGUMENT_EXPRESSION__ARGS;
 				default: return -1;
 			}
 		}
@@ -187,11 +187,11 @@ public class AnnotationDefinitionImpl extends AnnotationImpl implements Annotati
 		}
 		if (baseClass == ArgumentExpression.class) {
 			switch (baseFeatureID) {
-				case ExpressionsPackage.ARGUMENT_EXPRESSION__ARGS: return StextPackage.ANNOTATION_DEFINITION__ARGS;
+				case ExpressionsPackage.ARGUMENT_EXPRESSION__ARGS: return StextPackage.ARGUMENTED_ANNOTATION__ARGS;
 				default: return -1;
 			}
 		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
-} //AnnotationDefinitionImpl
+} //ArgumentedAnnotationImpl

+ 5 - 5
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StatechartSpecificationImpl.java

@@ -11,7 +11,7 @@ import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.yakindu.sct.model.sgraph.impl.ScopedElementImpl;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
@@ -37,7 +37,7 @@ public class StatechartSpecificationImpl extends ScopedElementImpl implements St
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<AnnotationDefinition> annotation;
+	protected EList<ArgumentedAnnotation> annotation;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -63,9 +63,9 @@ public class StatechartSpecificationImpl extends ScopedElementImpl implements St
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EList<AnnotationDefinition> getAnnotation() {
+	public EList<ArgumentedAnnotation> getAnnotation() {
 		if (annotation == null) {
-			annotation = new EObjectContainmentEList<AnnotationDefinition>(AnnotationDefinition.class, this, StextPackage.STATECHART_SPECIFICATION__ANNOTATION);
+			annotation = new EObjectContainmentEList<ArgumentedAnnotation>(ArgumentedAnnotation.class, this, StextPackage.STATECHART_SPECIFICATION__ANNOTATION);
 		}
 		return annotation;
 	}
@@ -109,7 +109,7 @@ public class StatechartSpecificationImpl extends ScopedElementImpl implements St
 		switch (featureID) {
 			case StextPackage.STATECHART_SPECIFICATION__ANNOTATION:
 				getAnnotation().clear();
-				getAnnotation().addAll((Collection<? extends AnnotationDefinition>)newValue);
+				getAnnotation().addAll((Collection<? extends ArgumentedAnnotation>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);

+ 4 - 4
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StextFactoryImpl.java

@@ -128,7 +128,7 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory {
 			case StextPackage.EVENT_RAISING_EXPRESSION: return createEventRaisingExpression();
 			case StextPackage.EVENT_VALUE_REFERENCE_EXPRESSION: return createEventValueReferenceExpression();
 			case StextPackage.ACTIVE_STATE_REFERENCE_EXPRESSION: return createActiveStateReferenceExpression();
-			case StextPackage.ANNOTATION_DEFINITION: return createAnnotationDefinition();
+			case StextPackage.ARGUMENTED_ANNOTATION: return createArgumentedAnnotation();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -523,9 +523,9 @@ public class StextFactoryImpl extends EFactoryImpl implements StextFactory {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnnotationDefinition createAnnotationDefinition() {
-		AnnotationDefinitionImpl annotationDefinition = new AnnotationDefinitionImpl();
-		return annotationDefinition;
+	public ArgumentedAnnotation createArgumentedAnnotation() {
+		ArgumentedAnnotationImpl argumentedAnnotation = new ArgumentedAnnotationImpl();
+		return argumentedAnnotation;
 	}
 
 	/**

+ 9 - 9
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/impl/StextPackageImpl.java

@@ -14,7 +14,7 @@ import org.yakindu.base.types.TypesPackage;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.stext.stext.ActiveStateReferenceExpression;
 import org.yakindu.sct.model.stext.stext.AlwaysEvent;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.BuiltinEventSpec;
 import org.yakindu.sct.model.stext.stext.DefRoot;
 import org.yakindu.sct.model.stext.stext.DefaultTrigger;
@@ -310,7 +310,7 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass annotationDefinitionEClass = null;
+	private EClass argumentedAnnotationEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -918,8 +918,8 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getAnnotationDefinition() {
-		return annotationDefinitionEClass;
+	public EClass getArgumentedAnnotation() {
+		return argumentedAnnotationEClass;
 	}
 
 	/**
@@ -1061,7 +1061,7 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 		activeStateReferenceExpressionEClass = createEClass(ACTIVE_STATE_REFERENCE_EXPRESSION);
 		createEReference(activeStateReferenceExpressionEClass, ACTIVE_STATE_REFERENCE_EXPRESSION__VALUE);
 
-		annotationDefinitionEClass = createEClass(ANNOTATION_DEFINITION);
+		argumentedAnnotationEClass = createEClass(ARGUMENTED_ANNOTATION);
 
 		// Create enums
 		timeEventTypeEEnum = createEEnum(TIME_EVENT_TYPE);
@@ -1133,8 +1133,8 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 		eventRaisingExpressionEClass.getESuperTypes().add(theExpressionsPackage.getExpression());
 		eventValueReferenceExpressionEClass.getESuperTypes().add(theExpressionsPackage.getExpression());
 		activeStateReferenceExpressionEClass.getESuperTypes().add(theExpressionsPackage.getExpression());
-		annotationDefinitionEClass.getESuperTypes().add(theTypesPackage.getAnnotation());
-		annotationDefinitionEClass.getESuperTypes().add(theExpressionsPackage.getArgumentExpression());
+		argumentedAnnotationEClass.getESuperTypes().add(theTypesPackage.getAnnotation());
+		argumentedAnnotationEClass.getESuperTypes().add(theExpressionsPackage.getArgumentExpression());
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(rootEClass, Root.class, "Root", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1152,7 +1152,7 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 		initEReference(getTransitionRoot_Def(), this.getTransitionSpecification(), null, "def", null, 0, 1, TransitionRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(statechartSpecificationEClass, StatechartSpecification.class, "StatechartSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getStatechartSpecification_Annotation(), this.getAnnotationDefinition(), null, "annotation", null, 0, -1, StatechartSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getStatechartSpecification_Annotation(), this.getArgumentedAnnotation(), null, "annotation", null, 0, -1, StatechartSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(stateSpecificationEClass, StateSpecification.class, "StateSpecification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getStateSpecification_Scope(), theSGraphPackage.getScope(), null, "scope", null, 0, 1, StateSpecification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1230,7 +1230,7 @@ public class StextPackageImpl extends EPackageImpl implements StextPackage {
 		initEClass(activeStateReferenceExpressionEClass, ActiveStateReferenceExpression.class, "ActiveStateReferenceExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getActiveStateReferenceExpression_Value(), theSGraphPackage.getState(), null, "value", null, 0, 1, ActiveStateReferenceExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(annotationDefinitionEClass, AnnotationDefinition.class, "AnnotationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEClass(argumentedAnnotationEClass, ArgumentedAnnotation.class, "ArgumentedAnnotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		// Initialize enums and add enum literals
 		initEEnum(timeEventTypeEEnum, TimeEventType.class, "TimeEventType");

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

@@ -2,7 +2,16 @@
  */
 package org.yakindu.sct.model.stext.stext.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.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.yakindu.base.types.Annotation;
+import org.yakindu.base.types.Declaration;
+import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.impl.TypeAliasImpl;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TypeAliasDefinition;
@@ -11,10 +20,26 @@ import org.yakindu.sct.model.stext.stext.TypeAliasDefinition;
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Type Alias Definition</b></em>'.
  * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.stext.stext.impl.TypeAliasDefinitionImpl#getAnnotations <em>Annotations</em>}</li>
+ * </ul>
  *
  * @generated
  */
 public class TypeAliasDefinitionImpl extends TypeAliasImpl implements TypeAliasDefinition {
+	/**
+	 * The cached value of the '{@link #getAnnotations() <em>Annotations</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAnnotations()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Annotation> annotations;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -34,5 +59,123 @@ public class TypeAliasDefinitionImpl extends TypeAliasImpl implements TypeAliasD
 		return StextPackage.Literals.TYPE_ALIAS_DEFINITION;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Annotation> getAnnotations() {
+		if (annotations == null) {
+			annotations = new EObjectContainmentEList<Annotation>(Annotation.class, this, StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS);
+		}
+		return annotations;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS:
+				return ((InternalEList<?>)getAnnotations()).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 StextPackage.TYPE_ALIAS_DEFINITION__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 StextPackage.TYPE_ALIAS_DEFINITION__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 StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS:
+				getAnnotations().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS:
+				return annotations != null && !annotations.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == Declaration.class) {
+			switch (derivedFeatureID) {
+				case StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS: return TypesPackage.DECLARATION__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 == Declaration.class) {
+			switch (baseFeatureID) {
+				case TypesPackage.DECLARATION__ANNOTATIONS: return StextPackage.TYPE_ALIAS_DEFINITION__ANNOTATIONS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
 
 } //TypeAliasDefinitionImpl

+ 5 - 5
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/util/StextAdapterFactory.java

@@ -261,8 +261,8 @@ public class StextAdapterFactory extends AdapterFactoryImpl {
 				return createActiveStateReferenceExpressionAdapter();
 			}
 			@Override
-			public Adapter caseAnnotationDefinition(AnnotationDefinition object) {
-				return createAnnotationDefinitionAdapter();
+			public Adapter caseArgumentedAnnotation(ArgumentedAnnotation object) {
+				return createArgumentedAnnotationAdapter();
 			}
 			@Override
 			public Adapter caseScopedElement(ScopedElement object) {
@@ -855,16 +855,16 @@ public class StextAdapterFactory extends AdapterFactoryImpl {
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.AnnotationDefinition <em>Annotation Definition</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.stext.stext.ArgumentedAnnotation <em>Argumented 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.sct.model.stext.stext.AnnotationDefinition
+	 * @see org.yakindu.sct.model.stext.stext.ArgumentedAnnotation
 	 * @generated
 	 */
-	public Adapter createAnnotationDefinitionAdapter() {
+	public Adapter createArgumentedAnnotationAdapter() {
 		return null;
 	}
 

+ 9 - 9
plugins/org.yakindu.sct.model.stext/emf-gen/org/yakindu/sct/model/stext/stext/util/StextSwitch.java

@@ -388,12 +388,12 @@ public class StextSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case StextPackage.ANNOTATION_DEFINITION: {
-				AnnotationDefinition annotationDefinition = (AnnotationDefinition)theEObject;
-				T result = caseAnnotationDefinition(annotationDefinition);
-				if (result == null) result = caseAnnotation(annotationDefinition);
-				if (result == null) result = caseArgumentExpression(annotationDefinition);
-				if (result == null) result = caseExpression(annotationDefinition);
+			case StextPackage.ARGUMENTED_ANNOTATION: {
+				ArgumentedAnnotation argumentedAnnotation = (ArgumentedAnnotation)theEObject;
+				T result = caseArgumentedAnnotation(argumentedAnnotation);
+				if (result == null) result = caseAnnotation(argumentedAnnotation);
+				if (result == null) result = caseArgumentExpression(argumentedAnnotation);
+				if (result == null) result = caseExpression(argumentedAnnotation);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -927,17 +927,17 @@ public class StextSwitch<T> extends Switch<T> {
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Annotation Definition</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Argumented 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 Definition</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Argumented Annotation</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseAnnotationDefinition(AnnotationDefinition object) {
+	public T caseArgumentedAnnotation(ArgumentedAnnotation object) {
 		return null;
 	}
 

+ 3 - 3
plugins/org.yakindu.sct.model.stext/model/SText.ecore

@@ -19,8 +19,8 @@
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StatechartSpecification" eSuperTypes="../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//ScopedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="annotation" upperBound="-1"
-        eType="#//AnnotationDefinition" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
+        eType="#//ArgumentedAnnotation" containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="StateSpecification">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scope" eType="ecore:EClass ../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Scope"
@@ -107,5 +107,5 @@
   <eClassifiers xsi:type="ecore:EClass" name="ActiveStateReferenceExpression" eSuperTypes="../../org.yakindu.base.expressions/model/Expressions.ecore#//Expression">
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass ../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//State"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AnnotationDefinition" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Annotation ../../org.yakindu.base.expressions/model/Expressions.ecore#//ArgumentExpression"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ArgumentedAnnotation" eSuperTypes="../../org.yakindu.base.types/model/types.ecore#//Annotation ../../org.yakindu.base.expressions/model/Expressions.ecore#//ArgumentExpression"/>
 </ecore:EPackage>

+ 6 - 6
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext

@@ -18,13 +18,13 @@ DefRoot:
 	StatechartRoot | StateRoot | TransitionRoot;
 
 StatechartRoot:
-	'§§statechart§§' def=StatechartSpecification;
+	'@@statechart@@' def=StatechartSpecification;
 
 StateRoot:
-	'§§state§§' def=StateSpecification;
+	'@@state@@' def=StateSpecification;
 
 TransitionRoot:
-	'§§transition§§' def=TransitionSpecification;
+	'@@transition@@' def=TransitionSpecification;
 /* ---- start rules ----
 Define the starting points used by the statechart integration. These rules hook in the concrete rules of the specific grammar.
 */
@@ -33,7 +33,7 @@ ScopedElement returns sgraph::ScopedElement:
 
 StatechartSpecification:
 	{StatechartSpecification} ('namespace' namespace=FQN)?
-	(annotation+=AnnotationDefinition)*
+	(annotations+=ArgumentedAnnotation)*
 	(scopes+=StatechartScope)*;
 
 StateSpecification:
@@ -88,8 +88,8 @@ OperationDefinition:
 	{OperationDefinition} 'operation' name=XID '(' (parameters+=Parameter (',' parameters+=Parameter)*)? ')' (':'
 	typeSpecifier=TypeSpecifier)?;
 	
-AnnotationDefinition returns types::Annotation:
-	{AnnotationDefinition} '@' type=[types::AnnotationType|QID] ('('(args+=Expression (',' args+=Expression)*)? ')')?
+ArgumentedAnnotation returns types::Annotation:
+	{ArgumentedAnnotation} '@' type=[types::AnnotationType|QID] ('('(args+=Expression (',' args+=Expression)*)? ')')?
 ;
 TypeSpecifier returns types::TypeSpecifier:
 	type=[types::Type|FQN] ('<' (typeArguments+=TypeSpecifier (',' typeArguments+=TypeSpecifier)*'>'))?;

+ 2 - 2
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/inferrer/STextTypeInferrer.java

@@ -25,7 +25,7 @@ import org.yakindu.base.types.Event;
 import org.yakindu.base.types.Property;
 import org.yakindu.sct.model.sgraph.Scope;
 import org.yakindu.sct.model.stext.stext.ActiveStateReferenceExpression;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.EventRaisingExpression;
 import org.yakindu.sct.model.stext.stext.EventValueReferenceExpression;
 import org.yakindu.sct.model.stext.stext.Guard;
@@ -122,7 +122,7 @@ public class STextTypeInferrer extends ExpressionsTypeInferrer {
 		return getResultFor(BOOLEAN);
 	}
 
-	public InferenceResult doInfer(AnnotationDefinition ad) {
+	public InferenceResult doInfer(ArgumentedAnnotation ad) {
 		EList<Expression> arguments = ad.getArgs();
 		inferAnnotationProperty(ad.getType(), arguments);
 		return getResultFor(VOID);

+ 2 - 2
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/resource/StextResource.java

@@ -22,7 +22,7 @@ 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.resource.AbstractSCTResource;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionReaction;
@@ -109,7 +109,7 @@ public class StextResource extends AbstractSCTResource {
 		}
 		
 		statechart.getAnnotations().clear();
-		EList<AnnotationDefinition> annotations = rootASTElement.getAnnotation();
+		EList<ArgumentedAnnotation> annotations = rootASTElement.getAnnotation();
 		if(annotations != null){
 			statechart.getAnnotations().addAll(annotations);
 		}

+ 3 - 3
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java

@@ -75,7 +75,7 @@ import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
 import org.yakindu.sct.model.sgraph.validation.SCTResourceValidator;
 import org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator;
 import org.yakindu.sct.model.stext.services.STextGrammarAccess;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.model.stext.stext.DefaultTrigger;
 import org.yakindu.sct.model.stext.stext.EntryEvent;
 import org.yakindu.sct.model.stext.stext.EntryPointSpec;
@@ -556,7 +556,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 	}
 
 	@Check(CheckType.FAST)
-	public void checkAnnotationArguments(AnnotationDefinition annotation) {
+	public void checkAnnotationArguments(ArgumentedAnnotation annotation) {
 		if (annotation.getArgs().size() != annotation.getType().getProperties().size()) {
 			error(String.format(WRONG_NUMBER_OF_ARGUMENTS_MSG, annotation.getType().getProperties()), null,
 					WRONG_NUMBER_OF_ARGUMENTS_CODE);
@@ -782,7 +782,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 			});
 			if (!found) {
 				error(String.format(ERROR_WRONG_ANNOTATION_TARGET_MSG, annotation.getType().getName(),
-						element.eClass()), TypesPackage.Literals.ANNOTATABLE_ELEMENT__ANNOTATIONS,
+						element.eClass()), null,
 						element.getAnnotations().indexOf(annotation), ERROR_WRONG_ANNOTATION_TARGET_CODE);
 			}
 		}

+ 3 - 3
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/container/DefaultSimulationEngineFactory.java

@@ -25,7 +25,7 @@ import org.yakindu.base.types.typesystem.ITypeSystem;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.stext.stext.AnnotationDefinition;
+import org.yakindu.sct.model.stext.stext.ArgumentedAnnotation;
 import org.yakindu.sct.simulation.core.engine.ISimulationEngine;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IStatementInterpreter;
 import org.yakindu.sct.simulation.core.sexec.launch.ISCTLaunchParameters;
@@ -65,8 +65,8 @@ public class DefaultSimulationEngineFactory implements ISimulationEngineFactory
 	}
 
 	protected ISimulationEngine createController(Statechart statechart) throws CoreException {
-		AnnotationDefinition cycleBased = (AnnotationDefinition) statechart.getAnnotationOfType(CYCLE_BASED_ANNOTATION);
-		AnnotationDefinition eventDriven = (AnnotationDefinition) statechart
+		ArgumentedAnnotation cycleBased = (ArgumentedAnnotation) statechart.getAnnotationOfType(CYCLE_BASED_ANNOTATION);
+		ArgumentedAnnotation eventDriven = (ArgumentedAnnotation) statechart
 				.getAnnotationOfType(EVENT_DRIVEN_ANNOTATION);
 		if (cycleBased != null) {
 			Long result = (Long) interpreter.evaluateStatement(cycleBased.getArgs().get(0),

+ 1 - 1
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/SCTUnitClassifierTest.java

@@ -56,7 +56,7 @@ public class SCTUnitClassifierTest {
 			StextPackage.Literals.IMPORT_SCOPE, StextPackage.Literals.STATECHART_SCOPE,
 			SGraphPackage.Literals.IMPORT_DECLARATION, SGraphPackage.Literals.SCOPE,
 			StextPackage.Literals.TRANSITION_REACTION, SGraphPackage.Literals.REACTION_PROPERTY,
-			StextPackage.Literals.ANNOTATION_DEFINITION, SGraphPackage.Literals.ANNOTATABLE_ELEMENT);
+			StextPackage.Literals.ARGUMENTED_ANNOTATION);
 
 	@Test
 	public void checkEClassesCoveredByTestModels() throws Exception {