Browse Source

#366 : guicified SCTGenerators via domain

Johannes Dicks 9 years ago
parent
commit
daecfdc8d6
95 changed files with 11749 additions and 10883 deletions
  1. 1 1
      plugins/org.yakindu.base.types.edit/META-INF/MANIFEST.MF
  2. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/DomainElement.gif
  3. 196 194
      plugins/org.yakindu.base.types.edit/plugin.properties
  4. 24 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/base/provider/BaseItemProviderAdapterFactory.java
  5. 158 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/base/provider/DomainElementItemProvider.java
  6. 14 10
      plugins/org.yakindu.base.types/model/base.ecore
  7. 9 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/BaseFactory.java
  8. 68 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/BasePackage.java
  9. 50 50
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/DocumentedElement.java
  10. 51 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/DomainElement.java
  11. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/NamedElement.java
  12. 12 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/BaseFactoryImpl.java
  13. 32 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/BasePackageImpl.java
  14. 160 160
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/DocumentedElementImpl.java
  15. 163 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/DomainElementImpl.java
  16. 1 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/NamedElementImpl.java
  17. 19 0
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseAdapterFactory.java
  18. 23 1
      plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/util/BaseSwitch.java
  19. 2 1
      plugins/org.yakindu.sct.domain.generic/META-INF/MANIFEST.MF
  20. 28 12
      plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/extension/GenericDomainInjectorProvider.java
  21. 34 0
      plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/modules/GenericGeneratorModule.java
  22. 9 24
      plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/DomainRegistry.java
  23. 68 61
      plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/IDomainInjectorProvider.java
  24. 6 3
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/CCodeGenerator.java
  25. 2 2
      plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF
  26. 3 3
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/AbstractWorkspaceGenerator.java
  27. 24 16
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/GeneratorExecutor.java
  28. 59 16
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/EFSResourceFileSystemAccess.java
  29. 3 3
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/HeadlessFileSystemAccess.java
  30. 1 1
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/SCTFileSystemAccess.java
  31. 22 27
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSExecModelGenerator.java
  32. 109 57
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSGraphModelGenerator.java
  33. 15 16
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractXpandBasedCodeGenerator.java
  34. 9 43
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/GenericJavaBasedGenerator.java
  35. 1 1
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/IExecutionFlowGenerator.java
  36. 3 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/IDebugFeatureHelper.java
  37. 3 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/IOutletFeatureHelper.java
  38. 154 5
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/util/EFSHelper.java
  39. 6 3
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/CppCodeGenerator.java
  40. 7 3
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/JavaCodeGenerator.java
  41. 2 1
      plugins/org.yakindu.sct.model.resource/src/org/yakindu/sct/model/resource/SCTResourceFactory.java
  42. BIN
      plugins/org.yakindu.sct.model.sgraph.edit/icons/full/ctool16/CreateScope_declarations_Operation.gif
  43. BIN
      plugins/org.yakindu.sct.model.sgraph.edit/icons/full/ctool16/CreateScope_declarations_Property.gif
  44. 302 302
      plugins/org.yakindu.sct.model.sgraph.edit/src/org/yakindu/sct/model/sgraph/provider/StatechartItemProvider.java
  45. 110 112
      plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore
  46. 2 0
      plugins/org.yakindu.sct.model.sgraph/plugin.properties
  47. 67 67
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Choice.java
  48. 6 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ChoiceKind.java
  49. 58 58
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/CompositeElement.java
  50. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Entry.java
  51. 6 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/EntryKind.java
  52. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Import.java
  53. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ImportDeclaration.java
  54. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Reaction.java
  55. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ReactiveElement.java
  56. 87 87
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Region.java
  57. 2449 2468
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java
  58. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Scope.java
  59. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ScopedElement.java
  60. 65 65
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SpecificationElement.java
  61. 174 174
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/State.java
  62. 59 86
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Statechart.java
  63. 97 97
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Transition.java
  64. 106 106
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Vertex.java
  65. 174 174
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ChoiceImpl.java
  66. 177 177
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/CompositeElementImpl.java
  67. 52 54
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/EffectImpl.java
  68. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/EntryImpl.java
  69. 0 2
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ExitImpl.java
  70. 51 53
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/FinalStateImpl.java
  71. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ImportDeclarationImpl.java
  72. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ImportImpl.java
  73. 51 53
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/PseudostateImpl.java
  74. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactionImpl.java
  75. 0 2
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactionPropertyImpl.java
  76. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactiveElementImpl.java
  77. 264 264
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/RegionImpl.java
  78. 51 53
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/RegularStateImpl.java
  79. 331 330
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphFactoryImpl.java
  80. 1067 1077
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java
  81. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ScopeImpl.java
  82. 1 1
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ScopedElementImpl.java
  83. 175 175
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SpecificationElementImpl.java
  84. 934 934
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java
  85. 607 594
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java
  86. 0 2
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SynchronizationImpl.java
  87. 649 649
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/TransitionImpl.java
  88. 52 54
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/TriggerImpl.java
  89. 303 303
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/VertexImpl.java
  90. 666 627
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java
  91. 748 713
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java
  92. 3 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java
  93. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatechartPropertySection.java
  94. 236 235
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/wizards/CreationWizard.java
  95. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/wizards/DomainWizardPage.java

+ 1 - 1
plugins/org.yakindu.base.types.edit/META-INF/MANIFEST.MF

@@ -4,7 +4,7 @@ Bundle-Name: YAKINDU Base Types Edit
 Bundle-SymbolicName: org.yakindu.base.types.edit;singleton:=true
 Bundle-Version: 2.5.0.qualifier
 Bundle-ClassPath: .
-Bundle-Activator: org.yakindu.base.types.provider.TypesEditPlugin$Implementation
+Bundle-Activator: org.yakindu.base.base.provider.BaseEditPlugin$Implementation
 Bundle-Vendor: statecharts.org
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7

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


+ 196 - 194
plugins/org.yakindu.base.types.edit/plugin.properties

@@ -1,194 +1,196 @@
-
-# <copyright>
-# </copyright>
-#
-# $Id$
-
-pluginName = Types Edit Support
-providerName = www.example.org
-
-_UI_CreateChild_text = {0}
-_UI_CreateChild_text2 = {1} {0}
-_UI_CreateChild_text3 = {1}
-_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
-_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
-_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
-
-_UI_PropertyDescriptor_description = The {0} of the {1}
-
-_UI_Type_type = Type
-_UI_Feature_type = Feature
-_UI_Operation_type = Operation
-_UI_Property_type = Property
-_UI_Parameter_type = Parameter
-_UI_TypedElement_type = Typed Element
-_UI_NamedElement_type = Named Element
-_UI_Library_type = Library
-_UI_Unknown_type = Object
-
-_UI_Unknown_datatype= Value
-
-_UI_Type_features_feature = Features
-_UI_Type_superTypes_feature = Super Types
-_UI_Type_owningLibrary_feature = Owning Library
-_UI_Feature_owningType_feature = Owning Type
-_UI_Operation_parameters_feature = Parameters
-_UI_Parameter_owningOperation_feature = Owning Operation
-_UI_TypedElement_type_feature = Type
-_UI_NamedElement_name_feature = Name
-_UI_Library_types_feature = Types
-_UI_Library_id_feature = Id
-_UI_Unknown_feature = Unspecified
-
-_UI_Event_type = Event
-_UI_EAttribute_type = EAttribute
-_UI_EAnnotation_type = EAnnotation
-_UI_EClass_type = EClass
-_UI_EClassifier_type = EClassifier
-_UI_EDataType_type = EData Type
-_UI_EEnum_type = EEnum
-_UI_EEnumLiteral_type = EEnum Literal
-_UI_EFactory_type = EFactory
-_UI_EModelElement_type = EModel Element
-_UI_ENamedElement_type = ENamed Element
-_UI_EObject_type = EObject
-_UI_EOperation_type = EOperation
-_UI_EPackage_type = EPackage
-_UI_EParameter_type = EParameter
-_UI_EReference_type = EReference
-_UI_EStructuralFeature_type = EStructural Feature
-_UI_ETypedElement_type = ETyped Element
-_UI_EStringToStringMapEntry_type = EString To String Map Entry
-_UI_EGenericType_type = EGeneric Type
-_UI_ETypeParameter_type = EType Parameter
-_UI_EAttribute_iD_feature = ID
-_UI_EAttribute_eAttributeType_feature = EAttribute Type
-_UI_EAnnotation_source_feature = Source
-_UI_EAnnotation_details_feature = Details
-_UI_EAnnotation_eModelElement_feature = EModel Element
-_UI_EAnnotation_contents_feature = Contents
-_UI_EAnnotation_references_feature = References
-_UI_EClass_abstract_feature = Abstract
-_UI_EClass_interface_feature = Interface
-_UI_EClass_eSuperTypes_feature = ESuper Types
-_UI_EClass_eOperations_feature = EOperations
-_UI_EClass_eAllAttributes_feature = EAll Attributes
-_UI_EClass_eAllReferences_feature = EAll References
-_UI_EClass_eReferences_feature = EReferences
-_UI_EClass_eAttributes_feature = EAttributes
-_UI_EClass_eAllContainments_feature = EAll Containments
-_UI_EClass_eAllOperations_feature = EAll Operations
-_UI_EClass_eAllStructuralFeatures_feature = EAll Structural Features
-_UI_EClass_eAllSuperTypes_feature = EAll Super Types
-_UI_EClass_eIDAttribute_feature = EID Attribute
-_UI_EClass_eStructuralFeatures_feature = EStructural Features
-_UI_EClass_eGenericSuperTypes_feature = EGeneric Super Types
-_UI_EClass_eAllGenericSuperTypes_feature = EAll Generic Super Types
-_UI_EClassifier_instanceClassName_feature = Instance Class Name
-_UI_EClassifier_instanceClass_feature = Instance Class
-_UI_EClassifier_defaultValue_feature = Default Value
-_UI_EClassifier_instanceTypeName_feature = Instance Type Name
-_UI_EClassifier_ePackage_feature = EPackage
-_UI_EClassifier_eTypeParameters_feature = EType Parameters
-_UI_EDataType_serializable_feature = Serializable
-_UI_EEnum_eLiterals_feature = ELiterals
-_UI_EEnumLiteral_value_feature = Value
-_UI_EEnumLiteral_instance_feature = Instance
-_UI_EEnumLiteral_literal_feature = Literal
-_UI_EEnumLiteral_eEnum_feature = EEnum
-_UI_EFactory_ePackage_feature = EPackage
-_UI_EModelElement_eAnnotations_feature = EAnnotations
-_UI_ENamedElement_name_feature = Name
-_UI_EOperation_eContainingClass_feature = EContaining Class
-_UI_EOperation_eTypeParameters_feature = EType Parameters
-_UI_EOperation_eParameters_feature = EParameters
-_UI_EOperation_eExceptions_feature = EExceptions
-_UI_EOperation_eGenericExceptions_feature = EGeneric Exceptions
-_UI_EPackage_nsURI_feature = Ns URI
-_UI_EPackage_nsPrefix_feature = Ns Prefix
-_UI_EPackage_eFactoryInstance_feature = EFactory Instance
-_UI_EPackage_eClassifiers_feature = EClassifiers
-_UI_EPackage_eSubpackages_feature = ESubpackages
-_UI_EPackage_eSuperPackage_feature = ESuper Package
-_UI_EParameter_eOperation_feature = EOperation
-_UI_EReference_containment_feature = Containment
-_UI_EReference_container_feature = Container
-_UI_EReference_resolveProxies_feature = Resolve Proxies
-_UI_EReference_eOpposite_feature = EOpposite
-_UI_EReference_eReferenceType_feature = EReference Type
-_UI_EReference_eKeys_feature = EKeys
-_UI_EStructuralFeature_changeable_feature = Changeable
-_UI_EStructuralFeature_volatile_feature = Volatile
-_UI_EStructuralFeature_transient_feature = Transient
-_UI_EStructuralFeature_defaultValueLiteral_feature = Default Value Literal
-_UI_EStructuralFeature_defaultValue_feature = Default Value
-_UI_EStructuralFeature_unsettable_feature = Unsettable
-_UI_EStructuralFeature_derived_feature = Derived
-_UI_EStructuralFeature_eContainingClass_feature = EContaining Class
-_UI_ETypedElement_ordered_feature = Ordered
-_UI_ETypedElement_unique_feature = Unique
-_UI_ETypedElement_lowerBound_feature = Lower Bound
-_UI_ETypedElement_upperBound_feature = Upper Bound
-_UI_ETypedElement_many_feature = Many
-_UI_ETypedElement_required_feature = Required
-_UI_ETypedElement_eType_feature = EType
-_UI_ETypedElement_eGenericType_feature = EGeneric Type
-_UI_EStringToStringMapEntry_key_feature = Key
-_UI_EStringToStringMapEntry_value_feature = Value
-_UI_EGenericType_eUpperBound_feature = EUpper Bound
-_UI_EGenericType_eTypeArguments_feature = EType Arguments
-_UI_EGenericType_eRawType_feature = ERaw Type
-_UI_EGenericType_eLowerBound_feature = ELower Bound
-_UI_EGenericType_eTypeParameter_feature = EType Parameter
-_UI_EGenericType_eClassifier_feature = EClassifier
-_UI_ETypeParameter_eBounds_feature = EBounds
-_UI_EnumerationType_type = Enumeration Type
-_UI_PrimitiveType_type = Primitive Type
-_UI_DataType_type = Data Type
-_UI_Enumerator_type = Enumerator
-_UI_DataType_features_feature = Features
-_UI_DataType_superTypes_feature = Super Types
-_UI_EnumerationType_enumerator_feature = Enumerator
-_UI_PrimitiveType_baseType_feature = Base Type
-_UI_Enumerator_owningEnumeration_feature = Owning Enumeration
-_UI_Enumerator_value_feature = Value
-_UI_IntegerType_type = Integer Type
-_UI_RealType_type = Real Type
-_UI_BooleanType_type = Boolean Type
-_UI_StringType_type = String Type
-_UI_VoidType_type = Void Type
-_UI_TypeConstraint_type = Type Constraint
-_UI_Type_constraint_feature = Constraint
-_UI_Enumerator_literalValue_feature = Literal Value
-_UI_TypeConstraint_value_feature = Value
-_UI_ComplexType_type = Complex Type
-_UI_ComplexType_features_feature = Features
-_UI_ComplexType_superTypes_feature = Super Types
-_UI_DocumentedElement_type = Documented Element
-_UI_DocumentedElement_documentation_feature = Documentation
-_UI_Package_type = Package
-_UI_TypeParameter_type = Type Parameter
-_UI_ParameterizedType_type = Parameterized Type
-_UI_PackageMember_type = Package Member
-_UI_RangeConstraint_type = Range Constraint
-_UI_Package_member_feature = Member
-_UI_Type_scheme_feature = Scheme
-_UI_TypedElement_typeArguments_feature = Type Arguments
-_UI_TypeParameter_bound_feature = Bound
-_UI_ParameterizedType_parameter_feature = Parameter
-_UI_RangeConstraint_lowerBound_feature = Lower Bound
-_UI_RangeConstraint_upperBound_feature = Upper Bound
-_UI_Type_domainID_feature = Domain ID
-_UI_Type_abstract_feature = Abstract
-_UI_Domain_type = Domain
-_UI_TypeAlias_type = Type Alias
-_UI_Package_domain_feature = Domain
-_UI_Domain_domainID_feature = Domain ID
-_UI_Declaration_type = Declaration
-_UI_Property_const_feature = Const
-_UI_Property_readonly_feature = Readonly
-_UI_Property_external_feature = External
-_UI_Event_direction_feature = Direction
-_UI_Direction_LOCAL_literal = local
-_UI_Direction_IN_literal = in
-_UI_Direction_OUT_literal = out
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Types Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Type_type = Type
+_UI_Feature_type = Feature
+_UI_Operation_type = Operation
+_UI_Property_type = Property
+_UI_Parameter_type = Parameter
+_UI_TypedElement_type = Typed Element
+_UI_NamedElement_type = Named Element
+_UI_Library_type = Library
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Type_features_feature = Features
+_UI_Type_superTypes_feature = Super Types
+_UI_Type_owningLibrary_feature = Owning Library
+_UI_Feature_owningType_feature = Owning Type
+_UI_Operation_parameters_feature = Parameters
+_UI_Parameter_owningOperation_feature = Owning Operation
+_UI_TypedElement_type_feature = Type
+_UI_NamedElement_name_feature = Name
+_UI_Library_types_feature = Types
+_UI_Library_id_feature = Id
+_UI_Unknown_feature = Unspecified
+
+_UI_Event_type = Event
+_UI_EAttribute_type = EAttribute
+_UI_EAnnotation_type = EAnnotation
+_UI_EClass_type = EClass
+_UI_EClassifier_type = EClassifier
+_UI_EDataType_type = EData Type
+_UI_EEnum_type = EEnum
+_UI_EEnumLiteral_type = EEnum Literal
+_UI_EFactory_type = EFactory
+_UI_EModelElement_type = EModel Element
+_UI_ENamedElement_type = ENamed Element
+_UI_EObject_type = EObject
+_UI_EOperation_type = EOperation
+_UI_EPackage_type = EPackage
+_UI_EParameter_type = EParameter
+_UI_EReference_type = EReference
+_UI_EStructuralFeature_type = EStructural Feature
+_UI_ETypedElement_type = ETyped Element
+_UI_EStringToStringMapEntry_type = EString To String Map Entry
+_UI_EGenericType_type = EGeneric Type
+_UI_ETypeParameter_type = EType Parameter
+_UI_EAttribute_iD_feature = ID
+_UI_EAttribute_eAttributeType_feature = EAttribute Type
+_UI_EAnnotation_source_feature = Source
+_UI_EAnnotation_details_feature = Details
+_UI_EAnnotation_eModelElement_feature = EModel Element
+_UI_EAnnotation_contents_feature = Contents
+_UI_EAnnotation_references_feature = References
+_UI_EClass_abstract_feature = Abstract
+_UI_EClass_interface_feature = Interface
+_UI_EClass_eSuperTypes_feature = ESuper Types
+_UI_EClass_eOperations_feature = EOperations
+_UI_EClass_eAllAttributes_feature = EAll Attributes
+_UI_EClass_eAllReferences_feature = EAll References
+_UI_EClass_eReferences_feature = EReferences
+_UI_EClass_eAttributes_feature = EAttributes
+_UI_EClass_eAllContainments_feature = EAll Containments
+_UI_EClass_eAllOperations_feature = EAll Operations
+_UI_EClass_eAllStructuralFeatures_feature = EAll Structural Features
+_UI_EClass_eAllSuperTypes_feature = EAll Super Types
+_UI_EClass_eIDAttribute_feature = EID Attribute
+_UI_EClass_eStructuralFeatures_feature = EStructural Features
+_UI_EClass_eGenericSuperTypes_feature = EGeneric Super Types
+_UI_EClass_eAllGenericSuperTypes_feature = EAll Generic Super Types
+_UI_EClassifier_instanceClassName_feature = Instance Class Name
+_UI_EClassifier_instanceClass_feature = Instance Class
+_UI_EClassifier_defaultValue_feature = Default Value
+_UI_EClassifier_instanceTypeName_feature = Instance Type Name
+_UI_EClassifier_ePackage_feature = EPackage
+_UI_EClassifier_eTypeParameters_feature = EType Parameters
+_UI_EDataType_serializable_feature = Serializable
+_UI_EEnum_eLiterals_feature = ELiterals
+_UI_EEnumLiteral_value_feature = Value
+_UI_EEnumLiteral_instance_feature = Instance
+_UI_EEnumLiteral_literal_feature = Literal
+_UI_EEnumLiteral_eEnum_feature = EEnum
+_UI_EFactory_ePackage_feature = EPackage
+_UI_EModelElement_eAnnotations_feature = EAnnotations
+_UI_ENamedElement_name_feature = Name
+_UI_EOperation_eContainingClass_feature = EContaining Class
+_UI_EOperation_eTypeParameters_feature = EType Parameters
+_UI_EOperation_eParameters_feature = EParameters
+_UI_EOperation_eExceptions_feature = EExceptions
+_UI_EOperation_eGenericExceptions_feature = EGeneric Exceptions
+_UI_EPackage_nsURI_feature = Ns URI
+_UI_EPackage_nsPrefix_feature = Ns Prefix
+_UI_EPackage_eFactoryInstance_feature = EFactory Instance
+_UI_EPackage_eClassifiers_feature = EClassifiers
+_UI_EPackage_eSubpackages_feature = ESubpackages
+_UI_EPackage_eSuperPackage_feature = ESuper Package
+_UI_EParameter_eOperation_feature = EOperation
+_UI_EReference_containment_feature = Containment
+_UI_EReference_container_feature = Container
+_UI_EReference_resolveProxies_feature = Resolve Proxies
+_UI_EReference_eOpposite_feature = EOpposite
+_UI_EReference_eReferenceType_feature = EReference Type
+_UI_EReference_eKeys_feature = EKeys
+_UI_EStructuralFeature_changeable_feature = Changeable
+_UI_EStructuralFeature_volatile_feature = Volatile
+_UI_EStructuralFeature_transient_feature = Transient
+_UI_EStructuralFeature_defaultValueLiteral_feature = Default Value Literal
+_UI_EStructuralFeature_defaultValue_feature = Default Value
+_UI_EStructuralFeature_unsettable_feature = Unsettable
+_UI_EStructuralFeature_derived_feature = Derived
+_UI_EStructuralFeature_eContainingClass_feature = EContaining Class
+_UI_ETypedElement_ordered_feature = Ordered
+_UI_ETypedElement_unique_feature = Unique
+_UI_ETypedElement_lowerBound_feature = Lower Bound
+_UI_ETypedElement_upperBound_feature = Upper Bound
+_UI_ETypedElement_many_feature = Many
+_UI_ETypedElement_required_feature = Required
+_UI_ETypedElement_eType_feature = EType
+_UI_ETypedElement_eGenericType_feature = EGeneric Type
+_UI_EStringToStringMapEntry_key_feature = Key
+_UI_EStringToStringMapEntry_value_feature = Value
+_UI_EGenericType_eUpperBound_feature = EUpper Bound
+_UI_EGenericType_eTypeArguments_feature = EType Arguments
+_UI_EGenericType_eRawType_feature = ERaw Type
+_UI_EGenericType_eLowerBound_feature = ELower Bound
+_UI_EGenericType_eTypeParameter_feature = EType Parameter
+_UI_EGenericType_eClassifier_feature = EClassifier
+_UI_ETypeParameter_eBounds_feature = EBounds
+_UI_EnumerationType_type = Enumeration Type
+_UI_PrimitiveType_type = Primitive Type
+_UI_DataType_type = Data Type
+_UI_Enumerator_type = Enumerator
+_UI_DataType_features_feature = Features
+_UI_DataType_superTypes_feature = Super Types
+_UI_EnumerationType_enumerator_feature = Enumerator
+_UI_PrimitiveType_baseType_feature = Base Type
+_UI_Enumerator_owningEnumeration_feature = Owning Enumeration
+_UI_Enumerator_value_feature = Value
+_UI_IntegerType_type = Integer Type
+_UI_RealType_type = Real Type
+_UI_BooleanType_type = Boolean Type
+_UI_StringType_type = String Type
+_UI_VoidType_type = Void Type
+_UI_TypeConstraint_type = Type Constraint
+_UI_Type_constraint_feature = Constraint
+_UI_Enumerator_literalValue_feature = Literal Value
+_UI_TypeConstraint_value_feature = Value
+_UI_ComplexType_type = Complex Type
+_UI_ComplexType_features_feature = Features
+_UI_ComplexType_superTypes_feature = Super Types
+_UI_DocumentedElement_type = Documented Element
+_UI_DocumentedElement_documentation_feature = Documentation
+_UI_Package_type = Package
+_UI_TypeParameter_type = Type Parameter
+_UI_ParameterizedType_type = Parameterized Type
+_UI_PackageMember_type = Package Member
+_UI_RangeConstraint_type = Range Constraint
+_UI_Package_member_feature = Member
+_UI_Type_scheme_feature = Scheme
+_UI_TypedElement_typeArguments_feature = Type Arguments
+_UI_TypeParameter_bound_feature = Bound
+_UI_ParameterizedType_parameter_feature = Parameter
+_UI_RangeConstraint_lowerBound_feature = Lower Bound
+_UI_RangeConstraint_upperBound_feature = Upper Bound
+_UI_Type_domainID_feature = Domain ID
+_UI_Type_abstract_feature = Abstract
+_UI_Domain_type = Domain
+_UI_TypeAlias_type = Type Alias
+_UI_Package_domain_feature = Domain
+_UI_Domain_domainID_feature = Domain ID
+_UI_Declaration_type = Declaration
+_UI_Property_const_feature = Const
+_UI_Property_readonly_feature = Readonly
+_UI_Property_external_feature = External
+_UI_Event_direction_feature = Direction
+_UI_Direction_LOCAL_literal = local
+_UI_Direction_IN_literal = in
+_UI_Direction_OUT_literal = out
+_UI_DomainElement_type = Domain Element
+_UI_DomainElement_domainID_feature = Domain ID

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

