Przeglądaj źródła

updated types edit plugin

Andreas Mülder 11 lat temu
rodzic
commit
84a237d097
25 zmienionych plików z 995 dodań i 25 usunięć
  1. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_ComplexType.gif
  2. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_EnumerationType.gif
  3. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_PackageMember.gif
  4. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_ParameterizedType.gif
  5. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_PrimitiveType.gif
  6. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreatePackage_member_TypeParameter.gif
  7. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateParameterizedType_parameter_TypeParameter.gif
  8. BIN
      plugins/org.yakindu.base.types.edit/icons/full/ctool16/CreateType_constraint_RangeConstraint.gif
  9. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/Package.gif
  10. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/PackageMember.gif
  11. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/ParameterizedType.gif
  12. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/RangeConstraint.gif
  13. BIN
      plugins/org.yakindu.base.types.edit/icons/full/obj16/TypeParameter.gif
  14. 12 0
      plugins/org.yakindu.base.types.edit/plugin.properties
  15. 1 1
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ComplexTypeItemProvider.java
  16. 23 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/FeatureItemProvider.java
  17. 195 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageItemProvider.java
  18. 125 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/PackageMemberItemProvider.java
  19. 23 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ParameterItemProvider.java
  20. 156 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ParameterizedTypeItemProvider.java
  21. 168 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/RangeConstraintItemProvider.java
  22. 4 7
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeConstraintItemProvider.java
  23. 33 17
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeItemProvider.java
  24. 135 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeParameterItemProvider.java
  25. 120 0
      plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypesItemProviderAdapterFactory.java

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


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


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


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


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


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


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


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


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


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


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


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


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


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

@@ -166,3 +166,15 @@ _UI_ComplexType_features_feature = Features
 _UI_ComplexType_superTypes_feature = Super Types
 _UI_ComplexType_superTypes_feature = Super Types
 _UI_DocumentedElement_type = Documented Element
 _UI_DocumentedElement_type = Documented Element
 _UI_DocumentedElement_documentation_feature = Documentation
 _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

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

@@ -31,7 +31,7 @@ import org.yakindu.base.types.TypesPackage;
  * @generated
  * @generated
  */
  */
 public class ComplexTypeItemProvider
 public class ComplexTypeItemProvider
-	extends TypeItemProvider
+	extends ParameterizedTypeItemProvider
 	implements
 	implements
 		IEditingDomainItemProvider,
 		IEditingDomainItemProvider,
 		IStructuredItemContentProvider,
 		IStructuredItemContentProvider,

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

@@ -63,6 +63,7 @@ public class FeatureItemProvider
 			super.getPropertyDescriptors(object);
 			super.getPropertyDescriptors(object);
 
 
 			addTypePropertyDescriptor(object);
 			addTypePropertyDescriptor(object);
+			addTypeArgumentsPropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 		}
 		}
 		return itemPropertyDescriptors;
 		return itemPropertyDescriptors;
@@ -90,6 +91,28 @@ public class FeatureItemProvider
 				 null));
 				 null));
 	}
 	}
 
 