@@ -123,6 +123,29 @@ public class BaseItemProviderAdapterFactory extends BaseAdapterFactory implement
 		return documentedElementItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.base.DomainElement} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DomainElementItemProvider domainElementItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.base.DomainElement}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createDomainElementAdapter() {
+		if (domainElementItemProvider == null) {
+			domainElementItemProvider = new DomainElementItemProvider(this);
+		}
+
+		return domainElementItemProvider;
+	}
+
 	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
@@ -224,6 +247,7 @@ public class BaseItemProviderAdapterFactory extends BaseAdapterFactory implement
 	public void dispose() {
 		if (namedElementItemProvider != null) namedElementItemProvider.dispose();
 		if (documentedElementItemProvider != null) documentedElementItemProvider.dispose();
+		if (domainElementItemProvider != null) domainElementItemProvider.dispose();
 	}
 
 }

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

@@ -0,0 +1,158 @@
+/**
+ */
+package org.yakindu.base.base.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.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.base.DomainElement;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.base.DomainElement} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DomainElementItemProvider 
+	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 DomainElementItemProvider(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);
+
+			addDomainIDPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Domain ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDomainIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DomainElement_domainID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_DomainElement_domainID_feature", "_UI_DomainElement_type"),
+				 BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns DomainElement.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/DomainElement"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((DomainElement)object).getDomainID();
+		return label == null || label.length() == 0 ?
+			getString("_UI_DomainElement_type") :
+			getString("_UI_DomainElement_type") + " " + label;
+	}
+	
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(DomainElement.class)) {
+			case BasePackage.DOMAIN_ELEMENT__DOMAIN_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				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);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return BaseEditPlugin.INSTANCE;
+	}
+
+}

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

@@ -1,10 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="base" nsURI="http://www.yakindu.org/base/base/2.0.0" nsPrefix="base">
-  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-</ecore:EPackage>
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="base" nsURI="http://www.yakindu.org/base/base/2.0.0" nsPrefix="base">
+  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DocumentedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="DomainElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        defaultValueLiteral="org.yakindu.domain.default"/>
+  </eClassifiers>
+</ecore:EPackage>

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

@@ -43,6 +43,15 @@ public interface BaseFactory extends EFactory {
 	 */
 	DocumentedElement createDocumentedElement();
 
+	/**
+	 * Returns a new object of class '<em>Domain Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Domain Element</em>'.
+	 * @generated
+	 */
+	DomainElement createDomainElement();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->

+ 68 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/BasePackage.java

@@ -116,6 +116,35 @@ public interface BasePackage extends EPackage {
 	int DOCUMENTED_ELEMENT_FEATURE_COUNT = 1;
 
 
+	/**
+	 * The meta object id for the '{@link org.yakindu.base.base.impl.DomainElementImpl <em>Domain Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.base.base.impl.DomainElementImpl
+	 * @see org.yakindu.base.base.impl.BasePackageImpl#getDomainElement()
+	 * @generated
+	 */
+	int DOMAIN_ELEMENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Domain ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN_ELEMENT__DOMAIN_ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Domain Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DOMAIN_ELEMENT_FEATURE_COUNT = 1;
+
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.base.base.NamedElement <em>Named Element</em>}'.
 	 * <!-- begin-user-doc -->
@@ -158,6 +187,27 @@ public interface BasePackage extends EPackage {
 	 */
 	EAttribute getDocumentedElement_Documentation();
 
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.base.base.DomainElement <em>Domain Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Domain Element</em>'.
+	 * @see org.yakindu.base.base.DomainElement
+	 * @generated
+	 */
+	EClass getDomainElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.yakindu.base.base.DomainElement#getDomainID <em>Domain ID</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Domain ID</em>'.
+	 * @see org.yakindu.base.base.DomainElement#getDomainID()
+	 * @see #getDomainElement()
+	 * @generated
+	 */
+	EAttribute getDomainElement_DomainID();
+
 	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
@@ -216,6 +266,24 @@ public interface BasePackage extends EPackage {
 		 */
 		EAttribute DOCUMENTED_ELEMENT__DOCUMENTATION = eINSTANCE.getDocumentedElement_Documentation();
 
+		/**
+		 * The meta object literal for the '{@link org.yakindu.base.base.impl.DomainElementImpl <em>Domain Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.base.base.impl.DomainElementImpl
+		 * @see org.yakindu.base.base.impl.BasePackageImpl#getDomainElement()
+		 * @generated
+		 */
+		EClass DOMAIN_ELEMENT = eINSTANCE.getDomainElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Domain ID</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DOMAIN_ELEMENT__DOMAIN_ID = eINSTANCE.getDomainElement_DomainID();
+
 	}
 
 } //BasePackage

+ 50 - 50
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/DocumentedElement.java

@@ -1,50 +1,50 @@
-/**
- */
-package org.yakindu.base.base;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Documented Element</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.base.base.DocumentedElement#getDocumentation <em>Documentation</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.base.base.BasePackage#getDocumentedElement()
- * @model
- * @generated
- */
-public interface DocumentedElement extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Documentation</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Documentation</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Documentation</em>' attribute.
-	 * @see #setDocumentation(String)
-	 * @see org.yakindu.base.base.BasePackage#getDocumentedElement_Documentation()
-	 * @model
-	 * @generated
-	 */
-	String getDocumentation();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.base.base.DocumentedElement#getDocumentation <em>Documentation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Documentation</em>' attribute.
-	 * @see #getDocumentation()
-	 * @generated
-	 */
-	void setDocumentation(String value);
-
-} // DocumentedElement
+/**
+ */
+package org.yakindu.base.base;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Documented Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.base.DocumentedElement#getDocumentation <em>Documentation</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.base.base.BasePackage#getDocumentedElement()
+ * @model
+ * @generated
+ */
+public interface DocumentedElement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Documentation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Documentation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Documentation</em>' attribute.
+	 * @see #setDocumentation(String)
+	 * @see org.yakindu.base.base.BasePackage#getDocumentedElement_Documentation()
+	 * @model
+	 * @generated
+	 */
+	String getDocumentation();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.base.base.DocumentedElement#getDocumentation <em>Documentation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Documentation</em>' attribute.
+	 * @see #getDocumentation()
+	 * @generated
+	 */
+	void setDocumentation(String value);
+
+} // DocumentedElement

+ 51 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/DomainElement.java

@@ -0,0 +1,51 @@
+/**
+ */
+package org.yakindu.base.base;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Domain Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.base.DomainElement#getDomainID <em>Domain ID</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.base.base.BasePackage#getDomainElement()
+ * @model
+ * @generated
+ */
+public interface DomainElement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Domain ID</b></em>' attribute.
+	 * The default value is <code>"org.yakindu.domain.default"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Domain ID</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Domain ID</em>' attribute.
+	 * @see #setDomainID(String)
+	 * @see org.yakindu.base.base.BasePackage#getDomainElement_DomainID()
+	 * @model default="org.yakindu.domain.default"
+	 * @generated
+	 */
+	String getDomainID();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.base.base.DomainElement#getDomainID <em>Domain ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Domain ID</em>' attribute.
+	 * @see #getDomainID()
+	 * @generated
+	 */
+	void setDomainID(String value);
+
+} // DomainElement

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

@@ -15,10 +15,10 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.base.base.NamedElement#getName <em>Name</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.base.base.BasePackage#getNamedElement()
  * @model

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

@@ -11,6 +11,7 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.yakindu.base.base.*;
 import org.yakindu.base.base.BaseFactory;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