+	/**
+	 * This adds a property descriptor for the Type Arguments feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeArgumentsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypedElement_typeArguments_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_typeArguments_feature", "_UI_TypedElement_type"),
+				 TypesPackage.Literals.TYPED_ELEMENT__TYPE_ARGUMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	/**
 	 * This adds a property descriptor for the Name feature.
 	 * This adds a property descriptor for the Name feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- begin-user-doc -->

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

@@ -0,0 +1,195 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.yakindu.base.base.provider.NamedElementItemProvider;
+
+import org.yakindu.base.types.TypesFactory;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.Package} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PackageItemProvider
+	extends NamedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PackageItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(TypesPackage.Literals.PACKAGE__MEMBER);
+		}
+		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 Package.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Package"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((org.yakindu.base.types.Package)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Package_type") :
+			getString("_UI_Package_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(org.yakindu.base.types.Package.class)) {
+			case TypesPackage.PACKAGE__MEMBER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createPackageMember()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createPrimitiveType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createEnumerationType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createParameterizedType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createComplexType()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PACKAGE__MEMBER,
+				 TypesFactory.eINSTANCE.createTypeParameter()));
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return TypesEditPlugin.INSTANCE;
+	}
+
+}

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

@@ -0,0 +1,125 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.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.yakindu.base.base.provider.NamedElementItemProvider;
+
+import org.yakindu.base.types.PackageMember;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.PackageMember} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PackageMemberItemProvider
+	extends NamedElementItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PackageMemberItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns PackageMember.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/PackageMember"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((PackageMember)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_PackageMember_type") :
+			getString("_UI_PackageMember_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);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return TypesEditPlugin.INSTANCE;
+	}
+
+}

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

@@ -63,6 +63,7 @@ public class ParameterItemProvider
 			super.getPropertyDescriptors(object);
 			super.getPropertyDescriptors(object);
 
 
 			addTypePropertyDescriptor(object);
 			addTypePropertyDescriptor(object);
+			addTypeArgumentsPropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 		}
 		}
 		return itemPropertyDescriptors;
 		return itemPropertyDescriptors;
@@ -90,6 +91,28 @@ public class ParameterItemProvider
 				 null));
 				 null));
 	}
 	}
 
 
+	/**
+	 * This adds a property descriptor for the Type Arguments feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTypeArgumentsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypedElement_typeArguments_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypedElement_typeArguments_feature", "_UI_TypedElement_type"),
+				 TypesPackage.Literals.TYPED_ELEMENT__TYPE_ARGUMENTS,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	/**
 	 * This adds a property descriptor for the Name feature.
 	 * This adds a property descriptor for the Name feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- begin-user-doc -->

+ 156 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/ParameterizedTypeItemProvider.java

@@ -0,0 +1,156 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.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.ViewerNotification;
+
+import org.yakindu.base.types.ParameterizedType;
+import org.yakindu.base.types.TypesFactory;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.ParameterizedType} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ParameterizedTypeItemProvider
+	extends TypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ParameterizedTypeItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(TypesPackage.Literals.PARAMETERIZED_TYPE__PARAMETER);
+		}
+		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 ParameterizedType.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ParameterizedType"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((ParameterizedType)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ParameterizedType_type") :
+			getString("_UI_ParameterizedType_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(ParameterizedType.class)) {
+			case TypesPackage.PARAMETERIZED_TYPE__PARAMETER:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.PARAMETERIZED_TYPE__PARAMETER,
+				 TypesFactory.eINSTANCE.createTypeParameter()));
+	}
+
+}

+ 168 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/RangeConstraintItemProvider.java

@@ -0,0 +1,168 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.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.ViewerNotification;
+
+import org.yakindu.base.types.RangeConstraint;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.RangeConstraint} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RangeConstraintItemProvider
+	extends TypeConstraintItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RangeConstraintItemProvider(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);
+
+			addLowerBoundPropertyDescriptor(object);
+			addUpperBoundPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Lower Bound feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLowerBoundPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RangeConstraint_lowerBound_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_RangeConstraint_lowerBound_feature", "_UI_RangeConstraint_type"),
+				 TypesPackage.Literals.RANGE_CONSTRAINT__LOWER_BOUND,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Upper Bound feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addUpperBoundPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_RangeConstraint_upperBound_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_RangeConstraint_upperBound_feature", "_UI_RangeConstraint_type"),
+				 TypesPackage.Literals.RANGE_CONSTRAINT__UPPER_BOUND,
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns RangeConstraint.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/RangeConstraint"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		Object labelValue = ((RangeConstraint)object).getValue();
+		String label = labelValue == null ? null : labelValue.toString();
+		return label == null || label.length() == 0 ?
+			getString("_UI_RangeConstraint_type") :
+			getString("_UI_RangeConstraint_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(RangeConstraint.class)) {
+			case TypesPackage.RANGE_CONSTRAINT__LOWER_BOUND:
+			case TypesPackage.RANGE_CONSTRAINT__UPPER_BOUND:
+				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);
+	}
+
+}

+ 4 - 7
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeConstraintItemProvider.java

@@ -8,9 +8,7 @@ import java.util.List;
 
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -19,10 +17,8 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.yakindu.base.base.provider.NamedElementItemProvider;
-
 import org.yakindu.base.types.TypeConstraint;
 import org.yakindu.base.types.TypeConstraint;
 import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.TypesPackage;
 
 
@@ -33,7 +29,7 @@ import org.yakindu.base.types.TypesPackage;
  * @generated
  * @generated
  */
  */
 public class TypeConstraintItemProvider
 public class TypeConstraintItemProvider