@@ -62,6 +63,7 @@ public class BaseFactoryImpl extends EFactoryImpl implements BaseFactory {
 		switch (eClass.getClassifierID()) {
 			case BasePackage.NAMED_ELEMENT: return createNamedElement();
 			case BasePackage.DOCUMENTED_ELEMENT: return createDocumentedElement();
+			case BasePackage.DOMAIN_ELEMENT: return createDomainElement();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -87,6 +89,16 @@ public class BaseFactoryImpl extends EFactoryImpl implements BaseFactory {
 		return documentedElement;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DomainElement createDomainElement() {
+		DomainElementImpl domainElement = new DomainElementImpl();
+		return domainElement;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 32 - 0
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/BasePackageImpl.java

@@ -13,6 +13,7 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.yakindu.base.base.BaseFactory;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
+import org.yakindu.base.base.DomainElement;
 import org.yakindu.base.base.NamedElement;
 
 /**
@@ -36,6 +37,13 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 	 */
 	private EClass documentedElementEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass domainElementEClass = null;
+
 	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
 	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
@@ -133,6 +141,24 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		return (EAttribute)documentedElementEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDomainElement() {
+		return domainElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDomainElement_DomainID() {
+		return (EAttribute)domainElementEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166,6 +192,9 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 
 		documentedElementEClass = createEClass(DOCUMENTED_ELEMENT);
 		createEAttribute(documentedElementEClass, DOCUMENTED_ELEMENT__DOCUMENTATION);
+
+		domainElementEClass = createEClass(DOMAIN_ELEMENT);
+		createEAttribute(domainElementEClass, DOMAIN_ELEMENT__DOMAIN_ID);
 	}
 
 	/**
@@ -204,6 +233,9 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		initEClass(documentedElementEClass, DocumentedElement.class, "DocumentedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getDocumentedElement_Documentation(), ecorePackage.getEString(), "documentation", null, 0, 1, DocumentedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(domainElementEClass, DomainElement.class, "DomainElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDomainElement_DomainID(), ecorePackage.getEString(), "domainID", "org.yakindu.domain.default", 0, 1, DomainElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Create resource
 		createResource(eNS_URI);
 	}

+ 160 - 160
plugins/org.yakindu.base.types/src-gen/org/yakindu/base/base/impl/DocumentedElementImpl.java

@@ -1,160 +1,160 @@
-/**
- */
-package org.yakindu.base.base.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.yakindu.base.base.BasePackage;
-import org.yakindu.base.base.DocumentedElement;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Documented Element</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.base.base.impl.DocumentedElementImpl#getDocumentation <em>Documentation</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class DocumentedElementImpl extends EObjectImpl implements DocumentedElement {
-	/**
-	 * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDocumentation()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DOCUMENTATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDocumentation()
-	 * @generated
-	 * @ordered
-	 */
-	protected String documentation = DOCUMENTATION_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DocumentedElementImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return BasePackage.Literals.DOCUMENTED_ELEMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getDocumentation() {
-		return documentation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDocumentation(String newDocumentation) {
-		String oldDocumentation = documentation;
-		documentation = newDocumentation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION, oldDocumentation, documentation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-				return getDocumentation();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-				setDocumentation((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-				setDocumentation(DOCUMENTATION_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
-				return DOCUMENTATION_EDEFAULT == null ? documentation != null : !DOCUMENTATION_EDEFAULT.equals(documentation);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (documentation: ");
-		result.append(documentation);
-		result.append(')');
-		return result.toString();
-	}
-
-} //DocumentedElementImpl
+/**
+ */
+package org.yakindu.base.base.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.base.DocumentedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Documented Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.base.impl.DocumentedElementImpl#getDocumentation <em>Documentation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DocumentedElementImpl extends EObjectImpl implements DocumentedElement {
+	/**
+	 * The default value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDocumentation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DOCUMENTATION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDocumentation() <em>Documentation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDocumentation()
+	 * @generated
+	 * @ordered
+	 */
+	protected String documentation = DOCUMENTATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DocumentedElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BasePackage.Literals.DOCUMENTED_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDocumentation() {
+		return documentation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDocumentation(String newDocumentation) {
+		String oldDocumentation = documentation;
+		documentation = newDocumentation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION, oldDocumentation, documentation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
+				return getDocumentation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
+				setDocumentation((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
+				setDocumentation(DOCUMENTATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BasePackage.DOCUMENTED_ELEMENT__DOCUMENTATION:
+				return DOCUMENTATION_EDEFAULT == null ? documentation != null : !DOCUMENTATION_EDEFAULT.equals(documentation);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (documentation: ");
+		result.append(documentation);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DocumentedElementImpl

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

@@ -0,0 +1,163 @@
+/**
+ */
+package org.yakindu.base.base.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.base.DomainElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Domain Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.base.base.impl.DomainElementImpl#getDomainID <em>Domain ID</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DomainElementImpl extends EObjectImpl implements DomainElement {
+	/**
+	 * The default value of the '{@link #getDomainID() <em>Domain ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDomainID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DOMAIN_ID_EDEFAULT = "org.yakindu.domain.default";
+
+	/**
+	 * The cached value of the '{@link #getDomainID() <em>Domain ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDomainID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String domainID = DOMAIN_ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DomainElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BasePackage.Literals.DOMAIN_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDomainID() {
+		return domainID;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDomainID(String newDomainID) {
+		String oldDomainID = domainID;
+		domainID = newDomainID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.DOMAIN_ELEMENT__DOMAIN_ID, oldDomainID, domainID));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BasePackage.DOMAIN_ELEMENT__DOMAIN_ID:
+				return getDomainID();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BasePackage.DOMAIN_ELEMENT__DOMAIN_ID:
+				setDomainID((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BasePackage.DOMAIN_ELEMENT__DOMAIN_ID:
+				setDomainID(DOMAIN_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BasePackage.DOMAIN_ELEMENT__DOMAIN_ID:
+				return DOMAIN_ID_EDEFAULT == null ? domainID != null : !DOMAIN_ID_EDEFAULT.equals(domainID);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (domainID: ");
+		result.append(domainID);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DomainElementImpl

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

@@ -19,10 +19,10 @@ import org.yakindu.base.base.NamedElement;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.base.base.impl.NamedElementImpl#getName <em>Name</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

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

@@ -10,6 +10,7 @@ import org.eclipse.emf.common.notify.Adapter;
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
+import org.yakindu.base.base.*;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.NamedElement;
@@ -79,6 +80,10 @@ public class BaseAdapterFactory extends AdapterFactoryImpl {
 				return createDocumentedElementAdapter();
 			}
 			@Override
+			public Adapter caseDomainElement(DomainElement object) {
+				return createDomainElementAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -126,6 +131,20 @@ public class BaseAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.base.base.DomainElement <em>Domain Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.base.base.DomainElement
+	 * @generated
+	 */
+	public Adapter createDomainElementAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->

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

@@ -9,6 +9,7 @@ package org.yakindu.base.base.util;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
+import org.yakindu.base.base.*;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.base.DocumentedElement;
 import org.yakindu.base.base.NamedElement;
@@ -51,7 +52,7 @@ public class BaseSwitch<T> extends Switch<T> {
 	 * Checks whether this is a switch for the given package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
@@ -82,6 +83,12 @@ public class BaseSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case BasePackage.DOMAIN_ELEMENT: {
+				DomainElement domainElement = (DomainElement)theEObject;
+				T result = caseDomainElement(domainElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -116,6 +123,21 @@ public class BaseSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Domain 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>Domain Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDomainElement(DomainElement object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->

+ 2 - 1
plugins/org.yakindu.sct.domain.generic/META-INF/MANIFEST.MF

@@ -17,7 +17,8 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.gmf.runtime.notation,
  org.yakindu.sct.ui.editor,
  org.yakindu.base.xtext.utils.gmf,
- org.yakindu.sct.refactoring
+ org.yakindu.sct.refactoring,
+ org.yakindu.sct.generator.core;bundle-version="2.5.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Export-Package: org.yakindu.sct.domain.generic,

+ 28 - 12
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/extension/GenericDomainInjectorProvider.java

@@ -10,17 +10,16 @@
  */
 package org.yakindu.sct.domain.generic.extension;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.ui.shared.SharedStateModule;
 import org.yakindu.sct.domain.extension.IDomainInjectorProvider;
 import org.yakindu.sct.domain.generic.modules.EntryRuleRuntimeModule;
 import org.yakindu.sct.domain.generic.modules.EntryRuleUIModule;
 import org.yakindu.sct.domain.generic.modules.GenericEditorModule;
+import org.yakindu.sct.domain.generic.modules.GenericGeneratorModule;
 import org.yakindu.sct.domain.generic.modules.GenericSequencerModule;
 import org.yakindu.sct.domain.generic.modules.GenericSimulationModule;
 import org.yakindu.sct.domain.generic.modules.GenericTypeSystemModule;
@@ -35,7 +34,6 @@ import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 import org.yakindu.sct.model.stext.ui.STextUiModule;
 import org.yakindu.sct.model.stext.ui.internal.STextActivator;
 
-import com.google.common.collect.Lists;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.Module;
@@ -85,6 +83,12 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 		return new GenericSequencerModule();
 	}
 
+	public Module getGeneratorModule(String generatorId) {
+		// currently there is only one module with shared bindings for all code
+		// generators
+		return new GenericGeneratorModule();
+	}
+
 	protected Module getResourceModule() {
 		Module uiModule = Modules.override(getLanguageRuntimeModule()).with(getLanguageUIModule());
 		Module result = Modules.override(uiModule).with(getSharedStateModule());
@@ -119,21 +123,16 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 	public Injector getSimulationInjector() {
 		return Guice.createInjector(getSimulationModule());
 	}
-	
+
 	@Override
 	public Injector getSequencerInjector() {
 		return Guice.createInjector(getSequencerModule());
 	}
-	
+
 	@Override
 	public Injector getSequencerInjector(Module overrides) {
-		ArrayList<Module> tmpOverrides = Lists.newArrayList(overrides);
-		//FIXME !!! remove shared state module
-		if(Platform.isRunning()){
-			tmpOverrides.add(getSharedStateModule());
-		}
-		if(tmpOverrides != null) {
-			return Guice.createInjector(Modules.override(getSequencerModule()).with(tmpOverrides));
+		if (overrides != null) {
+			return Guice.createInjector(Modules.override(getSequencerModule()).with(overrides));
 		}
 		return getSequencerInjector();
 	}
@@ -142,4 +141,21 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 	public Injector getEditorInjector() {
 		return Guice.createInjector(new GenericEditorModule());
 	}
+
+	@Override
+	public Injector getGeneratorInjector(String generatorId) {
+		return getGeneratorInjector(generatorId, null);
+	}
+
+	@Override
+	public Injector getGeneratorInjector(String generatorId, Module overrides) {
+		Module result = null;
+		if (overrides != null) {
+			result = Modules.override(getGeneratorModule(generatorId)).with(overrides);
+		} else
+			result = getGeneratorModule(generatorId);
+		result = Modules.combine(result, getSequencerModule());
+		return Guice.createInjector(result);
+	}
+
 }

+ 34 - 0
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/modules/GenericGeneratorModule.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2016 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.domain.generic.modules;
+
+import org.eclipse.xtext.service.AbstractGenericModule;
+import org.yakindu.sct.generator.core.filesystem.EFSResourceFileSystemAccess;
+import org.yakindu.sct.generator.core.filesystem.ISCTFileSystemAccess;
+import org.yakindu.sct.generator.core.impl.IGeneratorLog;
+import org.yakindu.sct.generator.core.util.EclipseConsoleLog;
+
+/**
+ * @author Johannes Dicks - Initial contribution and API
+ *
+ */
+public class GenericGeneratorModule extends AbstractGenericModule {
+
+	public Class<? extends ISCTFileSystemAccess> bindISCTFileSystemAccess() {
+		return EFSResourceFileSystemAccess.class;
+	}
+
+	public Class<? extends IGeneratorLog> bindIGeneratorLog() {
+		return EclipseConsoleLog.class;
+	}
+
+}

+ 9 - 24
plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/DomainRegistry.java

@@ -18,14 +18,12 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.xtext.EcoreUtil2;
 import org.osgi.framework.Bundle;
-import org.yakindu.base.xtext.utils.jface.viewers.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.base.base.DomainElement;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
@@ -124,7 +122,7 @@ public class DomainRegistry {
 	}
 
 	public static IDomainDescriptor getDomainDescriptor(final String id) {
-		final String defaultDomainID = SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral();
+		final String defaultDomainID = BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral();
 		try {
 			return Iterables.find(getDomainDescriptors(), new Predicate<IDomainDescriptor>() {
 				@Override
@@ -142,23 +140,10 @@ public class DomainRegistry {
 	}
 
 	public static IDomainDescriptor getDomainDescriptor(EObject object) {
-		EObject rootContainer = EcoreUtil.getRootContainer(object);
-				if (rootContainer instanceof Statechart)
-						return getDomainDescriptor(((Statechart) rootContainer).getDomainID());
-					else {
-						return getDomainDescriptor(((Statechart) getStatechart(object)).getDomainID());
-					}
-				}
-				
-				protected static Statechart getStatechart(EObject context) {
-					final ContextElementAdapter provider = (ContextElementAdapter) EcoreUtil.getExistingAdapter(context.eResource(),
-							ContextElementAdapter.class);
-			
-					if (provider == null) {
-						return EcoreUtil2.getContainerOfType(context, Statechart.class);
-					} else {
-						return (Statechart) EcoreUtil.getObjectByType(provider.getElement().eResource().getContents(),
-								SGraphPackage.Literals.STATECHART);
-					}
-				}
+		DomainElement domainElement = EcoreUtil2.getContainerOfType(object, DomainElement.class);
+		String domainID = domainElement != null
+				? domainElement.getDomainID()
+				: BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral();
+		return getDomainDescriptor(domainID);
+	}
 }

+ 68 - 61
plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/IDomainInjectorProvider.java

@@ -1,61 +1,68 @@
-/**
- * Copyright (c) 2015 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.domain.extension;
-
-import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
-
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-/**
- * @author andreas muelder - Initial contribution and API
- * @author terfloth
- * 
- */
-public interface IDomainInjectorProvider {
-
-	/**
-	 * Returns the injector used for injection the {@link AbstractSCTResource}
-	 * 
-	 */
-	public Injector getResourceInjector();
-
-	/**
-	 * Returns the injector for the Simulation engine
-	 */
-	public Injector getSimulationInjector();
-
-	/**
-	 * Returns the Injector for the model sequencing without overriding existing
-	 * bindings.
-	 */
-	public Injector getSequencerInjector();
-
-	/**
-	 * Returns the Injector for the model sequencing, giving precedence to those
-	 * bindings in the overrides module.
-	 */
-	public Injector getSequencerInjector(Module overrides);
-
-	/**
-	 * Injector used to create the embedded in-diagram Xtext Editor
-	 * 
-	 * @param elementKey
-	 *            A key indicating for which element the in-diagram editor
-	 *            should be created, i.e. State, Statechart or Transition
-	 */
-	public Injector getEmbeddedEditorInjector(String elementKey);
-
-	/**
-	 * Returns an injector for all editor and UI related stuff.
-	 */
-	public Injector getEditorInjector();
-}
+/**
+ * Copyright (c) 2015 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.domain.extension;
+
+import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
+
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * @author andreas muelder - Initial contribution and API
+ * @author terfloth
+ * 
+ */
+public interface IDomainInjectorProvider {
+
+	/**
+	 * Returns the injector used for injection the {@link AbstractSCTResource}
+	 * 
+	 */
+	public Injector getResourceInjector();
+
+	/**
+	 * Returns the injector for the Simulation engine
+	 */
+	public Injector getSimulationInjector();
+
+	/**
+	 * Returns the Injector for the model sequencing without overriding existing
+	 * bindings.
+	 */
+	public Injector getSequencerInjector();
+
+	/**
+	 * Returns the Injector for the model sequencing, giving precedence to those
+	 * bindings in the overrides module.
+	 */
+	public Injector getSequencerInjector(Module overrides);
+
+	/**
+	 * Injector used to create the embedded in-diagram Xtext Editor
+	 * 
+	 * @param elementKey
+	 *            A key indicating for which element the in-diagram editor
+	 *            should be created, i.e. State, Statechart or Transition
+	 */
+	public Injector getEmbeddedEditorInjector(String elementKey);
+
+	/**
+	 * Returns an injector for all editor and UI related stuff.
+	 */
+	public Injector getEditorInjector();
+
+	/**
+	 * @param generatorId
+	 */
+	public Injector getGeneratorInjector(String generatorId);
+	
+	public Injector getGeneratorInjector(String generatorId, Module overrides);
+}

+ 6 - 3
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/CCodeGenerator.java

@@ -24,6 +24,7 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
 import com.google.inject.Binder;
+import com.google.inject.Inject;
 import com.google.inject.Module;
 import com.google.inject.name.Names;
 import com.google.inject.util.Modules;
@@ -37,18 +38,20 @@ import com.google.inject.util.Modules;
  */
 public class CCodeGenerator extends GenericJavaBasedGenerator {
 
+	@Inject
+	private CGenerator delegate;
+	
 	@Override
 	public void runGenerator(Statechart statechart, GeneratorEntry entry) {
-		CGenerator delegate = getInjector(entry).getInstance(CGenerator.class);
 		ExecutionFlow flow = createExecutionFlow(statechart, entry);
 		if (debugFeatureHelper.isDumpSexec(entry)) {
 			dumpSexec(entry, flow);
 		}
-		delegate.generate(flow, entry, getFileSystemAccess(entry));
+		delegate.generate(flow, entry, sctFsa.getIFileSystemAccess());
 	}
 
 	@Override
-	protected Module getOverridesModule(final GeneratorEntry entry) {
+	public Module getOverridesModule(final GeneratorEntry entry) {
 		Module module = super.getOverridesModule(entry);
 
 		return Modules.override(module).with(new Module() {

+ 2 - 2
plugins/org.yakindu.sct.generator.core/META-INF/MANIFEST.MF

@@ -23,9 +23,9 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.xtext.builder,
  org.yakindu.sct.commons,
  org.yakindu.sct.domain,
- org.yakindu.sct.domain.generic,
  com.google.guava,
- org.eclipse.emf.workspace
+ org.eclipse.emf.workspace,
+ org.eclipse.xtext.generator
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Export-Package: org.yakindu.sct.builder.nature,

+ 3 - 3
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/AbstractWorkspaceGenerator.java

@@ -37,17 +37,17 @@ public abstract class AbstractWorkspaceGenerator extends AbstractSExecModelGener
 	}
 
 	public final File getTargetProject(GeneratorEntry entry) {
-		URI uri = sctFileSystemAccess.getURI(outletFeatureHelper.getTargetProjectValue(entry).getStringValue());
+		URI uri = sctFsa.getURI(outletFeatureHelper.getTargetProjectValue(entry).getStringValue());
 		return new File(uri.toFileString());
 	}
 
 	public final File getTargetFolder(GeneratorEntry entry) {
-		URI uri = sctFileSystemAccess.getURI(outletFeatureHelper.getRelativeTargetFolder(entry));
+		URI uri = sctFsa.getURI(outletFeatureHelper.getRelativeTargetFolder(entry));
 		return new File(uri.toFileString());
 	}
 	
 	public final File getLibraryTargetFolder(GeneratorEntry entry) {
-		URI uri = sctFileSystemAccess.getURI(outletFeatureHelper.getRelativeLibraryFolder(entry));
+		URI uri = sctFsa.getURI(outletFeatureHelper.getRelativeLibraryFolder(entry));
 		return new File(uri.toFileString());
 	}
 	

+ 24 - 16
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/GeneratorExecutor.java

@@ -19,11 +19,17 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.yakindu.sct.domain.extension.DomainRegistry;
+import org.yakindu.sct.domain.extension.IDomainDescriptor;
 import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
 import org.yakindu.sct.generator.core.extensions.IGeneratorDescriptor;
+import org.yakindu.sct.generator.core.impl.AbstractSGraphModelGenerator;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgen.GeneratorModel;
 
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -34,11 +40,10 @@ public class GeneratorExecutor {
 
 	public void executeGenerator(IFile file) {
 		Resource resource = loadResource(file);
-		if (resource == null || resource.getContents().size() == 0
-				|| resource.getErrors().size() > 0)
+		if (resource == null || resource.getContents().size() == 0 || resource.getErrors().size() > 0)
 			return;
 		final GeneratorModel model = (GeneratorModel) resource.getContents().get(0);
-		
+
 		Job generatorJob = new Job("Execute SCT Genmodel " + file.getName()) {
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
@@ -46,39 +51,42 @@ public class GeneratorExecutor {
 				return Status.OK_STATUS;
 			}
 		};
-		generatorJob.setRule(file.getProject().getWorkspace().getRuleFactory()
-				.buildRule());
+		generatorJob.setRule(file.getProject().getWorkspace().getRuleFactory().buildRule());
 		generatorJob.schedule();
 	}
 
 	public void executeGenerator(GeneratorModel model) {
 
-		final ISCTGenerator generator = getGenerator(model);
-		
 		final EList<GeneratorEntry> entries = model.getEntries();
 
 		for (GeneratorEntry generatorEntry : entries) {
+			final ISCTGenerator generator = getGenerator(model, generatorEntry);
 			generator.generate(generatorEntry);
 		}
 	}
 
-	protected ISCTGenerator getGenerator(GeneratorModel model) {
+	protected ISCTGenerator getGenerator(GeneratorModel model, GeneratorEntry entry) {
 		String generatorId = model.getGeneratorId();
-		IGeneratorDescriptor description = GeneratorExtensions
-				.getGeneratorDescriptor(generatorId);
+		IGeneratorDescriptor description = GeneratorExtensions.getGeneratorDescriptor(generatorId);
 		if (description == null)
 			throw new RuntimeException("No generator registered for ID: " + generatorId);
 		final ISCTGenerator generator = description.createGenerator();
-			if(generator == null)
-				throw new RuntimeException("Failed to create Generator instance for ID:"+generatorId);
-			
+		if (generator == null)
+			throw new RuntimeException("Failed to create Generator instance for ID:" + generatorId);
+		IDomainDescriptor domainDescriptor = DomainRegistry.getDomainDescriptor(entry.getElementRef());
+		Module overridesModule = null;
+		if (generator instanceof AbstractSGraphModelGenerator) {
+			overridesModule = ((AbstractSGraphModelGenerator) generator).getOverridesModule(entry);
+		}
+		Injector injector = domainDescriptor.getDomainInjectorProvider().getGeneratorInjector(model.getGeneratorId(),
+				overridesModule);
+		injector.injectMembers(generator);
 		return generator;
 	}
-	
+
 	protected Resource loadResource(IFile file) {
 		Resource resource = null;
-		URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(),
-				true);
+		URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
 		resource = new ResourceSetImpl().getResource(uri, true);
 		return resource;
 	}

+ 59 - 16
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/EFSResourceFileSystemAccess.java

@@ -10,6 +10,9 @@
 */
 package org.yakindu.sct.generator.core.filesystem;
 
+import java.io.File;
+import java.io.InputStream;
+
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
@@ -19,14 +22,23 @@ import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2;
+import org.eclipse.xtext.generator.AbstractFileSystemAccess2;
 import org.eclipse.xtext.generator.IFileSystemAccess;
 import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.util.RuntimeIOException;
 import org.eclipse.xtext.util.StringInputStream;
 import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
 import org.yakindu.sct.generator.core.util.ClasspathChanger;
+import org.yakindu.sct.generator.core.util.EFSHelper;
+
+import com.google.inject.Inject;
+
+public class EFSResourceFileSystemAccess extends AbstractFileSystemAccess2 implements ISCTFileSystemAccess {
+
+	private IProject project;
 
-public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess2 implements SCTFileSystemAccess {
+	@Inject
+	private EFSHelper efsHelper;
 
 	@Override
 	public void setOutputPath(String outputName, String path) {
@@ -41,6 +53,9 @@ public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess
 		}
 	}
 
+	protected IProject getProject() {
+		return project;
+	}
 
 	protected boolean trySetTargetProject(String outputName, String path) {
 		if (outputName.equals(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT)) {
@@ -54,6 +69,10 @@ public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess
 		return false;
 	}
 
+	protected void setProject(IProject project) {
+		this.project = project;
+	}
+
 	protected boolean isValidProject(IProject project) {
 		return project != null && project.exists();
 	}
@@ -95,32 +114,30 @@ public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess
 
 		OutputConfiguration outputConfig = getOutputConfig(outputName);
 
-		IContainer container = getContainer(outputConfig);
+		IContainer container = efsHelper.getContainer(outputConfig, getProject());
 
-		if (!container.exists()) {
+		if (container == null || !container.exists()) {
 			if (outputConfig.isCreateOutputDirectory()) {
-				try {
-					createContainer(container);
-				} catch (CoreException e) {
-					throw new RuntimeException(e);
-				}
+				efsHelper.createContainer(container);
+
 			} else {
 				return;
 			}
 		}
 
-		IFile file = getFile(fileName, outputName);
+		IFile file = efsHelper.getFile(fileName, getOutputConfig(outputName), getProject());
 		CharSequence postProcessedContent = postProcess(fileName, outputName, contents);
 		String contentsAsString = postProcessedContent.toString();
 		if (file.exists()) {
 			if (outputConfig.isOverrideExistingResources()) {
 				try {
-					StringInputStream newContent = getInputStream(contentsAsString, getEncoding(file));
-					if (hasContentsChanged(file, newContent)) {
+					StringInputStream newContent = efsHelper.getInputStream(contentsAsString,
+							efsHelper.getEncoding(file));
+					if (efsHelper.hasContentsChanged(file, newContent)) {
 						newContent.reset();
 						file.setContents(newContent, true, true, null);
 						if (file.isDerived() != outputConfig.isSetDerivedProperty()) {
-							setDerived(file, outputConfig.isSetDerivedProperty());
+							efsHelper.setDerived(file, outputConfig.isSetDerivedProperty());
 						}
 					}
 				} catch (CoreException e) {
@@ -129,10 +146,10 @@ public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess
 			}
 		} else {
 			try {
-				ensureParentExists(file);
-				file.create(getInputStream(contentsAsString, getEncoding(file)), true, null);
+				efsHelper.ensureParentExists(file);
+				file.create(efsHelper.getInputStream(contentsAsString, efsHelper.getEncoding(file)), true, null);
 				if (outputConfig.isSetDerivedProperty()) {
-					setDerived(file, true);
+					efsHelper.setDerived(file, true);
 				}
 			} catch (CoreException e) {
 				throw new RuntimeException(e);
@@ -165,4 +182,30 @@ public class EFSResourceFileSystemAccess extends EclipseResourceFileSystemAccess
 		}
 		return super.getURI(path);
 	}
+
+	@Override
+	public void generateFile(String fileName, String outputCfgName, InputStream content) throws RuntimeIOException {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public InputStream readBinaryFile(String fileName, String outputCfgName) throws RuntimeIOException {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public CharSequence readTextFile(String fileName, String outputCfgName) throws RuntimeIOException {
+		throw new UnsupportedOperationException();
+	}
+
+	@Override
+	public URI getURI(String path, String outputConfiguration) {
+		OutputConfiguration outputConfig = getOutputConfig(outputConfiguration);
+		String outputDir = outputConfig.getOutputDirectory();
+		IFile file = getProject().getFile(outputDir + File.separator + path);
+		if (file != null) {
+			return URI.createFileURI(file.getLocationURI().getPath());
+		}
+		return super.getURI(path);
+	}
 }

+ 3 - 3
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/HeadlessFileSystemAccess.java

@@ -19,7 +19,7 @@ import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
-public class HeadlessFileSystemAccess extends AbstractFileSystemAccess implements SCTFileSystemAccess {
+public class HeadlessFileSystemAccess extends AbstractFileSystemAccess implements ISCTFileSystemAccess {
 	public static final String BASE_DIR = "filesystemAccess.absolute.baseDir";
 	public static final String ENCODING = "filesystemAccess.encoding";
 
@@ -164,7 +164,7 @@ public class HeadlessFileSystemAccess extends AbstractFileSystemAccess implement
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.yakindu.sct.generator.core.filesystem.SCTFileSystemAccess#
+	 * @see org.yakindu.sct.generator.core.filesystem.ISCTFileSystemAccess#
 	 * getIFileSystemAccess()
 	 */
 	@Override
@@ -175,7 +175,7 @@ public class HeadlessFileSystemAccess extends AbstractFileSystemAccess implement
 	/*
 	 * (non-Javadoc)
 	 * 
-	 * @see org.yakindu.sct.generator.core.filesystem.SCTFileSystemAccess#
+	 * @see org.yakindu.sct.generator.core.filesystem.ISCTFileSystemAccess#
 	 * afterGeneration()
 	 */
 	@Override

+ 1 - 1
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/filesystem/SCTFileSystemAccess.java

@@ -30,7 +30,7 @@ import org.eclipse.xtext.generator.OutputConfiguration;
  * @author Johannes Dicks - Initial contribution and API
  *
  */
-public interface SCTFileSystemAccess {
+public interface ISCTFileSystemAccess {
 
 	/**
 	 * Provides an absolute URI for further processing.

+ 22 - 27
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSExecModelGenerator.java

@@ -30,7 +30,6 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-import org.yakindu.sct.domain.generic.modules.GenericSequencerModule;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.transformation.FlowOptimizer;
 import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
@@ -39,7 +38,7 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
 import com.google.inject.Binder;
-import com.google.inject.Injector;
+import com.google.inject.Inject;
 import com.google.inject.Module;
 import com.google.inject.name.Names;
 import com.google.inject.util.Modules;
@@ -54,6 +53,12 @@ import com.google.inject.util.Modules;
 public abstract class AbstractSExecModelGenerator extends AbstractSGraphModelGenerator {
 
 	private static final String SEXEC_FILE_EXTENSION = "sexec";
+	public static final String ADD_TRACES = "ADD_TRACES";
+
+	@Inject
+	private FlowOptimizer optimizer;
+	@Inject
+	private IModelSequencer sequencer;
 
 	public AbstractSExecModelGenerator() {
 		super();
@@ -69,13 +74,13 @@ public abstract class AbstractSExecModelGenerator extends AbstractSGraphModelGen
 	}
 
 	@Override
-	protected Module getOverridesModule(GeneratorEntry entry) {
+	public Module getOverridesModule(GeneratorEntry entry) {
 		Module module = super.getOverridesModule(entry);
 
 		return Modules.override(module).with(new Module() {
 			public void configure(Binder binder) {
 				// by default, traces should not be generated
-				binder.bind(Boolean.class).annotatedWith(Names.named(GenericSequencerModule.ADD_TRACES))
+				binder.bind(Boolean.class).annotatedWith(Names.named(ADD_TRACES))
 						.toInstance(Boolean.FALSE);
 			}
 		});
@@ -85,39 +90,29 @@ public abstract class AbstractSExecModelGenerator extends AbstractSGraphModelGen
 	 * Transforms the {@link Statechart} model to a {@link ExecutionFlow} model
 	 */
 	protected ExecutionFlow createExecutionFlow(Statechart statechart, GeneratorEntry entry) {
-		Injector injector = getInjector(entry);
-		IModelSequencer sequencer = injector.getInstance(IModelSequencer.class);
 		ExecutionFlow flow = sequencer.transform(statechart);
 		Assert.isNotNull(flow, "Error creation ExecutionFlow");
 
 		FeatureConfiguration optimizeConfig = entry.getFeatureConfiguration(FUNCTION_INLINING_FEATURE);
 
-		FlowOptimizer optimizer = injector.getInstance(FlowOptimizer.class);
-
-		optimizer.inlineReactions(
-				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_REACTIONS, false));
-		optimizer.inlineExitActions(getBoolValue(optimizeConfig,
-				FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS, false));
-		optimizer.inlineEntryActions(getBoolValue(optimizeConfig,
-				FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS, false));
-		optimizer.inlineEnterSequences(getBoolValue(optimizeConfig,
-				FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES, false));
-		optimizer.inlineExitSequences(getBoolValue(optimizeConfig,
-				FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES, false));
-		optimizer.inlineChoices(
-				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_CHOICES, false));
-		optimizer.inlineEntries(
-				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_ENTRIES, false));
-		optimizer.inlineEnterRegion(getBoolValue(optimizeConfig,
-				FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION, false));
-		optimizer.inlineExitRegion(
-				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION, false));
+		optimizer.inlineReactions(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_REACTIONS, false));
+		optimizer.inlineExitActions(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS, false));
+		optimizer.inlineEntryActions(
+				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS, false));
+		optimizer.inlineEnterSequences(
+				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES, false));
+		optimizer.inlineExitSequences(
+				getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES, false));
+		optimizer.inlineChoices(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_CHOICES, false));
+		optimizer.inlineEntries(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_ENTRIES, false));
+		optimizer.inlineEnterRegion(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION, false));
+		optimizer.inlineExitRegion(getBoolValue(optimizeConfig, FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION, false));
 
 		flow = optimizer.transform(flow);
 
 		return flow;
 	}
-	
+
 	protected boolean getBoolValue(FeatureConfiguration conf, String param, boolean defaultValue) {
 		if (conf != null && conf.getParameterValue(param) != null) {
 			return conf.getParameterValue(param).getBooleanValue();

+ 109 - 57
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSGraphModelGenerator.java

@@ -12,23 +12,22 @@
 package org.yakindu.sct.generator.core.impl;
 
 import org.eclipse.emf.ecore.EObject;
-import org.yakindu.sct.domain.extension.DomainRegistry;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.OutputConfiguration;
 import org.yakindu.sct.generator.core.ISCTGenerator;
-import org.yakindu.sct.generator.core.filesystem.EFSResourceFileSystemAccess;
-import org.yakindu.sct.generator.core.filesystem.SCTFileSystemAccess;
-import org.yakindu.sct.generator.core.library.DebugFeatureHelperImpl;
+import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
+import org.yakindu.sct.generator.core.filesystem.ISCTFileSystemAccess;
 import org.yakindu.sct.generator.core.library.IDebugFeatureHelper;
 import org.yakindu.sct.generator.core.library.IOutletFeatureHelper;
-import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl;
-import org.yakindu.sct.generator.core.util.EclipseConsoleLog;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
 import com.google.inject.Binder;
 import com.google.inject.Inject;
-import com.google.inject.Injector;
 import com.google.inject.Module;
+import com.google.inject.util.Modules;
 
 /**
  * abstract base class for all code generators that want to generate code based
@@ -46,102 +45,155 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 	@Inject
 	protected IOutletFeatureHelper outletFeatureHelper;
 	@Inject
-	protected DebugFeatureHelperImpl debugFeatureHelper;
+	protected IDebugFeatureHelper debugFeatureHelper;
 	@Inject
-	protected SCTFileSystemAccess sctFileSystemAccess;
+	protected ISCTFileSystemAccess sctFsa;
 
 	protected void runGenerator(Statechart statechart, GeneratorEntry entry) {
+		//FIXME JDI will that piece of code ever be called?! I cannot find an implementation of ISGraphGenerator
 		if (this instanceof ISGraphGenerator) {
 			ISGraphGenerator graphGenerator = (ISGraphGenerator) this;
 			graphGenerator.generate(statechart, entry);
 		}
 	}
 
-	public AbstractSGraphModelGenerator() {
-		super();
-	}
-
-	//FIXME this is not nice...
 	@Override
 	protected void finalize() throws Throwable {
-		if(log!=null)
+		if (log != null)
 			log.close();
 		super.finalize();
 	}
 
+	/**
+	 * This method should not be overridden anymore. It is meant to do
+	 * initializations which are urgently needed for the generator
+	 * infrastructure. Use {@link #doGenerate(GeneratorEntry)} instead.
+	 * 
+	 * @see {@link #doGenerate(GeneratorEntry)}
+	 * @deprecated this method might become final in further versions. Please
+	 *             override {@link #doGenerate(GeneratorEntry)}.
+	 */
 	public final void generate(GeneratorEntry entry) {
-		getInjector(entry).injectMembers(this);
-
-		boolean canHandle = false;
-		canHandle = canHandle(entry);
-		if (canHandle) {
-			doGenerate(entry);
+		if (canHandle(entry)) {
+			try {
+				logStart(entry);
+				prepareGenerator(entry);
+				doGenerate(entry);
+				log.writeToConsole("Done.");
+			} catch (Exception e) {
+				log.writeToConsole(e);
+			} finally {
+				finishGenerator(entry);
+			}
 		}
 	}
 
+	/**
+	 * Logs some information about the following generation process.
+	 * 
+	 * @param entry
+	 */
+	protected void logStart(GeneratorEntry entry) {
+		Statechart statechart = (Statechart) entry.getElementRef();
+		log.writeToConsole(
+				String.format("Generating %s %s ...", Statechart.class.getSimpleName(), statechart.getName()));
+	}
+
+	/**
+	 * Do generate for the given {@link GeneratorEntry}. Sub-classes might
+	 * override this method if they do generation for elements other than
+	 * {@link Statechart}.
+	 * 
+	 * @param entry
+	 */
 	protected void doGenerate(GeneratorEntry entry) {
 		Statechart statechart = (Statechart) entry.getElementRef();
-		try {
-			log.writeToConsole(String.format("Generating Statechart %s ...", statechart.getName()));
-			prepareGenerator(entry);
-			runGenerator(statechart, entry);
-			log.writeToConsole("Done.");
-		} catch (Exception e) {
-			log.writeToConsole(e);
-		} finally {
-			finishGenerator(entry);
-			injector = null;
-		}
+		runGenerator(statechart, entry);
 	}
 
+	/**
+	 * Per default this method checks if the given {@link GeneratorEntry}
+	 * includes a {@link Statechart}. Sub-classes may override this method if
+	 * they handle elements with type other than @link {@link Statechart}.
+	 * 
+	 * @param entry
+	 * @return
+	 */
 	protected boolean canHandle(GeneratorEntry entry) {
-		boolean canHandle=false;
 		EObject elementRef = entry.getElementRef();
 		if (elementRef == null || !(elementRef instanceof Statechart)) {
 			log.writeToConsole("No Statechart selected in genmodel (" + entry + ")");
-			canHandle = true;
+			return false;
 		}
-		return canHandle;
+		return true;
 	}
 
 	/**
-	 * override this method to do any setup needed before generation
+	 * Override this method to do any setup needed before generation. In normal
+	 * case sub-classes will call super implementations.
 	 */
 	protected void prepareGenerator(GeneratorEntry entry) {
+		initFileSystemAccess(entry);
 	}
 
 	/**
-	 * override this method to do any cleanup needed after generation
+	 * Override this method to do any cleanup needed after generation. In normal
+	 * case sub-classes will call super implementations.
 	 */
 	protected void finishGenerator(GeneratorEntry entry) {
-		sctFileSystemAccess.afterGeneration();
-	}
-
-	private Injector injector;
-
-	protected Injector createInjector(GeneratorEntry entry) {
-		// FIXME !!! right injector, why?
-		return DomainRegistry.getDomainDescriptor(entry.getElementRef()).getDomainInjectorProvider()
-				.getSequencerInjector(getOverridesModule(entry));
+		sctFsa.afterGeneration();
 	}
 
-	protected Module getOverridesModule(final GeneratorEntry entry) {
-		Module baseModule = new Module() {
+	/**
+	 * Sub-classes might override this method to add custom bindings for a
+	 * specific {@link GeneratorEntry}. In normal case sub-classes will just
+	 * override or add custom bindings and ensure all other bindings of
+	 * super-class implementations are still available.
+	 * 
+	 * @param entry
+	 *            the next generator entry
+	 * @return a module with custom bindings
+	 * @see sub-classes often use {@link Modules#override(Module...)}
+	 */
+	public Module getOverridesModule(final GeneratorEntry entry) {
+		return new Module() {
 			@Override
 			public void configure(Binder binder) {
-				binder.bind(SCTFileSystemAccess.class).to(EFSResourceFileSystemAccess.class);
-				binder.bind(IGeneratorLog.class).to(EclipseConsoleLog.class);
-				binder.bind(IOutletFeatureHelper.class).to(OutletFeatureHelperImpl.class);
-				binder.bind(IDebugFeatureHelper.class).to(DebugFeatureHelperImpl.class);
 			}
+			// per default, do not add additional bindings
 		};
-		return baseModule;
 	}
 
-	protected Injector getInjector(GeneratorEntry entry) {
-		if (injector == null) {
-			injector = createInjector(entry);
+	/**
+	 * Provides a pre configured IFileSystemAccess instance
+	 */
+	protected IFileSystemAccess initFileSystemAccess(GeneratorEntry entry) {
+
+		// set target project value
+		sctFsa.setOutputPath(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT,
+				outletFeatureHelper.getTargetProjectValue(entry).getStringValue());
+		// set target folder
+		sctFsa.setOutputPath(IFileSystemAccess.DEFAULT_OUTPUT,
+				outletFeatureHelper.getTargetFolderValue(entry).getExpression().toString());
+
+		FeatureParameterValue libraryTargetFolderValue = outletFeatureHelper.getLibraryTargetFolderValue(entry);
+
+		if (libraryTargetFolderValue != null) {
+			sctFsa.setOutputPath(IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT,
+					libraryTargetFolderValue.getExpression().toString());
 		}
-		return injector;
+
+		sctFsa.getOutputConfigurations().get(IFileSystemAccess.DEFAULT_OUTPUT).setCreateOutputDirectory(true);
+		OutputConfiguration librarytargetFolderOutputConfiguration = sctFsa.getOutputConfigurations()
+				.get(IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT);
+		if (librarytargetFolderOutputConfiguration != null) {
+			librarytargetFolderOutputConfiguration.setCreateOutputDirectory(true);
+			// do not overwrite existing resources and ensure the folder is not
+			// cleaned.
+			librarytargetFolderOutputConfiguration.setCanClearOutputDirectory(false);
+			librarytargetFolderOutputConfiguration.setOverrideExistingResources(false);
+		}
+
+		return sctFsa.getIFileSystemAccess();
 	}
 }

+ 15 - 16
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractXpandBasedCodeGenerator.java

@@ -29,7 +29,6 @@ import org.eclipse.xtext.generator.IFileSystemAccess;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.types.TypesPackage;
 import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
-import org.yakindu.sct.generator.core.util.EFSHelper;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.SexecPackage;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
@@ -39,6 +38,8 @@ import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 import com.google.inject.Binder;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
 
@@ -55,10 +56,11 @@ public abstract class AbstractXpandBasedCodeGenerator extends AbstractSExecModel
 
 	public static final String LIBRARY_TARGET_FOLDER_OUTLET = "LIBRARY_TARGET_FOLDER";
 
-	private EFSHelper efsHelper = new EFSHelper();
-
 	public abstract String getTemplatePath();
 
+	@Inject
+	private Injector injector;
+
 	/**
 	 * Invokes XPands template engine to generate resources
 	 */
@@ -94,9 +96,6 @@ public abstract class AbstractXpandBasedCodeGenerator extends AbstractSExecModel
 			log.writeToConsole("!!! No matching define in Template found.");
 		}
 
-		// refresh the project to get external updates:
-
-		efsHelper.refreshTargetProject(entry);
 	}
 
 	protected XpandExecutionContext createXpandContext(GeneratorEntry entry, Output output) {
@@ -110,21 +109,21 @@ public abstract class AbstractXpandBasedCodeGenerator extends AbstractSExecModel
 		};
 		execCtx.registerMetaModel(metamodel);
 		execCtx.getGlobalVariables().put(CONTEXT_INJECTOR_PROPERTY_NAME,
-				new Variable(CONTEXT_INJECTOR_PROPERTY_NAME, getInjector(entry)));
+				new Variable(CONTEXT_INJECTOR_PROPERTY_NAME, injector));
 		return execCtx;
 	}
 
 	protected Output createOutput(GeneratorEntry entry) {
-		//FIXME !!! unify, this is duplicate see ...Java*Generic*Something
-		sctFileSystemAccess.setOutputPath(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT,
+		// FIXME JDI unify, this is duplicate see ...Java*Generic*Something
+		sctFsa.setOutputPath(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT,
 				outletFeatureHelper.getTargetProjectValue(entry).getStringValue());
-		
-		sctFileSystemAccess.setOutputPath(IFileSystemAccess.DEFAULT_OUTPUT,
+
+		sctFsa.setOutputPath(IFileSystemAccess.DEFAULT_OUTPUT,
 				outletFeatureHelper.getTargetFolderValue(entry).getExpression().toString());
-		
+
 		String outputPath = outletFeatureHelper.getRelativeTargetFolder(entry);
 
-		String absoluteTargetFolder = sctFileSystemAccess.getURI(outputPath).toFileString();
+		String absoluteTargetFolder = sctFsa.getURI(outputPath).toFileString();
 
 		Output output = new OutputImpl();
 
@@ -137,8 +136,8 @@ public abstract class AbstractXpandBasedCodeGenerator extends AbstractSExecModel
 
 		String relativeLibraryTargetFolder = outletFeatureHelper.getRelativeLibraryFolder(entry);
 
-		String absoluteLibraryTargetFolder = sctFileSystemAccess.getURI(relativeLibraryTargetFolder).toFileString();
-		
+		String absoluteLibraryTargetFolder = sctFsa.getURI(relativeLibraryTargetFolder).toFileString();
+
 		Outlet libraryTargetFolderOutlet = new Outlet(false, null, LIBRARY_TARGET_FOLDER_OUTLET, false,
 				absoluteLibraryTargetFolder);
 		output.addOutlet(libraryTargetFolderOutlet);
@@ -147,7 +146,7 @@ public abstract class AbstractXpandBasedCodeGenerator extends AbstractSExecModel
 	}
 
 	@Override
-	protected Module getOverridesModule(GeneratorEntry entry) {
+	public Module getOverridesModule(GeneratorEntry entry) {
 		Module baseModule = super.getOverridesModule(entry);
 
 		return Modules.override(baseModule).with(new Module() {

+ 9 - 43
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/GenericJavaBasedGenerator.java

@@ -19,17 +19,16 @@ import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.xtext.generator.IFileSystemAccess;
-import org.eclipse.xtext.generator.OutputConfiguration;
 import org.eclipse.xtext.util.Strings;
 import org.yakindu.sct.commons.WorkspaceClassLoaderFactory;
-import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
+import com.google.inject.Inject;
+import com.google.inject.Injector;
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
 
@@ -40,8 +39,11 @@ import com.google.inject.util.Modules;
  */
 public class GenericJavaBasedGenerator extends AbstractSExecModelGenerator {
 
+	@Inject
+	private Injector injector;
+	
 	@Override
-	protected Module getOverridesModule(final GeneratorEntry entry) {
+	public Module getOverridesModule(final GeneratorEntry entry) {
 		Module defaultModule = super.getOverridesModule(entry);
 
 		String overridingModuleClass = null;
@@ -79,10 +81,9 @@ public class GenericJavaBasedGenerator extends AbstractSExecModelGenerator {
 	public void runGenerator(Statechart statechart, GeneratorEntry entry) {
 		String templateClass = getTemplateClassName(entry);
 		final ClassLoader classLoader = getClassLoader(entry);
-		IFileSystemAccess fsa = getFileSystemAccess(entry);
 		try {
 			Class<?> delegateGeneratorClass = (Class<?>) classLoader.loadClass(templateClass);
-			Object delegate = getInjector(entry).getInstance(delegateGeneratorClass);
+			Object delegate = injector.getInstance(delegateGeneratorClass);
 
 			Class<?> iType_ = (Class<?>) getClass().getClassLoader()
 					.loadClass("org.yakindu.sct.generator.core.impl.IExecutionFlowGenerator");
@@ -99,11 +100,11 @@ public class GenericJavaBasedGenerator extends AbstractSExecModelGenerator {
 
 			if (delegate instanceof IExecutionFlowGenerator) {
 				IExecutionFlowGenerator flowGenerator = (IExecutionFlowGenerator) delegate;
-				flowGenerator.generate(flow, entry, fsa);
+				flowGenerator.generate(flow, entry, sctFsa.getIFileSystemAccess());
 			}
 			if (iType.isInstance(delegate)) {
 				IExecutionFlowGenerator flowGenerator = (IExecutionFlowGenerator) delegate;
-				flowGenerator.generate(flow, entry, fsa);
+				flowGenerator.generate(flow, entry, sctFsa.getIFileSystemAccess());
 			}
 			if (delegate instanceof ISGraphGenerator) {
 				ISGraphGenerator graphGenerator = (ISGraphGenerator) delegate;
@@ -136,39 +137,4 @@ public class GenericJavaBasedGenerator extends AbstractSExecModelGenerator {
 		}
 		return project;
 	}
-
-	/**
-	 * Provides a pre configured IFileSystemAccess instance
-	 */
-	public IFileSystemAccess getFileSystemAccess(GeneratorEntry entry) {
-		//FIXME !!! unify, this is duplicate see ...Java*Generic*Something
-		// set target project value
-		sctFileSystemAccess.setOutputPath(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT,
-				outletFeatureHelper.getTargetProjectValue(entry).getStringValue());
-		// set target folder
-		sctFileSystemAccess.setOutputPath(IFileSystemAccess.DEFAULT_OUTPUT,
-				outletFeatureHelper.getTargetFolderValue(entry).getExpression().toString());
-
-		FeatureParameterValue libraryTargetFolderValue = outletFeatureHelper
-				.getLibraryTargetFolderValue(entry);
-		
-		if (libraryTargetFolderValue != null) {
-			sctFileSystemAccess.setOutputPath(IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT,
-					libraryTargetFolderValue.getExpression().toString());
-		}
-
-		sctFileSystemAccess.getOutputConfigurations().get(IFileSystemAccess.DEFAULT_OUTPUT).setCreateOutputDirectory(true);
-		OutputConfiguration librarytargetFolderOutputConfiguration = sctFileSystemAccess.getOutputConfigurations()
-				.get(IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT);
-		if (librarytargetFolderOutputConfiguration != null) {
-			librarytargetFolderOutputConfiguration.setCreateOutputDirectory(true);
-			// do not overwrite existing resources and ensure the folder is not
-			// cleaned.
-			librarytargetFolderOutputConfiguration.setCanClearOutputDirectory(false);
-			librarytargetFolderOutputConfiguration.setOverrideExistingResources(false);
-		}
-
-		return sctFileSystemAccess.getIFileSystemAccess();
-	}
-
 }

+ 1 - 1
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/IExecutionFlowGenerator.java

@@ -26,7 +26,7 @@ public interface IExecutionFlowGenerator {
 	 * @param entry
 	 *            The {@link GeneratorEntry} that contains the configuration for
 	 *            the generation.
-	 * @param fsa
+	 * @param sctFsa
 	 *            A file system access that should be used for the generated
 	 *            artifacts. In case a separate libraryTargetFolder is specified
 	 *            in the Outlet feature of the generator entry, the file system

+ 3 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/IDebugFeatureHelper.java

@@ -13,11 +13,14 @@ package org.yakindu.sct.generator.core.library;
 
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 
+import com.google.inject.ImplementedBy;
+
 /**
  *Provides convenience access to SGen debug features.
  * @author Johannes Dicks - Initial contribution and API
  *
  */
+@ImplementedBy(DebugFeatureHelperImpl.class)
 public interface IDebugFeatureHelper {
 
 	boolean isDumpSexec(GeneratorEntry entry);

+ 3 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/IOutletFeatureHelper.java

@@ -14,12 +14,15 @@ package org.yakindu.sct.generator.core.library;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 
+import com.google.inject.ImplementedBy;
+
 /**
  * Provides convenience access to SGen outlet features.
  * 
  * @author Johannes Dicks - Initial contribution and API
  *
  */
+@ImplementedBy(OutletFeatureHelperImpl.class)
 public interface IOutletFeatureHelper {
 	/**
 	 * The targetFolder value defined in SGen.

+ 154 - 5
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/util/EFSHelper.java

@@ -11,24 +11,38 @@
  */
 package org.yakindu.sct.generator.core.util;
 
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.xtext.generator.OutputConfiguration;
+import org.eclipse.xtext.util.RuntimeIOException;
+import org.eclipse.xtext.util.StringInputStream;
 import org.yakindu.sct.generator.core.impl.AbstractXpandBasedCodeGenerator;
-import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl;
+import org.yakindu.sct.generator.core.library.IOutletFeatureHelper;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 
-//FIXME !!! integrate dependent classes with SCTFileSystemAccess?!
+import com.google.inject.Inject;
+
+//FIXME JDI integrate dependent classes with ISCTFileSystemAccess?!
 /**
- * NOTE : dependent classes are not useable in headless context
+ * Encapsulates some EFS related functionality which can be used by Generators.
  * @author Johannes Dicks - Initial contribution and API
  *
  */
 public class EFSHelper {
-
+	@Inject IOutletFeatureHelper outletFeatureHelper;
+	
 	public void refreshTargetProject(GeneratorEntry entry) {
 		if (Platform.isRunning()) {
 
@@ -50,7 +64,7 @@ public class EFSHelper {
 	 * @return
 	 */
 	public IProject getTargetProject(GeneratorEntry entry) {
-		String stringValue = new OutletFeatureHelperImpl().getTargetProjectValue(entry).getStringValue();
+		String stringValue = outletFeatureHelper.getTargetProjectValue(entry).getStringValue();
 		if (Platform.isRunning()) {
 			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(stringValue);
 			return project;
@@ -58,5 +72,140 @@ public class EFSHelper {
 			throw new IllegalStateException("The " + AbstractXpandBasedCodeGenerator.class.getSimpleName()
 					+ " needs a running eclipse.Platform");
 	}
+	
+	/**
+	 */
+	public String getEncoding(IFile file) throws CoreException {
+		return file.getCharset(true);
+	}
+
+
+	/**
+	 * Copy of {@link org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2#getContainer}
+	 * @param outputConfig
+	 * @return
+	 * @see {@link org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2}
+	 */
+	public IContainer getContainer(OutputConfiguration outputConfig,IProject project) {
+		String path = outputConfig.getOutputDirectory();
+		if (".".equals(path) || "./".equals(path) || "".equals(path) || project == null) {
+			return project;
+		}
+		return project.getFolder(new Path(path));
+	}
+
+	/**
+	 * @param container
+	 */
+	public void createContainer(IContainer container) {
+		try {
+			ensureExists(container);
+		} catch (CoreException e) {
+			throw new RuntimeException(e);
+		}
+		
+	}
+
+	/**
+	 * @param fileName
+	 * @param iProject 
+	 * @param outputName
+	 * @return
+	 */
+	public IFile getFile(String fileName, OutputConfiguration config, IProject iProject) {
+		IContainer container = getContainer(config,iProject);
+		if (container != null) {
+			IFile result = container.getFile(new Path(fileName));
+			refreshFileSilently(result, new NullProgressMonitor());
+			return result;
+		}
+		return null;
+	}
+
+	/**
+	 * @param result
+	 * @param nullProgressMonitor
+	 */
+	private void refreshFileSilently(IFile result, NullProgressMonitor nullProgressMonitor) {
+		try {
+			result.refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());
+		} catch (CoreException c) {
+			// ignore
+		}
+	}
+
+	/**
+	 * @param file
+	 * @param newContent
+	 * @return
+	 */
+	public boolean hasContentsChanged(IFile file, StringInputStream newContent) {
+		boolean contentChanged = false;
+		BufferedInputStream oldContent = null;
+		try {
+			oldContent = new BufferedInputStream(file.getContents());
+			int newByte = newContent.read();
+			int oldByte = oldContent.read();
+			while (newByte != -1 && oldByte != -1 && newByte == oldByte) {
+				newByte = newContent.read();
+				oldByte = oldContent.read();
+			}
+			contentChanged = newByte != oldByte;
+		} catch (CoreException e) {
+			contentChanged = true;
+		} catch (IOException e) {
+			contentChanged = true;
+		} finally {
+			if (oldContent != null) {
+				try {
+					oldContent.close();
+				} catch (IOException e) {
+					// ignore
+				}
+			}
+		}
+		return contentChanged;
+	}
+	
+	/**
+	 * @param file
+	 * @param isDerived
+	 */
+	public void setDerived(IFile file, boolean isDerived) throws CoreException {
+		file.setDerived(isDerived, new NullProgressMonitor());
+	}
+
+	/**
+	 * @param file
+	 * @throws CoreException 
+	 */
+	public void ensureParentExists(IFile file) throws CoreException {
+		if (!file.exists()) {
+			ensureExists(file.getParent());
+		}
+		
+	}
+
+	/**
+	 * @param contentsAsString
+	 * @param encoding
+	 * @return
+	 */
+	public StringInputStream getInputStream(String contentsAsString, String encoding) {
+		try {
+			return new StringInputStream(contentsAsString, encoding);
+		} catch (UnsupportedEncodingException e) {
+			throw new RuntimeIOException(e);
+		}
+	}
+	
+	protected void ensureExists(IContainer container) throws CoreException {
+		if (container.exists())
+			return;
+		if (container instanceof IFolder) {
+			ensureExists(container.getParent());
+			((IFolder) container).create(true, true, new NullProgressMonitor());
+		}
+	}
 
 }

+ 6 - 3
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/CppCodeGenerator.java

@@ -19,6 +19,7 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
 import com.google.inject.Binder;
+import com.google.inject.Inject;
 import com.google.inject.Module;
 import com.google.inject.util.Modules;
 
@@ -29,18 +30,20 @@ import com.google.inject.util.Modules;
  */
 public class CppCodeGenerator extends GenericJavaBasedGenerator {
 
+	@Inject
+	private CppGenerator delegate;
+	
 	@Override
 	public void runGenerator(Statechart statechart, GeneratorEntry entry) {
-		CppGenerator delegate = getInjector(entry).getInstance(CppGenerator.class);
 		ExecutionFlow flow = createExecutionFlow(statechart, entry);
 		if (debugFeatureHelper.isDumpSexec(entry)) {
 			dumpSexec(entry, flow);
 		}
-		delegate.generate(flow, entry, getFileSystemAccess(entry));
+		delegate.generate(flow, entry, sctFsa.getIFileSystemAccess());
 	}
 
 	@Override
-	protected Module getOverridesModule(final GeneratorEntry entry) {
+	public Module getOverridesModule(final GeneratorEntry entry) {
 		Module module = super.getOverridesModule(entry);
 		return Modules.override(module).with(new Module() {
 			public void configure(Binder binder) {

+ 7 - 3
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/JavaCodeGenerator.java

@@ -18,15 +18,19 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
 
 import com.google.inject.Binder;
+import com.google.inject.Inject;
 import com.google.inject.Module;
 import com.google.inject.Scopes;
 import com.google.inject.util.Modules;
 
 public class JavaCodeGenerator extends AbstractJavaCodeGenerator {
 
+	@Inject
+	private JavaGenerator delegate;
+	
+	
 	@Override
 	public void generate(Statechart statechart, GeneratorEntry entry) {
-		JavaGenerator delegate = getInjector(entry).getInstance(JavaGenerator.class);
 
 		ExecutionFlow flow = createExecutionFlow(statechart, entry);
 
@@ -34,11 +38,11 @@ public class JavaCodeGenerator extends AbstractJavaCodeGenerator {
 			dumpSexec(entry, flow);
 		}
 
-		delegate.generate(flow, entry, getFileSystemAccess(entry));
+		delegate.generate(flow, entry, sctFsa.getIFileSystemAccess());
 	}
 
 	@Override
-	protected Module getOverridesModule(final GeneratorEntry entry) {
+	public Module getOverridesModule(final GeneratorEntry entry) {
 		Module module = super.getOverridesModule(entry);
 		final GenmodelEntries entries = new GenmodelEntries();
 		return Modules.override(module).with(new Module() {

+ 2 - 1
plugins/org.yakindu.sct.model.resource/src/org/yakindu/sct/model/resource/SCTResourceFactory.java

@@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.xmi.XMIResource;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+import org.yakindu.base.base.BasePackage;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomainDescriptor;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
@@ -50,7 +51,7 @@ public class SCTResourceFactory extends XMIResourceFactoryImpl {
 	}
 
 	protected String determineDomainID(URI uri) {
-		String result = SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral();
+		String result = BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral();
 		if (URIConverter.INSTANCE.exists(uri, null)) {
 			XMIResource resource = new XMIResourceImpl(uri);
 			try {

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


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


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

@@ -1,302 +1,302 @@
-/**
- * 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.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.base.BasePackage;
-import org.yakindu.sct.model.sgraph.SGraphFactory;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Statechart;
-
-/**
- * This is the item provider adapter for a {@link org.yakindu.sct.model.sgraph.Statechart} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class StatechartItemProvider
-	extends SpecificationElementItemProvider {
-	/**
-	 * <!-- 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 StatechartItemProvider(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);
-
-			addReactionsPropertyDescriptor(object);
-			addNamespacePropertyDescriptor(object);
-			addNamePropertyDescriptor(object);
-			addDocumentationPropertyDescriptor(object);
-			addDomainIDPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Reactions feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addReactionsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ReactiveElement_reactions_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ReactiveElement_reactions_feature", "_UI_ReactiveElement_type"),
-				 SGraphPackage.Literals.REACTIVE_ELEMENT__REACTIONS,
-				 false,
-				 false,
-				 false,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Namespace feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamespacePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_ScopedElement_namespace_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_ScopedElement_namespace_feature", "_UI_ScopedElement_type"),
-				 SGraphPackage.Literals.SCOPED_ELEMENT__NAMESPACE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_NamedElement_name_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
-				 BasePackage.Literals.NAMED_ELEMENT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Documentation feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDocumentationPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_DocumentedElement_documentation_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_DocumentedElement_documentation_feature", "_UI_DocumentedElement_type"),
-				 BasePackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Domain ID feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addDomainIDPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Statechart_domainID_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Statechart_domainID_feature", "_UI_Statechart_type"),
-				 SGraphPackage.Literals.STATECHART__DOMAIN_ID,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@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.REACTIVE_ELEMENT__LOCAL_REACTIONS);
-			childrenFeatures.add(SGraphPackage.Literals.SCOPED_ELEMENT__SCOPES);
-			childrenFeatures.add(SGraphPackage.Literals.COMPOSITE_ELEMENT__REGIONS);
-			childrenFeatures.add(SGraphPackage.Literals.STATECHART__IMPORTS);
-		}
-		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 Statechart.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Statechart"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Statechart)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Statechart_type") :
-			getString("_UI_Statechart_type") + " " + label;
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Statechart.class)) {
-			case SGraphPackage.STATECHART__NAMESPACE:
-			case SGraphPackage.STATECHART__NAME:
-			case SGraphPackage.STATECHART__DOCUMENTATION:
-			case SGraphPackage.STATECHART__DOMAIN_ID:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case SGraphPackage.STATECHART__LOCAL_REACTIONS:
-			case SGraphPackage.STATECHART__SCOPES:
-			case SGraphPackage.STATECHART__REGIONS:
-			case SGraphPackage.STATECHART__IMPORTS:
-				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.REACTIVE_ELEMENT__LOCAL_REACTIONS,
-				 SGraphFactory.eINSTANCE.createTransition()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(SGraphPackage.Literals.SCOPED_ELEMENT__SCOPES,
-				 SGraphFactory.eINSTANCE.createScope()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(SGraphPackage.Literals.COMPOSITE_ELEMENT__REGIONS,
-				 SGraphFactory.eINSTANCE.createRegion()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(SGraphPackage.Literals.STATECHART__IMPORTS,
-				 SGraphFactory.eINSTANCE.createImport()));
-	}
-
-}
+/**
+ * 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.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.base.BasePackage;
+import org.yakindu.sct.model.sgraph.SGraphFactory;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.sct.model.sgraph.Statechart} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StatechartItemProvider
+	extends SpecificationElementItemProvider {
+	/**
+	 * <!-- 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 StatechartItemProvider(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);
+
+			addReactionsPropertyDescriptor(object);
+			addNamespacePropertyDescriptor(object);
+			addNamePropertyDescriptor(object);
+			addDocumentationPropertyDescriptor(object);
+			addDomainIDPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Reactions feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addReactionsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ReactiveElement_reactions_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ReactiveElement_reactions_feature", "_UI_ReactiveElement_type"),
+				 SGraphPackage.Literals.REACTIVE_ELEMENT__REACTIONS,
+				 false,
+				 false,
+				 false,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ScopedElement_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ScopedElement_namespace_feature", "_UI_ScopedElement_type"),
+				 SGraphPackage.Literals.SCOPED_ELEMENT__NAMESPACE,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_NamedElement_name_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+				 BasePackage.Literals.NAMED_ELEMENT__NAME,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Documentation feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDocumentationPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DocumentedElement_documentation_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_DocumentedElement_documentation_feature", "_UI_DocumentedElement_type"),
+				 BasePackage.Literals.DOCUMENTED_ELEMENT__DOCUMENTATION,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Domain ID feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDomainIDPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_DomainElement_domainID_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_DomainElement_domainID_feature", "_UI_DomainElement_type"),
+				 BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@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.REACTIVE_ELEMENT__LOCAL_REACTIONS);
+			childrenFeatures.add(SGraphPackage.Literals.SCOPED_ELEMENT__SCOPES);
+			childrenFeatures.add(SGraphPackage.Literals.COMPOSITE_ELEMENT__REGIONS);
+			childrenFeatures.add(SGraphPackage.Literals.STATECHART__IMPORTS);
+		}
+		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 Statechart.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Statechart"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((Statechart)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Statechart_type") :
+			getString("_UI_Statechart_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Statechart.class)) {
+			case SGraphPackage.STATECHART__NAMESPACE:
+			case SGraphPackage.STATECHART__NAME:
+			case SGraphPackage.STATECHART__DOCUMENTATION:
+			case SGraphPackage.STATECHART__DOMAIN_ID:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case SGraphPackage.STATECHART__LOCAL_REACTIONS:
+			case SGraphPackage.STATECHART__SCOPES:
+			case SGraphPackage.STATECHART__REGIONS:
+			case SGraphPackage.STATECHART__IMPORTS:
+				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.REACTIVE_ELEMENT__LOCAL_REACTIONS,
+				 SGraphFactory.eINSTANCE.createTransition()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.SCOPED_ELEMENT__SCOPES,
+				 SGraphFactory.eINSTANCE.createScope()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.COMPOSITE_ELEMENT__REGIONS,
+				 SGraphFactory.eINSTANCE.createRegion()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SGraphPackage.Literals.STATECHART__IMPORTS,
+				 SGraphFactory.eINSTANCE.createImport()));
+	}
+
+}

+ 110 - 112
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore

@@ -1,112 +1,110 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sgraph" nsURI="http://www.yakindu.org/sct/sgraph/2.0.0" nsPrefix="sgraph">
-  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" abstract="true" eSuperTypes="#//Vertex"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="../../../org.yakindu.base.types/model/base.ecore#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parentRegion" ordered="false"
-        lowerBound="1" eType="#//Region" eOpposite="#//Region/vertices"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false"
-        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/source"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="../../../org.yakindu.base.types/model/base.ecore#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="vertices" ordered="false"
-        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/parentRegion"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="composite" lowerBound="1"
-        eType="#//CompositeElement" eOpposite="#//CompositeElement/regions"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//SpecificationElement #//Reaction ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
-        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incomingTransitions"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
-        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState"/>
-  <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">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
-        eType="#//Import" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
-        defaultValueLiteral="org.yakindu.domain.default"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//EntryKind"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="EntryKind">
-    <eLiterals name="initial" literal="INITIAL"/>
-    <eLiterals name="shallowHistory" value="1" literal="SHALLOW_HISTORY"/>
-    <eLiterals name="deepHistory" value="2" literal="DEEP_HISTORY"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ReactiveElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
-        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="localReactions" upperBound="-1"
-        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Reaction" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
-        transient="true" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
-        transient="true" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//ReactionProperty" transient="true" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Trigger" abstract="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Effect" abstract="true"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ReactionProperty"/>
-  <eClassifiers xsi:type="ecore:EClass" name="SpecificationElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Scope">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="declarations" upperBound="-1"
-        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Declaration"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
-        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Event"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" unique="false"
-        upperBound="-1" eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Property"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
-        eType="#//Scope" transient="true" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>
-  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//RegularState #//CompositeElement ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orthogonal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="substatechart" eType="#//Statechart"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="substatechartId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="subchart" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="simple" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        changeable="false" volatile="true" transient="true" derived="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="#//Vertex"/>
-  <eClassifiers xsi:type="ecore:EEnum" name="ChoiceKind">
-    <eLiterals name="dynamic"/>
-    <eLiterals name="static" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CompositeElement" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
-        eType="#//Region" containment="true" eOpposite="#//Region/composite"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Import">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <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>
-</ecore:EPackage>
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sgraph" nsURI="http://www.yakindu.org/sct/sgraph/2.0.0" nsPrefix="sgraph">
+  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" abstract="true" eSuperTypes="#//Vertex"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="../../../org.yakindu.base.types/model/base.ecore#//NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="parentRegion" ordered="false"
+        lowerBound="1" eType="#//Region" eOpposite="#//Region/vertices"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="incomingTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingTransitions" ordered="false"
+        upperBound="-1" eType="#//Transition" containment="true" eOpposite="#//Transition/source"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="../../../org.yakindu.base.types/model/base.ecore#//NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="vertices" ordered="false"
+        upperBound="-1" eType="#//Vertex" containment="true" eOpposite="#//Vertex/parentRegion"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="composite" lowerBound="1"
+        eType="#//CompositeElement" eOpposite="#//CompositeElement/regions"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//SpecificationElement #//Reaction ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incomingTransitions"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+        lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/outgoingTransitions"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//RegularState"/>
+  <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">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
+        eType="#//Import" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Entry" eSuperTypes="#//Pseudostate">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//EntryKind"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="EntryKind">
+    <eLiterals name="initial" literal="INITIAL"/>
+    <eLiterals name="shallowHistory" value="1" literal="SHALLOW_HISTORY"/>
+    <eLiterals name="deepHistory" value="2" literal="DEEP_HISTORY"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Exit" eSuperTypes="#//Pseudostate"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ReactiveElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
+        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="localReactions" upperBound="-1"
+        eType="#//Reaction" changeable="false" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Reaction" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" eType="#//Trigger"
+        transient="true" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="effect" eType="#//Effect"
+        transient="true" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+        eType="#//ReactionProperty" transient="true" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Trigger" abstract="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Effect" abstract="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ReactionProperty"/>
+  <eClassifiers xsi:type="ecore:EClass" name="SpecificationElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="specification" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Scope">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="declarations" upperBound="-1"
+        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Declaration"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
+        eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Event"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="variables" unique="false"
+        upperBound="-1" eType="ecore:EClass ../../../org.yakindu.base.types/model/types.ecore#//Property"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ScopedElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="scopes" upperBound="-1"
+        eType="#//Scope" transient="true" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Synchronization" eSuperTypes="#//Pseudostate"/>
+  <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//SpecificationElement #//ReactiveElement #//ScopedElement #//RegularState #//CompositeElement ../../../org.yakindu.base.types/model/base.ecore#//DocumentedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="orthogonal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="substatechart" eType="#//Statechart"
+        transient="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="substatechartId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="subchart" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="simple" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RegularState" abstract="true" eSuperTypes="#//Vertex"/>
+  <eClassifiers xsi:type="ecore:EEnum" name="ChoiceKind">
+    <eLiterals name="dynamic"/>
+    <eLiterals name="static" value="1"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="CompositeElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"
+        eType="#//Region" containment="true" eOpposite="#//Region/composite"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Import">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <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>
+</ecore:EPackage>

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

@@ -6,3 +6,5 @@
 # Contributors:
 # committers of YAKINDU - initial API and implementation
 # 
+pluginName = SGraph Model
+providerName = www.example.org

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

@@ -1,67 +1,67 @@
-/**
- * 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;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Choice</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.Choice#getKind <em>Kind</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getChoice()
- * @model
- * @generated
- */
-public interface Choice extends Pseudostate {
-	/**
-	 * <!-- 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>Kind</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.yakindu.sct.model.sgraph.ChoiceKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Kind</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Kind</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.ChoiceKind
-	 * @see #setKind(ChoiceKind)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getChoice_Kind()
-	 * @model
-	 * @generated
-	 */
-	ChoiceKind getKind();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Choice#getKind <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Kind</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.ChoiceKind
-	 * @see #getKind()
-	 * @generated
-	 */
-	void setKind(ChoiceKind value);
-
-} // Choice
+/**
+ * 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;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Choice</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Choice#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getChoice()
+ * @model
+ * @generated
+ */
+public interface Choice extends Pseudostate {
+	/**
+	 * <!-- 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>Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.yakindu.sct.model.sgraph.ChoiceKind}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Kind</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Kind</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.ChoiceKind
+	 * @see #setKind(ChoiceKind)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getChoice_Kind()
+	 * @model
+	 * @generated
+	 */
+	ChoiceKind getKind();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Choice#getKind <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Kind</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.ChoiceKind
+	 * @see #getKind()
+	 * @generated
+	 */
+	void setKind(ChoiceKind value);
+
+} // Choice

+ 6 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ChoiceKind.java

@@ -107,6 +107,8 @@ public enum ChoiceKind implements Enumerator {
 	 * Returns the '<em><b>Choice Kind</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static ChoiceKind get(String literal) {
@@ -123,6 +125,8 @@ public enum ChoiceKind implements Enumerator {
 	 * Returns the '<em><b>Choice Kind</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static ChoiceKind getByName(String name) {
@@ -139,6 +143,8 @@ public enum ChoiceKind implements Enumerator {
 	 * Returns the '<em><b>Choice Kind</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static ChoiceKind get(int value) {

+ 58 - 58
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/CompositeElement.java

@@ -1,58 +1,58 @@
-/**
- * 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;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Composite Element</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.CompositeElement#getRegions <em>Regions</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getCompositeElement()
- * @model abstract="true"
- * @generated
- */
-public interface CompositeElement 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>Regions</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Region}.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Regions</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>Regions</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getCompositeElement_Regions()
-	 * @see org.yakindu.sct.model.sgraph.Region#getComposite
-	 * @model opposite="composite" containment="true" resolveProxies="true"
-	 * @generated
-	 */
-	EList<Region> getRegions();
-
-} // CompositeElement
+/**
+ * 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;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Composite Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.CompositeElement#getRegions <em>Regions</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getCompositeElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CompositeElement 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>Regions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Region}.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Regions</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>Regions</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getCompositeElement_Regions()
+	 * @see org.yakindu.sct.model.sgraph.Region#getComposite
+	 * @model opposite="composite" containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<Region> getRegions();
+
+} // CompositeElement

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Entry.java

@@ -18,10 +18,10 @@ package org.yakindu.sct.model.sgraph;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.Entry#getKind <em>Kind</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getEntry()
  * @model

+ 6 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/EntryKind.java

@@ -133,6 +133,8 @@ public enum EntryKind implements Enumerator {
 	 * Returns the '<em><b>Entry Kind</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EntryKind get(String literal) {
@@ -149,6 +151,8 @@ public enum EntryKind implements Enumerator {
 	 * Returns the '<em><b>Entry Kind</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EntryKind getByName(String name) {
@@ -165,6 +169,8 @@ public enum EntryKind implements Enumerator {
 	 * Returns the '<em><b>Entry Kind</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EntryKind get(int value) {

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Import.java

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

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ImportDeclaration.java

@@ -20,10 +20,10 @@ import org.yakindu.base.types.Declaration;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.ImportDeclaration#getDeclaration <em>Declaration</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getImportDeclaration()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Reaction.java

@@ -20,12 +20,12 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.Reaction#getTrigger <em>Trigger</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Reaction#getEffect <em>Effect</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Reaction#getProperties <em>Properties</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getReaction()
  * @model abstract="true"

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

@@ -20,11 +20,11 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.ReactiveElement#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.ReactiveElement#getLocalReactions <em>Local Reactions</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getReactiveElement()
  * @model abstract="true"

+ 87 - 87
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Region.java

@@ -1,87 +1,87 @@
-/**
- * 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.yakindu.base.base.NamedElement;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Region</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.Region#getVertices <em>Vertices</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion()
- * @model
- * @generated
- */
-public interface Region extends NamedElement {
-	/**
-	 * <!-- 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>Vertices</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Vertex}.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Vertices</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>Vertices</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion_Vertices()
-	 * @see org.yakindu.sct.model.sgraph.Vertex#getParentRegion
-	 * @model opposite="parentRegion" containment="true" resolveProxies="true" ordered="false"
-	 * @generated
-	 */
-	EList<Vertex> getVertices();
-
-	/**
-	 * Returns the value of the '<em><b>Composite</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.CompositeElement#getRegions <em>Regions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Composite</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Composite</em>' container reference.
-	 * @see #setComposite(CompositeElement)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion_Composite()
-	 * @see org.yakindu.sct.model.sgraph.CompositeElement#getRegions
-	 * @model opposite="regions" required="true" transient="false"
-	 * @generated
-	 */
-	CompositeElement getComposite();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Composite</em>' container reference.
-	 * @see #getComposite()
-	 * @generated
-	 */
-	void setComposite(CompositeElement value);
-
-} // Region
+/**
+ * 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.yakindu.base.base.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Region</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Region#getVertices <em>Vertices</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion()
+ * @model
+ * @generated
+ */
+public interface Region extends NamedElement {
+	/**
+	 * <!-- 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>Vertices</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Vertex}.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Vertices</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>Vertices</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion_Vertices()
+	 * @see org.yakindu.sct.model.sgraph.Vertex#getParentRegion
+	 * @model opposite="parentRegion" containment="true" resolveProxies="true" ordered="false"
+	 * @generated
+	 */
+	EList<Vertex> getVertices();
+
+	/**
+	 * Returns the value of the '<em><b>Composite</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.CompositeElement#getRegions <em>Regions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Composite</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Composite</em>' container reference.
+	 * @see #setComposite(CompositeElement)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getRegion_Composite()
+	 * @see org.yakindu.sct.model.sgraph.CompositeElement#getRegions
+	 * @model opposite="regions" required="true" transient="false"
+	 * @generated
+	 */
+	CompositeElement getComposite();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Region#getComposite <em>Composite</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Composite</em>' container reference.
+	 * @see #getComposite()
+	 * @generated
+	 */
+	void setComposite(CompositeElement value);
+
+} // Region

File diff suppressed because it is too large
+ 2449 - 2468
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphPackage.java


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

@@ -23,12 +23,12 @@ import org.yakindu.base.types.Property;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getDeclarations <em>Declarations</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getEvents <em>Events</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.Scope#getVariables <em>Variables</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getScope()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/ScopedElement.java

@@ -20,11 +20,11 @@ import org.eclipse.emf.ecore.EObject;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.ScopedElement#getScopes <em>Scopes</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.ScopedElement#getNamespace <em>Namespace</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.model.sgraph.SGraphPackage#getScopedElement()
  * @model abstract="true"

+ 65 - 65
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SpecificationElement.java

@@ -1,65 +1,65 @@
-/**
- * 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.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Specification Element</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.SpecificationElement#getSpecification <em>Specification</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getSpecificationElement()
- * @model abstract="true"
- * @generated
- */
-public interface SpecificationElement 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>Specification</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Specification</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Specification</em>' attribute.
-	 * @see #setSpecification(String)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getSpecificationElement_Specification()
-	 * @model
-	 * @generated
-	 */
-	String getSpecification();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.SpecificationElement#getSpecification <em>Specification</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Specification</em>' attribute.
-	 * @see #getSpecification()
-	 * @generated
-	 */
-	void setSpecification(String value);
-
-} // SpecificationElement
+/**
+ * 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.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specification Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.SpecificationElement#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getSpecificationElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SpecificationElement 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>Specification</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Specification</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Specification</em>' attribute.
+	 * @see #setSpecification(String)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getSpecificationElement_Specification()
+	 * @model
+	 * @generated
+	 */
+	String getSpecification();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.SpecificationElement#getSpecification <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Specification</em>' attribute.
+	 * @see #getSpecification()
+	 * @generated
+	 */
+	void setSpecification(String value);
+
+} // SpecificationElement

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

@@ -1,174 +1,174 @@
-/**
- * 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.yakindu.base.base.DocumentedElement;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>State</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isOrthogonal <em>Orthogonal</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isSubchart <em>Subchart</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isSimple <em>Simple</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isComposite <em>Composite</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.State#isLeaf <em>Leaf</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState()
- * @model
- * @generated
- */
-public interface State extends SpecificationElement, ReactiveElement, ScopedElement, RegularState, CompositeElement, DocumentedElement {
-	/**
-	 * <!-- 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>Orthogonal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Orthogonal</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Orthogonal</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Orthogonal()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isOrthogonal();
-
-	/**
-	 * Returns the value of the '<em><b>Substatechart</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Substatechart</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Substatechart</em>' reference.
-	 * @see #setSubstatechart(Statechart)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Substatechart()
-	 * @model transient="true"
-	 * @generated
-	 */
-	Statechart getSubstatechart();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Substatechart</em>' reference.
-	 * @see #getSubstatechart()
-	 * @generated
-	 */
-	void setSubstatechart(Statechart value);
-
-	/**
-	 * Returns the value of the '<em><b>Substatechart Id</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Substatechart Id</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Substatechart Id</em>' attribute.
-	 * @see #setSubstatechartId(String)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_SubstatechartId()
-	 * @model
-	 * @generated
-	 */
-	String getSubstatechartId();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Substatechart Id</em>' attribute.
-	 * @see #getSubstatechartId()
-	 * @generated
-	 */
-	void setSubstatechartId(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Subchart</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Subchart</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Subchart</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Subchart()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isSubchart();
-
-	/**
-	 * Returns the value of the '<em><b>Simple</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Simple</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Simple</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Simple()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isSimple();
-
-	/**
-	 * Returns the value of the '<em><b>Composite</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Composite</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Composite</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Composite()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isComposite();
-
-	/**
-	 * Returns the value of the '<em><b>Leaf</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Leaf</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Leaf</em>' attribute.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Leaf()
-	 * @model transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	boolean isLeaf();
-
-
-} // State
+/**
+ * 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.yakindu.base.base.DocumentedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#isOrthogonal <em>Orthogonal</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#isSubchart <em>Subchart</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#isSimple <em>Simple</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#isComposite <em>Composite</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.State#isLeaf <em>Leaf</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState()
+ * @model
+ * @generated
+ */
+public interface State extends SpecificationElement, ReactiveElement, ScopedElement, RegularState, CompositeElement, DocumentedElement {
+	/**
+	 * <!-- 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>Orthogonal</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orthogonal</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orthogonal</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Orthogonal()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isOrthogonal();
+
+	/**
+	 * Returns the value of the '<em><b>Substatechart</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Substatechart</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Substatechart</em>' reference.
+	 * @see #setSubstatechart(Statechart)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Substatechart()
+	 * @model transient="true"
+	 * @generated
+	 */
+	Statechart getSubstatechart();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechart <em>Substatechart</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Substatechart</em>' reference.
+	 * @see #getSubstatechart()
+	 * @generated
+	 */
+	void setSubstatechart(Statechart value);
+
+	/**
+	 * Returns the value of the '<em><b>Substatechart Id</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Substatechart Id</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Substatechart Id</em>' attribute.
+	 * @see #setSubstatechartId(String)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_SubstatechartId()
+	 * @model
+	 * @generated
+	 */
+	String getSubstatechartId();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.State#getSubstatechartId <em>Substatechart Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Substatechart Id</em>' attribute.
+	 * @see #getSubstatechartId()
+	 * @generated
+	 */
+	void setSubstatechartId(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Subchart</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Subchart</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Subchart</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Subchart()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isSubchart();
+
+	/**
+	 * Returns the value of the '<em><b>Simple</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Simple</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Simple</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Simple()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isSimple();
+
+	/**
+	 * Returns the value of the '<em><b>Composite</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Composite</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Composite</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Composite()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isComposite();
+
+	/**
+	 * Returns the value of the '<em><b>Leaf</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Leaf</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Leaf</em>' attribute.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getState_Leaf()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	boolean isLeaf();
+
+
+} // State

+ 59 - 86
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Statechart.java

@@ -1,86 +1,59 @@
-/**
- * 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.yakindu.base.base.DocumentedElement;
-import org.yakindu.base.base.NamedElement;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Statechart</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.Statechart#getImports <em>Imports</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.Statechart#getDomainID <em>Domain ID</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart()
- * @model
- * @generated
- */
-public interface Statechart extends SpecificationElement, ReactiveElement, ScopedElement, CompositeElement, NamedElement, DocumentedElement {
-	/**
-	 * <!-- 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>Imports</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Import}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Imports</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>Imports</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart_Imports()
-	 * @model containment="true" resolveProxies="true"
-	 * @generated
-	 */
-	EList<Import> getImports();
-
-	/**
-	 * Returns the value of the '<em><b>Domain ID</b></em>' attribute.
-	 * The default value is <code>"org.yakindu.domain.default"</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Domain ID</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Domain ID</em>' attribute.
-	 * @see #setDomainID(String)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart_DomainID()
-	 * @model default="org.yakindu.domain.default"
-	 * @generated
-	 */
-	String getDomainID();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Statechart#getDomainID <em>Domain ID</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Domain ID</em>' attribute.
-	 * @see #getDomainID()
-	 * @generated
-	 */
-	void setDomainID(String value);
-
-} // Statechart
+/**
+ * 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.yakindu.base.base.DocumentedElement;
+import org.yakindu.base.base.DomainElement;
+import org.yakindu.base.base.NamedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * 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#getImports <em>Imports</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart()
+ * @model
+ * @generated
+ */
+public interface Statechart extends SpecificationElement, ReactiveElement, ScopedElement, CompositeElement, NamedElement, DocumentedElement, DomainElement {
+	/**
+	 * <!-- 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>Imports</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Import}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Imports</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>Imports</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getStatechart_Imports()
+	 * @model containment="true" resolveProxies="true"
+	 * @generated
+	 */
+	EList<Import> getImports();
+
+} // Statechart

+ 97 - 97
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Transition.java

@@ -1,97 +1,97 @@
-/**
- * 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.yakindu.base.base.DocumentedElement;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Transition</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition()
- * @model
- * @generated
- */
-public interface Transition extends SpecificationElement, Reaction, DocumentedElement {
-	/**
-	 * <!-- 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>Target</b></em>' reference.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Target</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Target</em>' reference.
-	 * @see #setTarget(Vertex)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition_Target()
-	 * @see org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions
-	 * @model opposite="incomingTransitions" required="true" ordered="false"
-	 * @generated
-	 */
-	Vertex getTarget();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Target</em>' reference.
-	 * @see #getTarget()
-	 * @generated
-	 */
-	void setTarget(Vertex value);
-
-	/**
-	 * Returns the value of the '<em><b>Source</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Source</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Source</em>' container reference.
-	 * @see #setSource(Vertex)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition_Source()
-	 * @see org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions
-	 * @model opposite="outgoingTransitions" required="true" transient="false" ordered="false"
-	 * @generated
-	 */
-	Vertex getSource();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Source</em>' container reference.
-	 * @see #getSource()
-	 * @generated
-	 */
-	void setSource(Vertex value);
-
-} // Transition
+/**
+ * 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.yakindu.base.base.DocumentedElement;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition()
+ * @model
+ * @generated
+ */
+public interface Transition extends SpecificationElement, Reaction, DocumentedElement {
+	/**
+	 * <!-- 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>Target</b></em>' reference.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Target</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Target</em>' reference.
+	 * @see #setTarget(Vertex)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition_Target()
+	 * @see org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions
+	 * @model opposite="incomingTransitions" required="true" ordered="false"
+	 * @generated
+	 */
+	Vertex getTarget();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Target</em>' reference.
+	 * @see #getTarget()
+	 * @generated
+	 */
+	void setTarget(Vertex value);
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' container reference.
+	 * @see #setSource(Vertex)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getTransition_Source()
+	 * @see org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions
+	 * @model opposite="outgoingTransitions" required="true" transient="false" ordered="false"
+	 * @generated
+	 */
+	Vertex getSource();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' container reference.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(Vertex value);
+
+} // Transition

+ 106 - 106
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/Vertex.java

@@ -1,106 +1,106 @@
-/**
- * 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.yakindu.base.base.NamedElement;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Vertex</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex()
- * @model abstract="true"
- * @generated
- */
-public interface Vertex extends NamedElement {
-	/**
-	 * <!-- 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>Parent Region</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Region#getVertices <em>Vertices</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Parent Region</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Parent Region</em>' container reference.
-	 * @see #setParentRegion(Region)
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_ParentRegion()
-	 * @see org.yakindu.sct.model.sgraph.Region#getVertices
-	 * @model opposite="vertices" required="true" transient="false" ordered="false"
-	 * @generated
-	 */
-	Region getParentRegion();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Parent Region</em>' container reference.
-	 * @see #getParentRegion()
-	 * @generated
-	 */
-	void setParentRegion(Region value);
-
-	/**
-	 * Returns the value of the '<em><b>Incoming Transitions</b></em>' reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Transition}.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Incoming Transitions</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>Incoming Transitions</em>' reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_IncomingTransitions()
-	 * @see org.yakindu.sct.model.sgraph.Transition#getTarget
-	 * @model opposite="target" ordered="false"
-	 * @generated
-	 */
-	EList<Transition> getIncomingTransitions();
-
-	/**
-	 * Returns the value of the '<em><b>Outgoing Transitions</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Transition}.
-	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Outgoing Transitions</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>Outgoing Transitions</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_OutgoingTransitions()
-	 * @see org.yakindu.sct.model.sgraph.Transition#getSource
-	 * @model opposite="source" containment="true" resolveProxies="true" ordered="false"
-	 * @generated
-	 */
-	EList<Transition> getOutgoingTransitions();
-
-} // Vertex
+/**
+ * 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.yakindu.base.base.NamedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vertex</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getIncomingTransitions <em>Incoming Transitions</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.Vertex#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
+ * </ul>
+ *
+ * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Vertex extends NamedElement {
+	/**
+	 * <!-- 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>Parent Region</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Region#getVertices <em>Vertices</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parent Region</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parent Region</em>' container reference.
+	 * @see #setParentRegion(Region)
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_ParentRegion()
+	 * @see org.yakindu.sct.model.sgraph.Region#getVertices
+	 * @model opposite="vertices" required="true" transient="false" ordered="false"
+	 * @generated
+	 */
+	Region getParentRegion();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgraph.Vertex#getParentRegion <em>Parent Region</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parent Region</em>' container reference.
+	 * @see #getParentRegion()
+	 * @generated
+	 */
+	void setParentRegion(Region value);
+
+	/**
+	 * Returns the value of the '<em><b>Incoming Transitions</b></em>' reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Transition}.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Transition#getTarget <em>Target</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Incoming Transitions</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>Incoming Transitions</em>' reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_IncomingTransitions()
+	 * @see org.yakindu.sct.model.sgraph.Transition#getTarget
+	 * @model opposite="target" ordered="false"
+	 * @generated
+	 */
+	EList<Transition> getIncomingTransitions();
+
+	/**
+	 * Returns the value of the '<em><b>Outgoing Transitions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.yakindu.sct.model.sgraph.Transition}.
+	 * It is bidirectional and its opposite is '{@link org.yakindu.sct.model.sgraph.Transition#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Outgoing Transitions</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>Outgoing Transitions</em>' containment reference list.
+	 * @see org.yakindu.sct.model.sgraph.SGraphPackage#getVertex_OutgoingTransitions()
+	 * @see org.yakindu.sct.model.sgraph.Transition#getSource
+	 * @model opposite="source" containment="true" resolveProxies="true" ordered="false"
+	 * @generated
+	 */
+	EList<Transition> getOutgoingTransitions();
+
+} // Vertex

+ 174 - 174
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ChoiceImpl.java

@@ -1,174 +1,174 @@
-/**
- * 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 org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.yakindu.sct.model.sgraph.Choice;
-import org.yakindu.sct.model.sgraph.ChoiceKind;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Choice</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.ChoiceImpl#getKind <em>Kind</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ChoiceImpl extends PseudostateImpl implements Choice {
-	/**
-	 * <!-- 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 default value of the '{@link #getKind() <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getKind()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final ChoiceKind KIND_EDEFAULT = ChoiceKind.DYNAMIC;
-	/**
-	 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getKind()
-	 * @generated
-	 * @ordered
-	 */
-	protected ChoiceKind kind = KIND_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ChoiceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.CHOICE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ChoiceKind getKind() {
-		return kind;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setKind(ChoiceKind newKind) {
-		ChoiceKind oldKind = kind;
-		kind = newKind == null ? KIND_EDEFAULT : newKind;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.CHOICE__KIND, oldKind, kind));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SGraphPackage.CHOICE__KIND:
-				return getKind();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case SGraphPackage.CHOICE__KIND:
-				setKind((ChoiceKind)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.CHOICE__KIND:
-				setKind(KIND_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.CHOICE__KIND:
-				return kind != KIND_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (kind: ");
-		result.append(kind);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ChoiceImpl
+/**
+ * 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 org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.yakindu.sct.model.sgraph.Choice;
+import org.yakindu.sct.model.sgraph.ChoiceKind;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Choice</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.ChoiceImpl#getKind <em>Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ChoiceImpl extends PseudostateImpl implements Choice {
+	/**
+	 * <!-- 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 default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ChoiceKind KIND_EDEFAULT = ChoiceKind.DYNAMIC;
+	/**
+	 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected ChoiceKind kind = KIND_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ChoiceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.CHOICE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ChoiceKind getKind() {
+		return kind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setKind(ChoiceKind newKind) {
+		ChoiceKind oldKind = kind;
+		kind = newKind == null ? KIND_EDEFAULT : newKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.CHOICE__KIND, oldKind, kind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGraphPackage.CHOICE__KIND:
+				return getKind();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SGraphPackage.CHOICE__KIND:
+				setKind((ChoiceKind)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.CHOICE__KIND:
+				setKind(KIND_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.CHOICE__KIND:
+				return kind != KIND_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (kind: ");
+		result.append(kind);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ChoiceImpl

+ 177 - 177
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/CompositeElementImpl.java

@@ -1,177 +1,177 @@
-/**
- * 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.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.yakindu.sct.model.sgraph.CompositeElement;
-import org.yakindu.sct.model.sgraph.Region;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Composite Element</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.CompositeElementImpl#getRegions <em>Regions</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class CompositeElementImpl extends EObjectImpl implements CompositeElement {
-	/**
-	 * <!-- 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 #getRegions() <em>Regions</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRegions()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Region> regions;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CompositeElementImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.COMPOSITE_ELEMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Region> getRegions() {
-		if (regions == null) {
-			regions = new EObjectContainmentWithInverseEList.Resolving<Region>(Region.class, this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, SGraphPackage.REGION__COMPOSITE);
-		}
-		return regions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRegions()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
-				return ((InternalEList<?>)getRegions()).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.COMPOSITE_ELEMENT__REGIONS:
-				return getRegions();
-		}
-		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.COMPOSITE_ELEMENT__REGIONS:
-				getRegions().clear();
-				getRegions().addAll((Collection<? extends Region>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
-				getRegions().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
-				return regions != null && !regions.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //CompositeElementImpl
+/**
+ * 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.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.yakindu.sct.model.sgraph.CompositeElement;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Composite Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.CompositeElementImpl#getRegions <em>Regions</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class CompositeElementImpl extends EObjectImpl implements CompositeElement {
+	/**
+	 * <!-- 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 #getRegions() <em>Regions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRegions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Region> regions;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CompositeElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.COMPOSITE_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Region> getRegions() {
+		if (regions == null) {
+			regions = new EObjectContainmentWithInverseEList.Resolving<Region>(Region.class, this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, SGraphPackage.REGION__COMPOSITE);
+		}
+		return regions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRegions()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
+				return ((InternalEList<?>)getRegions()).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.COMPOSITE_ELEMENT__REGIONS:
+				return getRegions();
+		}
+		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.COMPOSITE_ELEMENT__REGIONS:
+				getRegions().clear();
+				getRegions().addAll((Collection<? extends Region>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
+				getRegions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.COMPOSITE_ELEMENT__REGIONS:
+				return regions != null && !regions.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //CompositeElementImpl

+ 52 - 54
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/EffectImpl.java

@@ -1,54 +1,52 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.yakindu.sct.model.sgraph.Effect;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Effect</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class EffectImpl extends EObjectImpl implements Effect {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EffectImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.EFFECT;
-	}
-
-} //EffectImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.yakindu.sct.model.sgraph.Effect;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Effect</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class EffectImpl extends EObjectImpl implements Effect {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EffectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.EFFECT;
+	}
+
+} //EffectImpl

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

@@ -23,10 +23,10 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.EntryImpl#getKind <em>Kind</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 0 - 2
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ExitImpl.java

@@ -18,8 +18,6 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Exit</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */

+ 51 - 53
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/FinalStateImpl.java

@@ -1,53 +1,51 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.yakindu.sct.model.sgraph.FinalState;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Final State</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public class FinalStateImpl extends RegularStateImpl implements FinalState {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FinalStateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.FINAL_STATE;
-	}
-
-} //FinalStateImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.yakindu.sct.model.sgraph.FinalState;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Final State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class FinalStateImpl extends RegularStateImpl implements FinalState {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FinalStateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.FINAL_STATE;
+	}
+
+} //FinalStateImpl

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

@@ -25,10 +25,10 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ImportDeclarationImpl#getDeclaration <em>Declaration</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

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

@@ -23,10 +23,10 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ImportImpl#getImportedNamespace <em>Imported Namespace</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 51 - 53
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/PseudostateImpl.java

@@ -1,53 +1,51 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.yakindu.sct.model.sgraph.Pseudostate;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Pseudostate</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class PseudostateImpl extends VertexImpl implements Pseudostate {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PseudostateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.PSEUDOSTATE;
-	}
-
-} //PseudostateImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.yakindu.sct.model.sgraph.Pseudostate;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pseudostate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class PseudostateImpl extends VertexImpl implements Pseudostate {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PseudostateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.PSEUDOSTATE;
+	}
+
+} //PseudostateImpl

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

@@ -33,12 +33,12 @@ import org.yakindu.sct.model.sgraph.Trigger;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactionImpl#getTrigger <em>Trigger</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactionImpl#getEffect <em>Effect</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactionImpl#getProperties <em>Properties</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 0 - 2
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/ReactionPropertyImpl.java

@@ -19,8 +19,6 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Reaction Property</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */

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

@@ -23,11 +23,11 @@ import org.yakindu.sct.model.sgraph.SGraphPackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactiveElementImpl#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ReactiveElementImpl#getLocalReactions <em>Local Reactions</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 264 - 264
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/RegionImpl.java

@@ -1,264 +1,264 @@
-/**
- * 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.Notification;
-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.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.yakindu.base.base.impl.NamedElementImpl;
-import org.yakindu.sct.model.sgraph.CompositeElement;
-import org.yakindu.sct.model.sgraph.Region;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Vertex;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Region</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.RegionImpl#getVertices <em>Vertices</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.RegionImpl#getComposite <em>Composite</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class RegionImpl extends NamedElementImpl implements Region {
-	/**
-	 * <!-- 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 #getVertices() <em>Vertices</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getVertices()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Vertex> vertices;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RegionImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.REGION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Vertex> getVertices() {
-		if (vertices == null) {
-			vertices = new EObjectContainmentWithInverseEList.Resolving<Vertex>(Vertex.class, this, SGraphPackage.REGION__VERTICES, SGraphPackage.VERTEX__PARENT_REGION);
-		}
-		return vertices;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CompositeElement getComposite() {
-		if (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE) return null;
-		return (CompositeElement)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CompositeElement basicGetComposite() {
-		if (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE) return null;
-		return (CompositeElement)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetComposite(CompositeElement newComposite, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newComposite, SGraphPackage.REGION__COMPOSITE, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setComposite(CompositeElement newComposite) {
-		if (newComposite != eInternalContainer() || (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE && newComposite != null)) {
-			if (EcoreUtil.isAncestor(this, newComposite))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newComposite != null)
-				msgs = ((InternalEObject)newComposite).eInverseAdd(this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, CompositeElement.class, msgs);
-			msgs = basicSetComposite(newComposite, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.REGION__COMPOSITE, newComposite, newComposite));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.REGION__VERTICES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getVertices()).basicAdd(otherEnd, msgs);
-			case SGraphPackage.REGION__COMPOSITE:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetComposite((CompositeElement)otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.REGION__VERTICES:
-				return ((InternalEList<?>)getVertices()).basicRemove(otherEnd, msgs);
-			case SGraphPackage.REGION__COMPOSITE:
-				return basicSetComposite(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case SGraphPackage.REGION__COMPOSITE:
-				return eInternalContainer().eInverseRemove(this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, CompositeElement.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SGraphPackage.REGION__VERTICES:
-				return getVertices();
-			case SGraphPackage.REGION__COMPOSITE:
-				if (resolve) return getComposite();
-				return basicGetComposite();
-		}
-		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.REGION__VERTICES:
-				getVertices().clear();
-				getVertices().addAll((Collection<? extends Vertex>)newValue);
-				return;
-			case SGraphPackage.REGION__COMPOSITE:
-				setComposite((CompositeElement)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.REGION__VERTICES:
-				getVertices().clear();
-				return;
-			case SGraphPackage.REGION__COMPOSITE:
-				setComposite((CompositeElement)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.REGION__VERTICES:
-				return vertices != null && !vertices.isEmpty();
-			case SGraphPackage.REGION__COMPOSITE:
-				return basicGetComposite() != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //RegionImpl
+/**
+ * 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.Notification;
+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.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.yakindu.base.base.impl.NamedElementImpl;
+import org.yakindu.sct.model.sgraph.CompositeElement;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Vertex;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Region</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.RegionImpl#getVertices <em>Vertices</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.RegionImpl#getComposite <em>Composite</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RegionImpl extends NamedElementImpl implements Region {
+	/**
+	 * <!-- 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 #getVertices() <em>Vertices</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVertices()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Vertex> vertices;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RegionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.REGION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Vertex> getVertices() {
+		if (vertices == null) {
+			vertices = new EObjectContainmentWithInverseEList.Resolving<Vertex>(Vertex.class, this, SGraphPackage.REGION__VERTICES, SGraphPackage.VERTEX__PARENT_REGION);
+		}
+		return vertices;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CompositeElement getComposite() {
+		if (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE) return null;
+		return (CompositeElement)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CompositeElement basicGetComposite() {
+		if (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE) return null;
+		return (CompositeElement)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetComposite(CompositeElement newComposite, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newComposite, SGraphPackage.REGION__COMPOSITE, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setComposite(CompositeElement newComposite) {
+		if (newComposite != eInternalContainer() || (eContainerFeatureID() != SGraphPackage.REGION__COMPOSITE && newComposite != null)) {
+			if (EcoreUtil.isAncestor(this, newComposite))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newComposite != null)
+				msgs = ((InternalEObject)newComposite).eInverseAdd(this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, CompositeElement.class, msgs);
+			msgs = basicSetComposite(newComposite, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.REGION__COMPOSITE, newComposite, newComposite));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.REGION__VERTICES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getVertices()).basicAdd(otherEnd, msgs);
+			case SGraphPackage.REGION__COMPOSITE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetComposite((CompositeElement)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.REGION__VERTICES:
+				return ((InternalEList<?>)getVertices()).basicRemove(otherEnd, msgs);
+			case SGraphPackage.REGION__COMPOSITE:
+				return basicSetComposite(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case SGraphPackage.REGION__COMPOSITE:
+				return eInternalContainer().eInverseRemove(this, SGraphPackage.COMPOSITE_ELEMENT__REGIONS, CompositeElement.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGraphPackage.REGION__VERTICES:
+				return getVertices();
+			case SGraphPackage.REGION__COMPOSITE:
+				if (resolve) return getComposite();
+				return basicGetComposite();
+		}
+		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.REGION__VERTICES:
+				getVertices().clear();
+				getVertices().addAll((Collection<? extends Vertex>)newValue);
+				return;
+			case SGraphPackage.REGION__COMPOSITE:
+				setComposite((CompositeElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.REGION__VERTICES:
+				getVertices().clear();
+				return;
+			case SGraphPackage.REGION__COMPOSITE:
+				setComposite((CompositeElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.REGION__VERTICES:
+				return vertices != null && !vertices.isEmpty();
+			case SGraphPackage.REGION__COMPOSITE:
+				return basicGetComposite() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //RegionImpl

+ 51 - 53
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/RegularStateImpl.java

@@ -1,53 +1,51 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.yakindu.sct.model.sgraph.RegularState;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Regular State</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class RegularStateImpl extends VertexImpl implements RegularState {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected RegularStateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.REGULAR_STATE;
-	}
-
-} //RegularStateImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.yakindu.sct.model.sgraph.RegularState;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Regular State</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class RegularStateImpl extends VertexImpl implements RegularState {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RegularStateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.REGULAR_STATE;
+	}
+
+} //RegularStateImpl

+ 331 - 330
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphFactoryImpl.java

@@ -1,330 +1,331 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-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.Choice;
-import org.yakindu.sct.model.sgraph.ChoiceKind;
-import org.yakindu.sct.model.sgraph.Entry;
-import org.yakindu.sct.model.sgraph.EntryKind;
-import org.yakindu.sct.model.sgraph.Exit;
-import org.yakindu.sct.model.sgraph.FinalState;
-import org.yakindu.sct.model.sgraph.Import;
-import org.yakindu.sct.model.sgraph.ImportDeclaration;
-import org.yakindu.sct.model.sgraph.ReactionProperty;
-import org.yakindu.sct.model.sgraph.Region;
-import org.yakindu.sct.model.sgraph.SGraphFactory;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Scope;
-import org.yakindu.sct.model.sgraph.State;
-import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.Synchronization;
-import org.yakindu.sct.model.sgraph.Transition;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class SGraphFactoryImpl extends EFactoryImpl implements SGraphFactory {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static SGraphFactory init() {
-		try {
-			SGraphFactory theSGraphFactory = (SGraphFactory)EPackage.Registry.INSTANCE.getEFactory(SGraphPackage.eNS_URI);
-			if (theSGraphFactory != null) {
-				return theSGraphFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new SGraphFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SGraphFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case SGraphPackage.REGION: return createRegion();
-			case SGraphPackage.TRANSITION: return createTransition();
-			case SGraphPackage.FINAL_STATE: return createFinalState();
-			case SGraphPackage.CHOICE: return createChoice();
-			case SGraphPackage.STATECHART: return createStatechart();
-			case SGraphPackage.ENTRY: return createEntry();
-			case SGraphPackage.EXIT: return createExit();
-			case SGraphPackage.REACTION_PROPERTY: return createReactionProperty();
-			case SGraphPackage.SCOPE: return createScope();
-			case SGraphPackage.SYNCHRONIZATION: return createSynchronization();
-			case SGraphPackage.STATE: return createState();
-			case SGraphPackage.IMPORT: return createImport();
-			case SGraphPackage.IMPORT_DECLARATION: return createImportDeclaration();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object createFromString(EDataType eDataType, String initialValue) {
-		switch (eDataType.getClassifierID()) {
-			case SGraphPackage.ENTRY_KIND:
-				return createEntryKindFromString(eDataType, initialValue);
-			case SGraphPackage.CHOICE_KIND:
-				return createChoiceKindFromString(eDataType, initialValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String convertToString(EDataType eDataType, Object instanceValue) {
-		switch (eDataType.getClassifierID()) {
-			case SGraphPackage.ENTRY_KIND:
-				return convertEntryKindToString(eDataType, instanceValue);
-			case SGraphPackage.CHOICE_KIND:
-				return convertChoiceKindToString(eDataType, instanceValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Region createRegion() {
-		RegionImpl region = new RegionImpl();
-		return region;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Transition createTransition() {
-		TransitionImpl transition = new TransitionImpl();
-		return transition;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FinalState createFinalState() {
-		FinalStateImpl finalState = new FinalStateImpl();
-		return finalState;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Choice createChoice() {
-		ChoiceImpl choice = new ChoiceImpl();
-		return choice;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Statechart createStatechart() {
-		StatechartImpl statechart = new StatechartImpl();
-		return statechart;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Entry createEntry() {
-		EntryImpl entry = new EntryImpl();
-		return entry;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Exit createExit() {
-		ExitImpl exit = new ExitImpl();
-		return exit;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ReactionProperty createReactionProperty() {
-		ReactionPropertyImpl reactionProperty = new ReactionPropertyImpl();
-		return reactionProperty;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Scope createScope() {
-		ScopeImpl scope = new ScopeImpl();
-		return scope;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Synchronization createSynchronization() {
-		SynchronizationImpl synchronization = new SynchronizationImpl();
-		return synchronization;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public State createState() {
-		StateImpl state = new StateImpl();
-		return state;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Import createImport() {
-		ImportImpl import_ = new ImportImpl();
-		return import_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ImportDeclaration createImportDeclaration() {
-		ImportDeclarationImpl importDeclaration = new ImportDeclarationImpl();
-		return importDeclaration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EntryKind createEntryKindFromString(EDataType eDataType, String initialValue) {
-		EntryKind result = EntryKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertEntryKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ChoiceKind createChoiceKindFromString(EDataType eDataType, String initialValue) {
-		ChoiceKind result = ChoiceKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertChoiceKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public SGraphPackage getSGraphPackage() {
-		return (SGraphPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static SGraphPackage getPackage() {
-		return SGraphPackage.eINSTANCE;
-	}
-
-} //SGraphFactoryImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+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;
+import org.yakindu.sct.model.sgraph.EntryKind;
+import org.yakindu.sct.model.sgraph.Exit;
+import org.yakindu.sct.model.sgraph.FinalState;
+import org.yakindu.sct.model.sgraph.Import;
+import org.yakindu.sct.model.sgraph.ImportDeclaration;
+import org.yakindu.sct.model.sgraph.ReactionProperty;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.SGraphFactory;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Scope;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Synchronization;
+import org.yakindu.sct.model.sgraph.Transition;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SGraphFactoryImpl extends EFactoryImpl implements SGraphFactory {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SGraphFactory init() {
+		try {
+			SGraphFactory theSGraphFactory = (SGraphFactory)EPackage.Registry.INSTANCE.getEFactory(SGraphPackage.eNS_URI);
+			if (theSGraphFactory != null) {
+				return theSGraphFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SGraphFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SGraphFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SGraphPackage.REGION: return createRegion();
+			case SGraphPackage.TRANSITION: return createTransition();
+			case SGraphPackage.FINAL_STATE: return createFinalState();
+			case SGraphPackage.CHOICE: return createChoice();
+			case SGraphPackage.STATECHART: return createStatechart();
+			case SGraphPackage.ENTRY: return createEntry();
+			case SGraphPackage.EXIT: return createExit();
+			case SGraphPackage.REACTION_PROPERTY: return createReactionProperty();
+			case SGraphPackage.SCOPE: return createScope();
+			case SGraphPackage.SYNCHRONIZATION: return createSynchronization();
+			case SGraphPackage.STATE: return createState();
+			case SGraphPackage.IMPORT: return createImport();
+			case SGraphPackage.IMPORT_DECLARATION: return createImportDeclaration();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SGraphPackage.ENTRY_KIND:
+				return createEntryKindFromString(eDataType, initialValue);
+			case SGraphPackage.CHOICE_KIND:
+				return createChoiceKindFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SGraphPackage.ENTRY_KIND:
+				return convertEntryKindToString(eDataType, instanceValue);
+			case SGraphPackage.CHOICE_KIND:
+				return convertChoiceKindToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Region createRegion() {
+		RegionImpl region = new RegionImpl();
+		return region;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Transition createTransition() {
+		TransitionImpl transition = new TransitionImpl();
+		return transition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FinalState createFinalState() {
+		FinalStateImpl finalState = new FinalStateImpl();
+		return finalState;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Choice createChoice() {
+		ChoiceImpl choice = new ChoiceImpl();
+		return choice;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Statechart createStatechart() {
+		StatechartImpl statechart = new StatechartImpl();
+		return statechart;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Entry createEntry() {
+		EntryImpl entry = new EntryImpl();
+		return entry;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Exit createExit() {
+		ExitImpl exit = new ExitImpl();
+		return exit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReactionProperty createReactionProperty() {
+		ReactionPropertyImpl reactionProperty = new ReactionPropertyImpl();
+		return reactionProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Scope createScope() {
+		ScopeImpl scope = new ScopeImpl();
+		return scope;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Synchronization createSynchronization() {
+		SynchronizationImpl synchronization = new SynchronizationImpl();
+		return synchronization;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public State createState() {
+		StateImpl state = new StateImpl();
+		return state;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Import createImport() {
+		ImportImpl import_ = new ImportImpl();
+		return import_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImportDeclaration createImportDeclaration() {
+		ImportDeclarationImpl importDeclaration = new ImportDeclarationImpl();
+		return importDeclaration;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EntryKind createEntryKindFromString(EDataType eDataType, String initialValue) {
+		EntryKind result = EntryKind.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertEntryKindToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ChoiceKind createChoiceKindFromString(EDataType eDataType, String initialValue) {
+		ChoiceKind result = ChoiceKind.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertChoiceKindToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SGraphPackage getSGraphPackage() {
+		return (SGraphPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static SGraphPackage getPackage() {
+		return SGraphPackage.eINSTANCE;
+	}
+
+} //SGraphFactoryImpl

File diff suppressed because it is too large
+ 1067 - 1077
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SGraphPackageImpl.java


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

@@ -31,12 +31,12 @@ import org.yakindu.sct.model.sgraph.util.DerivedSubsetEObjectEList;
  * <em><b>Scope</b></em>'. <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getDeclarations <em>Declarations</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getEvents <em>Events</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopeImpl#getVariables <em>Variables</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

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

@@ -31,11 +31,11 @@ import org.yakindu.sct.model.sgraph.ScopedElement;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopedElementImpl#getScopes <em>Scopes</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sgraph.impl.ScopedElementImpl#getNamespace <em>Namespace</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 175 - 175
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SpecificationElementImpl.java

@@ -1,175 +1,175 @@
-/**
- * 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 org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.SpecificationElement;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Specification Element</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.SpecificationElementImpl#getSpecification <em>Specification</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class SpecificationElementImpl extends EObjectImpl implements SpecificationElement {
-	/**
-	 * <!-- 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 default value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSpecification()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SPECIFICATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSpecification()
-	 * @generated
-	 * @ordered
-	 */
-	protected String specification = SPECIFICATION_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SpecificationElementImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.SPECIFICATION_ELEMENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getSpecification() {
-		return specification;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSpecification(String newSpecification) {
-		String oldSpecification = specification;
-		specification = newSpecification;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION, oldSpecification, specification));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
-				return getSpecification();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
-				setSpecification((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
-				setSpecification(SPECIFICATION_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
-				return SPECIFICATION_EDEFAULT == null ? specification != null : !SPECIFICATION_EDEFAULT.equals(specification);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (specification: ");
-		result.append(specification);
-		result.append(')');
-		return result.toString();
-	}
-
-} //SpecificationElementImpl
+/**
+ * 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 org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.SpecificationElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specification Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.SpecificationElementImpl#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class SpecificationElementImpl extends EObjectImpl implements SpecificationElement {
+	/**
+	 * <!-- 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 default value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SPECIFICATION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSpecification() <em>Specification</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSpecification()
+	 * @generated
+	 * @ordered
+	 */
+	protected String specification = SPECIFICATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SpecificationElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.SPECIFICATION_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSpecification() {
+		return specification;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSpecification(String newSpecification) {
+		String oldSpecification = specification;
+		specification = newSpecification;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION, oldSpecification, specification));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
+				return getSpecification();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
+				setSpecification((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
+				setSpecification(SPECIFICATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.SPECIFICATION_ELEMENT__SPECIFICATION:
+				return SPECIFICATION_EDEFAULT == null ? specification != null : !SPECIFICATION_EDEFAULT.equals(specification);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (specification: ");
+		result.append(specification);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SpecificationElementImpl

File diff suppressed because it is too large
+ 934 - 934
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StateImpl.java


File diff suppressed because it is too large
+ 607 - 594
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/StatechartImpl.java


+ 0 - 2
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/SynchronizationImpl.java

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

File diff suppressed because it is too large
+ 649 - 649
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/TransitionImpl.java


+ 52 - 54
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/TriggerImpl.java

@@ -1,54 +1,52 @@
-/**
- * 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 org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Trigger;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Trigger</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public abstract class TriggerImpl extends EObjectImpl implements Trigger {
-	/**
-	 * <!-- 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";
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TriggerImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.TRIGGER;
-	}
-
-} //TriggerImpl
+/**
+ * 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 org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Trigger;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class TriggerImpl extends EObjectImpl implements Trigger {
+	/**
+	 * <!-- 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";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TriggerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.TRIGGER;
+	}
+
+} //TriggerImpl

+ 303 - 303
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/impl/VertexImpl.java

@@ -1,303 +1,303 @@
-/**
- * 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.Notification;
-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.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.yakindu.base.base.impl.NamedElementImpl;
-import org.yakindu.sct.model.sgraph.Region;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Transition;
-import org.yakindu.sct.model.sgraph.Vertex;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Vertex</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getParentRegion <em>Parent Region</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getIncomingTransitions <em>Incoming Transitions</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class VertexImpl extends NamedElementImpl implements Vertex {
-	/**
-	 * <!-- 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 #getIncomingTransitions() <em>Incoming Transitions</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getIncomingTransitions()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Transition> incomingTransitions;
-
-	/**
-	 * The cached value of the '{@link #getOutgoingTransitions() <em>Outgoing Transitions</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOutgoingTransitions()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Transition> outgoingTransitions;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected VertexImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SGraphPackage.Literals.VERTEX;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Region getParentRegion() {
-		if (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION) return null;
-		return (Region)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Region basicGetParentRegion() {
-		if (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION) return null;
-		return (Region)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetParentRegion(Region newParentRegion, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newParentRegion, SGraphPackage.VERTEX__PARENT_REGION, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentRegion(Region newParentRegion) {
-		if (newParentRegion != eInternalContainer() || (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION && newParentRegion != null)) {
-			if (EcoreUtil.isAncestor(this, newParentRegion))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newParentRegion != null)
-				msgs = ((InternalEObject)newParentRegion).eInverseAdd(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
-			msgs = basicSetParentRegion(newParentRegion, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.VERTEX__PARENT_REGION, newParentRegion, newParentRegion));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Transition> getIncomingTransitions() {
-		if (incomingTransitions == null) {
-			incomingTransitions = new EObjectWithInverseResolvingEList<Transition>(Transition.class, this, SGraphPackage.VERTEX__INCOMING_TRANSITIONS, SGraphPackage.TRANSITION__TARGET);
-		}
-		return incomingTransitions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Transition> getOutgoingTransitions() {
-		if (outgoingTransitions == null) {
-			outgoingTransitions = new EObjectContainmentWithInverseEList.Resolving<Transition>(Transition.class, this, SGraphPackage.VERTEX__OUTGOING_TRANSITIONS, SGraphPackage.TRANSITION__SOURCE);
-		}
-		return outgoingTransitions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetParentRegion((Region)otherEnd, msgs);
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingTransitions()).basicAdd(otherEnd, msgs);
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingTransitions()).basicAdd(otherEnd, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				return basicSetParentRegion(null, msgs);
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				return ((InternalEList<?>)getIncomingTransitions()).basicRemove(otherEnd, msgs);
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				return ((InternalEList<?>)getOutgoingTransitions()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				return eInternalContainer().eInverseRemove(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				if (resolve) return getParentRegion();
-				return basicGetParentRegion();
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				return getIncomingTransitions();
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				return getOutgoingTransitions();
-		}
-		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.VERTEX__PARENT_REGION:
-				setParentRegion((Region)newValue);
-				return;
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				getIncomingTransitions().clear();
-				getIncomingTransitions().addAll((Collection<? extends Transition>)newValue);
-				return;
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				getOutgoingTransitions().clear();
-				getOutgoingTransitions().addAll((Collection<? extends Transition>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				setParentRegion((Region)null);
-				return;
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				getIncomingTransitions().clear();
-				return;
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				getOutgoingTransitions().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case SGraphPackage.VERTEX__PARENT_REGION:
-				return basicGetParentRegion() != null;
-			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
-				return incomingTransitions != null && !incomingTransitions.isEmpty();
-			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
-				return outgoingTransitions != null && !outgoingTransitions.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //VertexImpl
+/**
+ * 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.Notification;
+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.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.yakindu.base.base.impl.NamedElementImpl;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Vertex;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vertex</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getParentRegion <em>Parent Region</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getIncomingTransitions <em>Incoming Transitions</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sgraph.impl.VertexImpl#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class VertexImpl extends NamedElementImpl implements Vertex {
+	/**
+	 * <!-- 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 #getIncomingTransitions() <em>Incoming Transitions</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIncomingTransitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Transition> incomingTransitions;
+
+	/**
+	 * The cached value of the '{@link #getOutgoingTransitions() <em>Outgoing Transitions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOutgoingTransitions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Transition> outgoingTransitions;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected VertexImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGraphPackage.Literals.VERTEX;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Region getParentRegion() {
+		if (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION) return null;
+		return (Region)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Region basicGetParentRegion() {
+		if (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION) return null;
+		return (Region)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetParentRegion(Region newParentRegion, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newParentRegion, SGraphPackage.VERTEX__PARENT_REGION, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParentRegion(Region newParentRegion) {
+		if (newParentRegion != eInternalContainer() || (eContainerFeatureID() != SGraphPackage.VERTEX__PARENT_REGION && newParentRegion != null)) {
+			if (EcoreUtil.isAncestor(this, newParentRegion))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newParentRegion != null)
+				msgs = ((InternalEObject)newParentRegion).eInverseAdd(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
+			msgs = basicSetParentRegion(newParentRegion, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.VERTEX__PARENT_REGION, newParentRegion, newParentRegion));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Transition> getIncomingTransitions() {
+		if (incomingTransitions == null) {
+			incomingTransitions = new EObjectWithInverseResolvingEList<Transition>(Transition.class, this, SGraphPackage.VERTEX__INCOMING_TRANSITIONS, SGraphPackage.TRANSITION__TARGET);
+		}
+		return incomingTransitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Transition> getOutgoingTransitions() {
+		if (outgoingTransitions == null) {
+			outgoingTransitions = new EObjectContainmentWithInverseEList.Resolving<Transition>(Transition.class, this, SGraphPackage.VERTEX__OUTGOING_TRANSITIONS, SGraphPackage.TRANSITION__SOURCE);
+		}
+		return outgoingTransitions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetParentRegion((Region)otherEnd, msgs);
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingTransitions()).basicAdd(otherEnd, msgs);
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingTransitions()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				return basicSetParentRegion(null, msgs);
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				return ((InternalEList<?>)getIncomingTransitions()).basicRemove(otherEnd, msgs);
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				return ((InternalEList<?>)getOutgoingTransitions()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				return eInternalContainer().eInverseRemove(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				if (resolve) return getParentRegion();
+				return basicGetParentRegion();
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				return getIncomingTransitions();
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				return getOutgoingTransitions();
+		}
+		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.VERTEX__PARENT_REGION:
+				setParentRegion((Region)newValue);
+				return;
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				getIncomingTransitions().clear();
+				getIncomingTransitions().addAll((Collection<? extends Transition>)newValue);
+				return;
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				getOutgoingTransitions().clear();
+				getOutgoingTransitions().addAll((Collection<? extends Transition>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				setParentRegion((Region)null);
+				return;
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				getIncomingTransitions().clear();
+				return;
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				getOutgoingTransitions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGraphPackage.VERTEX__PARENT_REGION:
+				return basicGetParentRegion() != null;
+			case SGraphPackage.VERTEX__INCOMING_TRANSITIONS:
+				return incomingTransitions != null && !incomingTransitions.isEmpty();
+			case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS:
+				return outgoingTransitions != null && !outgoingTransitions.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //VertexImpl

File diff suppressed because it is too large
+ 666 - 627
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphAdapterFactory.java


File diff suppressed because it is too large
+ 748 - 713
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/SGraphSwitch.java


+ 3 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java

@@ -46,11 +46,12 @@ import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ImageHyperlink;
 import org.eclipse.ui.help.IWorkbenchHelpSystem;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.xtext.utils.jface.fieldassist.CompletionProposalAdapter;
 import org.yakindu.base.xtext.utils.jface.viewers.ContextElementAdapter;
+import org.yakindu.base.xtext.utils.jface.viewers.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.base.xtext.utils.jface.viewers.FilteringMenuManager;
 import org.yakindu.base.xtext.utils.jface.viewers.StyledTextXtextAdapter;
-import org.yakindu.base.xtext.utils.jface.viewers.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.base.xtext.utils.jface.viewers.util.ActiveEditorTracker;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomainDescriptor;
@@ -149,7 +150,7 @@ public abstract class AbstractEditorPropertySection extends AbstractModelerPrope
 	protected Injector getInjector(String semanticTarget) {
 		IEditorPart editor = ActiveEditorTracker.getLastActiveEditor();
 		IEditorInput editorInput = editor.getEditorInput();
-		String domainId = SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral();
+		String domainId =BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral();
 		// Since the context object is not set when getInjector is called from
 		// createControls, we have to determine the active domain id via the
 		// current editor input.

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatechartPropertySection.java

@@ -93,7 +93,7 @@ public class StatechartPropertySection extends AbstractTwoColumnEditorPropertySe
 			domainCombo.add(domainDescriptor);
 		}
 		domainCombo.setSelection(new StructuredSelection(DomainRegistry
-				.getDomainDescriptor(SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral())));
+				.getDomainDescriptor(BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral())));
 
 	}
 
@@ -154,7 +154,7 @@ public class StatechartPropertySection extends AbstractTwoColumnEditorPropertySe
 
 	private void bindDomainCombo(EMFDataBindingContext context) {
 		IEMFValueProperty property = EMFEditProperties.value(TransactionUtil.getEditingDomain(eObject),
-				SGraphPackage.Literals.STATECHART__DOMAIN_ID);
+				BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID);
 
 		IViewerObservableValue observeSingleSelection = ViewersObservables.observeSingleSelection(domainCombo);
 		UpdateValueStrategy modelToTarget = new UpdateValueStrategy() {

+ 236 - 235
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/wizards/CreationWizard.java

@@ -1,235 +1,236 @@
-/**
- * Copyright (c) 2010 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.ui.editor.wizards;
-
-import java.io.IOException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
-import org.eclipse.gmf.runtime.common.core.command.CommandResult;
-import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
-import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
-import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.part.FileEditorInput;
-import org.yakindu.sct.domain.extension.DomainRegistry;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.ui.editor.DiagramActivator;
-import org.yakindu.sct.ui.editor.StatechartImages;
-import org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor;
-import org.yakindu.sct.ui.editor.factories.FactoryUtils;
-import org.yakindu.sct.ui.perspectives.PerspectiveUtil;
-import org.yakindu.sct.ui.wizards.ModelCreationWizardPage;
-
-/**
- * 
- * @author andreas muelder - Initial contribution and API
- * 
- */
-public class CreationWizard extends Wizard implements INewWizard {
-
-	public static final String ID = "org.yakindu.sct.ui.editor.StatechartDiagramWizard";
-
-	protected IStructuredSelection selection = new StructuredSelection();
-
-	protected ModelCreationWizardPage modelCreationPage;
-
-	protected DomainWizardPage domainWizardPage;
-
-	protected Resource diagram;
-
-	private boolean openOnCreate = true;
-
-	protected PreferencesHint preferencesHint = DiagramActivator.DIAGRAM_PREFERENCES_HINT;
-
-	private IWorkbench workbench;
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.workbench = workbench;
-		this.selection = selection;
-		setWindowTitle("New YAKINDU Statechart");
-		setNeedsProgressMonitor(true);
-	}
-
-	@Override
-	public void addPages() {
-		modelCreationPage = new ModelCreationWizardPage("DiagramModelFile", getSelection(), "sct");
-		modelCreationPage.setTitle("YAKINDU SCT Diagram");
-		modelCreationPage.setDescription("Create a new YAKINDU SCT Diagram File");
-		modelCreationPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
-		if (DomainRegistry.getDomainDescriptors().size() > 1) {
-			domainWizardPage = new DomainWizardPage("DomainWizard");
-			domainWizardPage.setTitle("Select Statechart Domain");
-			domainWizardPage.setDescription("Select the domain you want to create a statechart for.");
-			domainWizardPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
-			addPage(domainWizardPage);
-		}
-
-		addPage(modelCreationPage);
-	}
-
-	@Override
-	public boolean performFinish() {
-		IRunnableWithProgress op = new WorkspaceModifyOperation(null) {
-			@Override
-			protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException {
-				diagram = createDiagram(modelCreationPage.getURI(), modelCreationPage.getURI(), monitor);
-				if (isOpenOnCreate() && diagram != null) {
-					try {
-						openDiagram(diagram);
-						PerspectiveUtil.switchToModelingPerspective(workbench.getActiveWorkbenchWindow());
-					} catch (PartInitException e) {
-						DiagramActivator
-								.getDefault()
-								.getLog()
-								.log(new Status(IStatus.WARNING, DiagramActivator.PLUGIN_ID, "Editor can't be opened",
-										e));
-					}
-				}
-			}
-		};
-		try {
-			getContainer().run(false, true, op);
-		} catch (Exception e) {
-			return false;
-		}
-		return diagram != null;
-	}
-
-	protected boolean openDiagram(Resource diagram) throws PartInitException {
-		String path = diagram.getURI().toPlatformString(true);
-		IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
-		if (workspaceResource instanceof IFile) {
-			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-			return null != page.openEditor(new FileEditorInput((IFile) workspaceResource), getEditorID());
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the Editor ID of the editor to open, after a new diagram was
-	 * created Override for subclasses with custom editors.
-	 * 
-	 * @return the ID of the editor.
-	 */
-	protected String getEditorID() {
-		return StatechartDiagramEditor.ID;
-	}
-
-	protected Resource createDiagram(final URI diagramURI, final URI modelURI, IProgressMonitor progressMonitor) {
-		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
-		progressMonitor.beginTask("Creating diagram file ...", 3);
-		final Resource resource = editingDomain.getResourceSet().createResource(modelURI);
-		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain,
-				"Creating diagram file ...", Collections.EMPTY_LIST) {
-			@Override
-			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)
-					throws ExecutionException {
-
-				FactoryUtils.createStatechartModel(resource, preferencesHint);
-				Statechart statechart = (Statechart) EcoreUtil.getObjectByType(resource.getContents(),
-						SGraphPackage.Literals.STATECHART);
-				statechart.setDomainID(domainWizardPage != null ? domainWizardPage.getDomainID()
-						: SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral());
-
-				try {
-					resource.save(getSaveOptions());
-				} catch (IOException e) {
-					e.printStackTrace();
-				}
-				return CommandResult.newOKCommandResult();
-			}
-
-		};
-		try {
-			command.execute(progressMonitor, null);
-		} catch (ExecutionException e) {
-			e.printStackTrace();
-		}
-		setCharset(WorkspaceSynchronizer.getFile(resource));
-		editingDomain.dispose();
-		return resource;
-	}
-
-	protected Map<String, String> getSaveOptions() {
-		Map<String, String> saveOptions = new HashMap<String, String>();
-		saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8");
-		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
-		return saveOptions;
-	}
-
-	protected void setCharset(IFile file) {
-		if (file == null) {
-			return;
-		}
-		try {
-			file.setCharset("UTF-8", new NullProgressMonitor());
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public IStructuredSelection getSelection() {
-		return selection;
-	}
-
-	public void setSelection(IStructuredSelection selection) {
-		this.selection = selection;
-	}
-
-	public boolean isOpenOnCreate() {
-		return openOnCreate;
-	}
-
-	public void setOpenOnCreate(boolean openOnCreate) {
-		this.openOnCreate = openOnCreate;
-	}
-
-	/**
-	 * Set the preference hint for preferences of new created diagrams
-	 * 
-	 * @param hint
-	 *            the PreferenceHint for the PreferenceStore (mostly from
-	 *            Activator)
-	 */
-	protected void setPreferenceHint(PreferencesHint hint) {
-		preferencesHint = hint;
-	}
-
-}
+/**
+ * Copyright (c) 2010 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.ui.editor.wizards;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.part.FileEditorInput;
+import org.yakindu.base.base.BasePackage;
+import org.yakindu.sct.domain.extension.DomainRegistry;
+import org.yakindu.sct.model.sgraph.SGraphPackage;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.ui.editor.DiagramActivator;
+import org.yakindu.sct.ui.editor.StatechartImages;
+import org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor;
+import org.yakindu.sct.ui.editor.factories.FactoryUtils;
+import org.yakindu.sct.ui.perspectives.PerspectiveUtil;
+import org.yakindu.sct.ui.wizards.ModelCreationWizardPage;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class CreationWizard extends Wizard implements INewWizard {
+
+	public static final String ID = "org.yakindu.sct.ui.editor.StatechartDiagramWizard";
+
+	protected IStructuredSelection selection = new StructuredSelection();
+
+	protected ModelCreationWizardPage modelCreationPage;
+
+	protected DomainWizardPage domainWizardPage;
+
+	protected Resource diagram;
+
+	private boolean openOnCreate = true;
+
+	protected PreferencesHint preferencesHint = DiagramActivator.DIAGRAM_PREFERENCES_HINT;
+
+	private IWorkbench workbench;
+
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle("New YAKINDU Statechart");
+		setNeedsProgressMonitor(true);
+	}
+
+	@Override
+	public void addPages() {
+		modelCreationPage = new ModelCreationWizardPage("DiagramModelFile", getSelection(), "sct");
+		modelCreationPage.setTitle("YAKINDU SCT Diagram");
+		modelCreationPage.setDescription("Create a new YAKINDU SCT Diagram File");
+		modelCreationPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
+		if (DomainRegistry.getDomainDescriptors().size() > 1) {
+			domainWizardPage = new DomainWizardPage("DomainWizard");
+			domainWizardPage.setTitle("Select Statechart Domain");
+			domainWizardPage.setDescription("Select the domain you want to create a statechart for.");
+			domainWizardPage.setImageDescriptor(StatechartImages.LOGO.imageDescriptor());
+			addPage(domainWizardPage);
+		}
+
+		addPage(modelCreationPage);
+	}
+
+	@Override
+	public boolean performFinish() {
+		IRunnableWithProgress op = new WorkspaceModifyOperation(null) {
+			@Override
+			protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException {
+				diagram = createDiagram(modelCreationPage.getURI(), modelCreationPage.getURI(), monitor);
+				if (isOpenOnCreate() && diagram != null) {
+					try {
+						openDiagram(diagram);
+						PerspectiveUtil.switchToModelingPerspective(workbench.getActiveWorkbenchWindow());
+					} catch (PartInitException e) {
+						DiagramActivator
+								.getDefault()
+								.getLog()
+								.log(new Status(IStatus.WARNING, DiagramActivator.PLUGIN_ID, "Editor can't be opened",
+										e));
+					}
+				}
+			}
+		};
+		try {
+			getContainer().run(false, true, op);
+		} catch (Exception e) {
+			return false;
+		}
+		return diagram != null;
+	}
+
+	protected boolean openDiagram(Resource diagram) throws PartInitException {
+		String path = diagram.getURI().toPlatformString(true);
+		IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(path));
+		if (workspaceResource instanceof IFile) {
+			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+			return null != page.openEditor(new FileEditorInput((IFile) workspaceResource), getEditorID());
+		}
+		return false;
+	}
+
+	/**
+	 * Returns the Editor ID of the editor to open, after a new diagram was
+	 * created Override for subclasses with custom editors.
+	 * 
+	 * @return the ID of the editor.
+	 */
+	protected String getEditorID() {
+		return StatechartDiagramEditor.ID;
+	}
+
+	protected Resource createDiagram(final URI diagramURI, final URI modelURI, IProgressMonitor progressMonitor) {
+		TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
+		progressMonitor.beginTask("Creating diagram file ...", 3);
+		final Resource resource = editingDomain.getResourceSet().createResource(modelURI);
+		AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain,
+				"Creating diagram file ...", Collections.EMPTY_LIST) {
+			@Override
+			protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)
+					throws ExecutionException {
+
+				FactoryUtils.createStatechartModel(resource, preferencesHint);
+				Statechart statechart = (Statechart) EcoreUtil.getObjectByType(resource.getContents(),
+						SGraphPackage.Literals.STATECHART);
+				statechart.setDomainID(domainWizardPage != null ? domainWizardPage.getDomainID()
+						: BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral());
+
+				try {
+					resource.save(getSaveOptions());
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+				return CommandResult.newOKCommandResult();
+			}
+
+		};
+		try {
+			command.execute(progressMonitor, null);
+		} catch (ExecutionException e) {
+			e.printStackTrace();
+		}
+		setCharset(WorkspaceSynchronizer.getFile(resource));
+		editingDomain.dispose();
+		return resource;
+	}
+
+	protected Map<String, String> getSaveOptions() {
+		Map<String, String> saveOptions = new HashMap<String, String>();
+		saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8");
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		return saveOptions;
+	}
+
+	protected void setCharset(IFile file) {
+		if (file == null) {
+			return;
+		}
+		try {
+			file.setCharset("UTF-8", new NullProgressMonitor());
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public IStructuredSelection getSelection() {
+		return selection;
+	}
+
+	public void setSelection(IStructuredSelection selection) {
+		this.selection = selection;
+	}
+
+	public boolean isOpenOnCreate() {
+		return openOnCreate;
+	}
+
+	public void setOpenOnCreate(boolean openOnCreate) {
+		this.openOnCreate = openOnCreate;
+	}
+
+	/**
+	 * Set the preference hint for preferences of new created diagrams
+	 * 
+	 * @param hint
+	 *            the PreferenceHint for the PreferenceStore (mostly from
+	 *            Activator)
+	 */
+	protected void setPreferenceHint(PreferencesHint hint) {
+		preferencesHint = hint;
+	}
+
+}

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/wizards/DomainWizardPage.java

@@ -27,9 +27,9 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Link;
+import org.yakindu.base.base.BasePackage;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomainDescriptor;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
 
 /**
  * 
@@ -92,7 +92,7 @@ public class DomainWizardPage extends WizardPage {
 
 		});
 		domainCombo.setSelection(new StructuredSelection(DomainRegistry
-				.getDomainDescriptor(SGraphPackage.Literals.STATECHART__DOMAIN_ID.getDefaultValueLiteral())));
+				.getDomainDescriptor(BasePackage.Literals.DOMAIN_ELEMENT__DOMAIN_ID.getDefaultValueLiteral())));
 
 		Link sctLink = new Link(composite, SWT.NONE);
 		sctLink.setText("<a>Get additional Statechart Domain Extensions</a>");