-	extends NamedElementItemProvider
+	extends ItemProviderAdapter
 	implements
 	implements
 		IEditingDomainItemProvider,
 		IEditingDomainItemProvider,
 		IStructuredItemContentProvider,
 		IStructuredItemContentProvider,
@@ -107,7 +103,8 @@ public class TypeConstraintItemProvider
 	 */
 	 */
 	@Override
 	@Override
 	public String getText(Object object) {
 	public String getText(Object object) {
-		String label = ((TypeConstraint)object).getName();
+		Object labelValue = ((TypeConstraint)object).getValue();
+		String label = labelValue == null ? null : labelValue.toString();
 		return label == null || label.length() == 0 ?
 		return label == null || label.length() == 0 ?
 			getString("_UI_TypeConstraint_type") :
 			getString("_UI_TypeConstraint_type") :
 			getString("_UI_TypeConstraint_type") + " " + label;
 			getString("_UI_TypeConstraint_type") + " " + label;

+ 33 - 17
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeItemProvider.java

@@ -8,20 +8,16 @@ import java.util.List;
 
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemLabelProvider;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IItemPropertySource;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.yakindu.base.base.provider.NamedElementItemProvider;
-
 import org.yakindu.base.types.Type;
 import org.yakindu.base.types.Type;
 import org.yakindu.base.types.TypesFactory;
 import org.yakindu.base.types.TypesFactory;
 import org.yakindu.base.types.TypesPackage;
 import org.yakindu.base.types.TypesPackage;
@@ -33,7 +29,7 @@ import org.yakindu.base.types.TypesPackage;
  * @generated
  * @generated
  */
  */
 public class TypeItemProvider
 public class TypeItemProvider
-	extends NamedElementItemProvider
+	extends PackageMemberItemProvider
 	implements
 	implements
 		IEditingDomainItemProvider,
 		IEditingDomainItemProvider,
 		IStructuredItemContentProvider,
 		IStructuredItemContentProvider,
@@ -61,10 +57,33 @@ public class TypeItemProvider
 		if (itemPropertyDescriptors == null) {
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 			super.getPropertyDescriptors(object);
 
 
+			addSchemePropertyDescriptor(object);
 		}
 		}
 		return itemPropertyDescriptors;
 		return itemPropertyDescriptors;
 	}
 	}
 
 
+	/**
+	 * This adds a property descriptor for the Scheme feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSchemePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Type_scheme_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Type_scheme_feature", "_UI_Type_type"),
+				 TypesPackage.Literals.TYPE__SCHEME,
+				 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
 	 * 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.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
@@ -132,6 +151,9 @@ public class TypeItemProvider
 		updateChildren(notification);
 		updateChildren(notification);
 
 
 		switch (notification.getFeatureID(Type.class)) {
 		switch (notification.getFeatureID(Type.class)) {
+			case TypesPackage.TYPE__SCHEME:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
 			case TypesPackage.TYPE__CONSTRAINT:
 			case TypesPackage.TYPE__CONSTRAINT:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 				return;
@@ -154,17 +176,11 @@ public class TypeItemProvider
 			(createChildParameter
 			(createChildParameter
 				(TypesPackage.Literals.TYPE__CONSTRAINT,
 				(TypesPackage.Literals.TYPE__CONSTRAINT,
 				 TypesFactory.eINSTANCE.createTypeConstraint()));
 				 TypesFactory.eINSTANCE.createTypeConstraint()));
-	}
 
 
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ResourceLocator getResourceLocator() {
-		return TypesEditPlugin.INSTANCE;
+		newChildDescriptors.add
+			(createChildParameter
+				(TypesPackage.Literals.TYPE__CONSTRAINT,
+				 TypesFactory.eINSTANCE.createRangeConstraint()));
 	}
 	}
 
 
 }
 }

+ 135 - 0
plugins/org.yakindu.base.types.edit/src/org/yakindu/base/types/provider/TypeParameterItemProvider.java

@@ -0,0 +1,135 @@
+/**
+ */
+package org.yakindu.base.types.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.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.yakindu.base.types.TypeParameter;
+import org.yakindu.base.types.TypesPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.base.types.TypeParameter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TypeParameterItemProvider
+	extends TypeItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeParameterItemProvider(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);
+
+			addBoundPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Bound feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addBoundPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_TypeParameter_bound_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_TypeParameter_bound_feature", "_UI_TypeParameter_type"),
+				 TypesPackage.Literals.TYPE_PARAMETER__BOUND,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns TypeParameter.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TypeParameter"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((TypeParameter)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TypeParameter_type") :
+			getString("_UI_TypeParameter_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);
+		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);
+	}
+
+}

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

@@ -71,6 +71,29 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		supportedTypes.add(IItemPropertySource.class);
 		supportedTypes.add(IItemPropertySource.class);
 	}
 	}
 
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Package} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PackageItemProvider packageItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.Package}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createPackageAdapter() {
+		if (packageItemProvider == null) {
+			packageItemProvider = new PackageItemProvider(this);
+		}
+
+		return packageItemProvider;
+	}
+
 	/**
 	/**
 	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Operation} instances.
 	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.Operation} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- begin-user-doc -->
@@ -278,6 +301,98 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		return typeConstraintItemProvider;
 		return typeConstraintItemProvider;
 	}
 	}
 
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.TypeParameter} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TypeParameterItemProvider typeParameterItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.TypeParameter}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTypeParameterAdapter() {
+		if (typeParameterItemProvider == null) {
+			typeParameterItemProvider = new TypeParameterItemProvider(this);
+		}
+
+		return typeParameterItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.ParameterizedType} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ParameterizedTypeItemProvider parameterizedTypeItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.ParameterizedType}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createParameterizedTypeAdapter() {
+		if (parameterizedTypeItemProvider == null) {
+			parameterizedTypeItemProvider = new ParameterizedTypeItemProvider(this);
+		}
+
+		return parameterizedTypeItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.PackageMember} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PackageMemberItemProvider packageMemberItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.PackageMember}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createPackageMemberAdapter() {
+		if (packageMemberItemProvider == null) {
+			packageMemberItemProvider = new PackageMemberItemProvider(this);
+		}
+
+		return packageMemberItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.base.types.RangeConstraint} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RangeConstraintItemProvider rangeConstraintItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.base.types.RangeConstraint}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createRangeConstraintAdapter() {
+		if (rangeConstraintItemProvider == null) {
+			rangeConstraintItemProvider = new RangeConstraintItemProvider(this);
+		}
+
+		return rangeConstraintItemProvider;
+	}
+
 	/**
 	/**
 	 * This returns the root adapter factory that contains this factory.
 	 * This returns the root adapter factory that contains this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- begin-user-doc -->
@@ -377,6 +492,7 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 	 * @generated
 	 * @generated
 	 */
 	 */
 	public void dispose() {
 	public void dispose() {
+		if (packageItemProvider != null) packageItemProvider.dispose();
 		if (operationItemProvider != null) operationItemProvider.dispose();
 		if (operationItemProvider != null) operationItemProvider.dispose();
 		if (propertyItemProvider != null) propertyItemProvider.dispose();
 		if (propertyItemProvider != null) propertyItemProvider.dispose();
 		if (parameterItemProvider != null) parameterItemProvider.dispose();
 		if (parameterItemProvider != null) parameterItemProvider.dispose();
@@ -386,6 +502,10 @@ public class TypesItemProviderAdapterFactory extends TypesAdapterFactory impleme
 		if (complexTypeItemProvider != null) complexTypeItemProvider.dispose();
 		if (complexTypeItemProvider != null) complexTypeItemProvider.dispose();
 		if (enumeratorItemProvider != null) enumeratorItemProvider.dispose();
 		if (enumeratorItemProvider != null) enumeratorItemProvider.dispose();
 		if (typeConstraintItemProvider != null) typeConstraintItemProvider.dispose();
 		if (typeConstraintItemProvider != null) typeConstraintItemProvider.dispose();
+		if (typeParameterItemProvider != null) typeParameterItemProvider.dispose();
+		if (parameterizedTypeItemProvider != null) parameterizedTypeItemProvider.dispose();
+		if (packageMemberItemProvider != null) packageMemberItemProvider.dispose();
+		if (rangeConstraintItemProvider != null) rangeConstraintItemProvider.dispose();
 	}
 	}
 
 
 }
 }