Aadl2ItemProviderAdapterFactory.java

/**
 * Copyright (c) 2004-2025 Carnegie Mellon University and others. (see Contributors file).
 * All Rights Reserved.
 *
 * NO WARRANTY. ALL MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY
 * KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE
 * OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT
 * MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
 *
 * This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 * SPDX-License-Identifier: EPL-2.0
 *
 * Created, in part, with funding and support from the United States Government. (see Acknowledgments file).
 *
 * This program includes and/or can make use of certain third party source code, object code, documentation and other
 * files ("Third Party Software"). The Third Party Software that is used by this program is dependent upon your system
 * configuration. By using this program, You agree to comply with any and all relevant Third Party Software terms and
 * conditions contained in any such Third Party Software or separate license file distributed with such Third Party
 * Software. The parties who own the Third Party Software ("Third Party Licensors") are intended third party benefici-
 * aries to this license with respect to the terms applicable to their Third Party Software. Third Party Software li-
 * censes only apply to the Third Party Software and not any other portion of this program or this program as a whole.
 */
package org.osate.aadl2.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.osate.aadl2.util.Aadl2AdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class Aadl2ItemProviderAdapterFactory extends Aadl2AdapterFactory
		implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Aadl2ItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Comment} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CommentItemProvider commentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Comment}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCommentAdapter() {
		if (commentItemProvider == null) {
			commentItemProvider = new CommentItemProvider(this);
		}

		return commentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PropertyAssociation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyAssociationItemProvider propertyAssociationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PropertyAssociation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyAssociationAdapter() {
		if (propertyAssociationItemProvider == null) {
			propertyAssociationItemProvider = new PropertyAssociationItemProvider(this);
		}

		return propertyAssociationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Property} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyItemProvider propertyItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Property}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyAdapter() {
		if (propertyItemProvider == null) {
			propertyItemProvider = new PropertyItemProvider(this);
		}

		return propertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BasicProperty} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BasicPropertyItemProvider basicPropertyItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BasicProperty}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBasicPropertyAdapter() {
		if (basicPropertyItemProvider == null) {
			basicPropertyItemProvider = new BasicPropertyItemProvider(this);
		}

		return basicPropertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.MetaclassReference} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetaclassReferenceItemProvider metaclassReferenceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.MetaclassReference}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetaclassReferenceAdapter() {
		if (metaclassReferenceItemProvider == null) {
			metaclassReferenceItemProvider = new MetaclassReferenceItemProvider(this);
		}

		return metaclassReferenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ModalElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModalElementItemProvider modalElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ModalElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModalElementAdapter() {
		if (modalElementItemProvider == null) {
			modalElementItemProvider = new ModalElementItemProvider(this);
		}

		return modalElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Mode} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModeItemProvider modeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Mode}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModeAdapter() {
		if (modeItemProvider == null) {
			modeItemProvider = new ModeItemProvider(this);
		}

		return modeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ContainedNamedElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ContainedNamedElementItemProvider containedNamedElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ContainedNamedElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createContainedNamedElementAdapter() {
		if (containedNamedElementItemProvider == null) {
			containedNamedElementItemProvider = new ContainedNamedElementItemProvider(this);
		}

		return containedNamedElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ContainmentPathElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ContainmentPathElementItemProvider containmentPathElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ContainmentPathElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createContainmentPathElementAdapter() {
		if (containmentPathElementItemProvider == null) {
			containmentPathElementItemProvider = new ContainmentPathElementItemProvider(this);
		}

		return containmentPathElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ArrayRange} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayRangeItemProvider arrayRangeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ArrayRange}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayRangeAdapter() {
		if (arrayRangeItemProvider == null) {
			arrayRangeItemProvider = new ArrayRangeItemProvider(this);
		}

		return arrayRangeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ModalPropertyValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModalPropertyValueItemProvider modalPropertyValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ModalPropertyValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModalPropertyValueAdapter() {
		if (modalPropertyValueItemProvider == null) {
			modalPropertyValueItemProvider = new ModalPropertyValueItemProvider(this);
		}

		return modalPropertyValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ArrayDimension} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayDimensionItemProvider arrayDimensionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ArrayDimension}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayDimensionAdapter() {
		if (arrayDimensionItemProvider == null) {
			arrayDimensionItemProvider = new ArrayDimensionItemProvider(this);
		}

		return arrayDimensionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ArraySize} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArraySizeItemProvider arraySizeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ArraySize}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArraySizeAdapter() {
		if (arraySizeItemProvider == null) {
			arraySizeItemProvider = new ArraySizeItemProvider(this);
		}

		return arraySizeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ComponentImplementationReference} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentImplementationReferenceItemProvider componentImplementationReferenceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ComponentImplementationReference}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentImplementationReferenceAdapter() {
		if (componentImplementationReferenceItemProvider == null) {
			componentImplementationReferenceItemProvider = new ComponentImplementationReferenceItemProvider(this);
		}

		return componentImplementationReferenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ModeTransition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModeTransitionItemProvider modeTransitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ModeTransition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModeTransitionAdapter() {
		if (modeTransitionItemProvider == null) {
			modeTransitionItemProvider = new ModeTransitionItemProvider(this);
		}

		return modeTransitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ModeTransitionTrigger} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModeTransitionTriggerItemProvider modeTransitionTriggerItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ModeTransitionTrigger}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModeTransitionTriggerAdapter() {
		if (modeTransitionTriggerItemProvider == null) {
			modeTransitionTriggerItemProvider = new ModeTransitionTriggerItemProvider(this);
		}

		return modeTransitionTriggerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FlowSpecification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowSpecificationItemProvider flowSpecificationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FlowSpecification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowSpecificationAdapter() {
		if (flowSpecificationItemProvider == null) {
			flowSpecificationItemProvider = new FlowSpecificationItemProvider(this);
		}

		return flowSpecificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FlowEnd} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowEndItemProvider flowEndItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FlowEnd}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowEndAdapter() {
		if (flowEndItemProvider == null) {
			flowEndItemProvider = new FlowEndItemProvider(this);
		}

		return flowEndItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.TypeExtension} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeExtensionItemProvider typeExtensionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.TypeExtension}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeExtensionAdapter() {
		if (typeExtensionItemProvider == null) {
			typeExtensionItemProvider = new TypeExtensionItemProvider(this);
		}

		return typeExtensionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroup} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupItemProvider featureGroupItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroup}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupAdapter() {
		if (featureGroupItemProvider == null) {
			featureGroupItemProvider = new FeatureGroupItemProvider(this);
		}

		return featureGroupItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupTypeItemProvider featureGroupTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupTypeAdapter() {
		if (featureGroupTypeItemProvider == null) {
			featureGroupTypeItemProvider = new FeatureGroupTypeItemProvider(this);
		}

		return featureGroupTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.GroupExtension} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GroupExtensionItemProvider groupExtensionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.GroupExtension}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGroupExtensionAdapter() {
		if (groupExtensionItemProvider == null) {
			groupExtensionItemProvider = new GroupExtensionItemProvider(this);
		}

		return groupExtensionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BusAccess} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BusAccessItemProvider busAccessItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BusAccess}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBusAccessAdapter() {
		if (busAccessItemProvider == null) {
			busAccessItemProvider = new BusAccessItemProvider(this);
		}

		return busAccessItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataAccess} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataAccessItemProvider dataAccessItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataAccess}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataAccessAdapter() {
		if (dataAccessItemProvider == null) {
			dataAccessItemProvider = new DataAccessItemProvider(this);
		}

		return dataAccessItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractFeatureClassifier} instances.
	 * <!-- begin-user-doc -->
	 * @since 3.0
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractFeatureClassifierItemProvider abstractFeatureClassifierItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractFeatureClassifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractFeatureClassifierAdapter() {
		if (abstractFeatureClassifierItemProvider == null) {
			abstractFeatureClassifierItemProvider = new AbstractFeatureClassifierItemProvider(this);
		}

		return abstractFeatureClassifierItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataPort} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataPortItemProvider dataPortItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataPort}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataPortAdapter() {
		if (dataPortItemProvider == null) {
			dataPortItemProvider = new DataPortItemProvider(this);
		}

		return dataPortItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EventDataPort} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventDataPortItemProvider eventDataPortItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EventDataPort}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventDataPortAdapter() {
		if (eventDataPortItemProvider == null) {
			eventDataPortItemProvider = new EventDataPortItemProvider(this);
		}

		return eventDataPortItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EventPort} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventPortItemProvider eventPortItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EventPort}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventPortAdapter() {
		if (eventPortItemProvider == null) {
			eventPortItemProvider = new EventPortItemProvider(this);
		}

		return eventPortItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Parameter} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParameterItemProvider parameterItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Parameter}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParameterAdapter() {
		if (parameterItemProvider == null) {
			parameterItemProvider = new ParameterItemProvider(this);
		}

		return parameterItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramAccess} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramAccessItemProvider subprogramAccessItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramAccess}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramAccessAdapter() {
		if (subprogramAccessItemProvider == null) {
			subprogramAccessItemProvider = new SubprogramAccessItemProvider(this);
		}

		return subprogramAccessItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramGroupAccess} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramGroupAccessItemProvider subprogramGroupAccessItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramGroupAccess}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramGroupAccessAdapter() {
		if (subprogramGroupAccessItemProvider == null) {
			subprogramGroupAccessItemProvider = new SubprogramGroupAccessItemProvider(this);
		}

		return subprogramGroupAccessItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractFeature} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractFeatureItemProvider abstractFeatureItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractFeature}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractFeatureAdapter() {
		if (abstractFeatureItemProvider == null) {
			abstractFeatureItemProvider = new AbstractFeatureItemProvider(this);
		}

		return abstractFeatureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ModeBinding} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModeBindingItemProvider modeBindingItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ModeBinding}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModeBindingAdapter() {
		if (modeBindingItemProvider == null) {
			modeBindingItemProvider = new ModeBindingItemProvider(this);
		}

		return modeBindingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FlowImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowImplementationItemProvider flowImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FlowImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowImplementationAdapter() {
		if (flowImplementationItemProvider == null) {
			flowImplementationItemProvider = new FlowImplementationItemProvider(this);
		}

		return flowImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FlowSegment} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowSegmentItemProvider flowSegmentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FlowSegment}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowSegmentAdapter() {
		if (flowSegmentItemProvider == null) {
			flowSegmentItemProvider = new FlowSegmentItemProvider(this);
		}

		return flowSegmentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ConnectedElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectedElementItemProvider connectedElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ConnectedElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConnectedElementAdapter() {
		if (connectedElementItemProvider == null) {
			connectedElementItemProvider = new ConnectedElementItemProvider(this);
		}

		return connectedElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ImplementationExtension} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ImplementationExtensionItemProvider implementationExtensionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ImplementationExtension}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createImplementationExtensionAdapter() {
		if (implementationExtensionItemProvider == null) {
			implementationExtensionItemProvider = new ImplementationExtensionItemProvider(this);
		}

		return implementationExtensionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Realization} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RealizationItemProvider realizationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Realization}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRealizationAdapter() {
		if (realizationItemProvider == null) {
			realizationItemProvider = new RealizationItemProvider(this);
		}

		return realizationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EndToEndFlow} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EndToEndFlowItemProvider endToEndFlowItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EndToEndFlow}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEndToEndFlowAdapter() {
		if (endToEndFlowItemProvider == null) {
			endToEndFlowItemProvider = new EndToEndFlowItemProvider(this);
		}

		return endToEndFlowItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EndToEndFlowSegment} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EndToEndFlowSegmentItemProvider endToEndFlowSegmentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EndToEndFlowSegment}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEndToEndFlowSegmentAdapter() {
		if (endToEndFlowSegmentItemProvider == null) {
			endToEndFlowSegmentItemProvider = new EndToEndFlowSegmentItemProvider(this);
		}

		return endToEndFlowSegmentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractSubcomponentItemProvider abstractSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractSubcomponentAdapter() {
		if (abstractSubcomponentItemProvider == null) {
			abstractSubcomponentItemProvider = new AbstractSubcomponentItemProvider(this);
		}

		return abstractSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AccessConnection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccessConnectionItemProvider accessConnectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AccessConnection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccessConnectionAdapter() {
		if (accessConnectionItemProvider == null) {
			accessConnectionItemProvider = new AccessConnectionItemProvider(this);
		}

		return accessConnectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ParameterConnection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParameterConnectionItemProvider parameterConnectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ParameterConnection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParameterConnectionAdapter() {
		if (parameterConnectionItemProvider == null) {
			parameterConnectionItemProvider = new ParameterConnectionItemProvider(this);
		}

		return parameterConnectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PortConnection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortConnectionItemProvider portConnectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PortConnection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortConnectionAdapter() {
		if (portConnectionItemProvider == null) {
			portConnectionItemProvider = new PortConnectionItemProvider(this);
		}

		return portConnectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureConnection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureConnectionItemProvider featureConnectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureConnection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureConnectionAdapter() {
		if (featureConnectionItemProvider == null) {
			featureConnectionItemProvider = new FeatureConnectionItemProvider(this);
		}

		return featureConnectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupConnection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupConnectionItemProvider featureGroupConnectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupConnection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupConnectionAdapter() {
		if (featureGroupConnectionItemProvider == null) {
			featureGroupConnectionItemProvider = new FeatureGroupConnectionItemProvider(this);
		}

		return featureGroupConnectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EventSource} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventSourceItemProvider eventSourceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EventSource}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventSourceAdapter() {
		if (eventSourceItemProvider == null) {
			eventSourceItemProvider = new EventSourceItemProvider(this);
		}

		return eventSourceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EventDataSource} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventDataSourceItemProvider eventDataSourceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EventDataSource}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventDataSourceAdapter() {
		if (eventDataSourceItemProvider == null) {
			eventDataSourceItemProvider = new EventDataSourceItemProvider(this);
		}

		return eventDataSourceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PortProxy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortProxyItemProvider portProxyItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PortProxy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortProxyAdapter() {
		if (portProxyItemProvider == null) {
			portProxyItemProvider = new PortProxyItemProvider(this);
		}

		return portProxyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramProxy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramProxyItemProvider subprogramProxyItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramProxy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramProxyAdapter() {
		if (subprogramProxyItemProvider == null) {
			subprogramProxyItemProvider = new SubprogramProxyItemProvider(this);
		}

		return subprogramProxyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DefaultAnnexLibrary} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DefaultAnnexLibraryItemProvider defaultAnnexLibraryItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DefaultAnnexLibrary}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDefaultAnnexLibraryAdapter() {
		if (defaultAnnexLibraryItemProvider == null) {
			defaultAnnexLibraryItemProvider = new DefaultAnnexLibraryItemProvider(this);
		}

		return defaultAnnexLibraryItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DefaultAnnexSubclause} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DefaultAnnexSubclauseItemProvider defaultAnnexSubclauseItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DefaultAnnexSubclause}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDefaultAnnexSubclauseAdapter() {
		if (defaultAnnexSubclauseItemProvider == null) {
			defaultAnnexSubclauseItemProvider = new DefaultAnnexSubclauseItemProvider(this);
		}

		return defaultAnnexSubclauseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PublicPackageSection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PublicPackageSectionItemProvider publicPackageSectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PublicPackageSection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPublicPackageSectionAdapter() {
		if (publicPackageSectionItemProvider == null) {
			publicPackageSectionItemProvider = new PublicPackageSectionItemProvider(this);
		}

		return publicPackageSectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PackageRename} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PackageRenameItemProvider packageRenameItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PackageRename}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPackageRenameAdapter() {
		if (packageRenameItemProvider == null) {
			packageRenameItemProvider = new PackageRenameItemProvider(this);
		}

		return packageRenameItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AadlPackage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AadlPackageItemProvider aadlPackageItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AadlPackage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAadlPackageAdapter() {
		if (aadlPackageItemProvider == null) {
			aadlPackageItemProvider = new AadlPackageItemProvider(this);
		}

		return aadlPackageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PrivatePackageSection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PrivatePackageSectionItemProvider privatePackageSectionItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PrivatePackageSection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPrivatePackageSectionAdapter() {
		if (privatePackageSectionItemProvider == null) {
			privatePackageSectionItemProvider = new PrivatePackageSectionItemProvider(this);
		}

		return privatePackageSectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ComponentTypeRename} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentTypeRenameItemProvider componentTypeRenameItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ComponentTypeRename}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentTypeRenameAdapter() {
		if (componentTypeRenameItemProvider == null) {
			componentTypeRenameItemProvider = new ComponentTypeRenameItemProvider(this);
		}

		return componentTypeRenameItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupTypeRename} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupTypeRenameItemProvider featureGroupTypeRenameItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupTypeRename}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupTypeRenameAdapter() {
		if (featureGroupTypeRenameItemProvider == null) {
			featureGroupTypeRenameItemProvider = new FeatureGroupTypeRenameItemProvider(this);
		}

		return featureGroupTypeRenameItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractTypeItemProvider abstractTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractTypeAdapter() {
		if (abstractTypeItemProvider == null) {
			abstractTypeItemProvider = new AbstractTypeItemProvider(this);
		}

		return abstractTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractImplementationItemProvider abstractImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractImplementationAdapter() {
		if (abstractImplementationItemProvider == null) {
			abstractImplementationItemProvider = new AbstractImplementationItemProvider(this);
		}

		return abstractImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramCallSequence} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramCallSequenceItemProvider subprogramCallSequenceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramCallSequence}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramCallSequenceAdapter() {
		if (subprogramCallSequenceItemProvider == null) {
			subprogramCallSequenceItemProvider = new SubprogramCallSequenceItemProvider(this);
		}

		return subprogramCallSequenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BusSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BusSubcomponentItemProvider busSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BusSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBusSubcomponentAdapter() {
		if (busSubcomponentItemProvider == null) {
			busSubcomponentItemProvider = new BusSubcomponentItemProvider(this);
		}

		return busSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataSubcomponentItemProvider dataSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataSubcomponentAdapter() {
		if (dataSubcomponentItemProvider == null) {
			dataSubcomponentItemProvider = new DataSubcomponentItemProvider(this);
		}

		return dataSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DeviceSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DeviceSubcomponentItemProvider deviceSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DeviceSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDeviceSubcomponentAdapter() {
		if (deviceSubcomponentItemProvider == null) {
			deviceSubcomponentItemProvider = new DeviceSubcomponentItemProvider(this);
		}

		return deviceSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.MemorySubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MemorySubcomponentItemProvider memorySubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.MemorySubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMemorySubcomponentAdapter() {
		if (memorySubcomponentItemProvider == null) {
			memorySubcomponentItemProvider = new MemorySubcomponentItemProvider(this);
		}

		return memorySubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessSubcomponentItemProvider processSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessSubcomponentAdapter() {
		if (processSubcomponentItemProvider == null) {
			processSubcomponentItemProvider = new ProcessSubcomponentItemProvider(this);
		}

		return processSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessorSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessorSubcomponentItemProvider processorSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessorSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessorSubcomponentAdapter() {
		if (processorSubcomponentItemProvider == null) {
			processorSubcomponentItemProvider = new ProcessorSubcomponentItemProvider(this);
		}

		return processorSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SystemSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SystemSubcomponentItemProvider systemSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SystemSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSystemSubcomponentAdapter() {
		if (systemSubcomponentItemProvider == null) {
			systemSubcomponentItemProvider = new SystemSubcomponentItemProvider(this);
		}

		return systemSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramSubcomponentItemProvider subprogramSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramSubcomponentAdapter() {
		if (subprogramSubcomponentItemProvider == null) {
			subprogramSubcomponentItemProvider = new SubprogramSubcomponentItemProvider(this);
		}

		return subprogramSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramGroupSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramGroupSubcomponentItemProvider subprogramGroupSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramGroupSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramGroupSubcomponentAdapter() {
		if (subprogramGroupSubcomponentItemProvider == null) {
			subprogramGroupSubcomponentItemProvider = new SubprogramGroupSubcomponentItemProvider(this);
		}

		return subprogramGroupSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadSubcomponentItemProvider threadSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadSubcomponentAdapter() {
		if (threadSubcomponentItemProvider == null) {
			threadSubcomponentItemProvider = new ThreadSubcomponentItemProvider(this);
		}

		return threadSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadGroupSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadGroupSubcomponentItemProvider threadGroupSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadGroupSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadGroupSubcomponentAdapter() {
		if (threadGroupSubcomponentItemProvider == null) {
			threadGroupSubcomponentItemProvider = new ThreadGroupSubcomponentItemProvider(this);
		}

		return threadGroupSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualBusSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualBusSubcomponentItemProvider virtualBusSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualBusSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualBusSubcomponentAdapter() {
		if (virtualBusSubcomponentItemProvider == null) {
			virtualBusSubcomponentItemProvider = new VirtualBusSubcomponentItemProvider(this);
		}

		return virtualBusSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualProcessorSubcomponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualProcessorSubcomponentItemProvider virtualProcessorSubcomponentItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualProcessorSubcomponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualProcessorSubcomponentAdapter() {
		if (virtualProcessorSubcomponentItemProvider == null) {
			virtualProcessorSubcomponentItemProvider = new VirtualProcessorSubcomponentItemProvider(this);
		}

		return virtualProcessorSubcomponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AbstractPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbstractPrototypeItemProvider abstractPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AbstractPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbstractPrototypeAdapter() {
		if (abstractPrototypeItemProvider == null) {
			abstractPrototypeItemProvider = new AbstractPrototypeItemProvider(this);
		}

		return abstractPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BusType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BusTypeItemProvider busTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BusType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBusTypeAdapter() {
		if (busTypeItemProvider == null) {
			busTypeItemProvider = new BusTypeItemProvider(this);
		}

		return busTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BusImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BusImplementationItemProvider busImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BusImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBusImplementationAdapter() {
		if (busImplementationItemProvider == null) {
			busImplementationItemProvider = new BusImplementationItemProvider(this);
		}

		return busImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BusPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BusPrototypeItemProvider busPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BusPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBusPrototypeAdapter() {
		if (busPrototypeItemProvider == null) {
			busPrototypeItemProvider = new BusPrototypeItemProvider(this);
		}

		return busPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataTypeItemProvider dataTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataTypeAdapter() {
		if (dataTypeItemProvider == null) {
			dataTypeItemProvider = new DataTypeItemProvider(this);
		}

		return dataTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataImplementationItemProvider dataImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataImplementationAdapter() {
		if (dataImplementationItemProvider == null) {
			dataImplementationItemProvider = new DataImplementationItemProvider(this);
		}

		return dataImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DataPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataPrototypeItemProvider dataPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DataPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataPrototypeAdapter() {
		if (dataPrototypeItemProvider == null) {
			dataPrototypeItemProvider = new DataPrototypeItemProvider(this);
		}

		return dataPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DeviceType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DeviceTypeItemProvider deviceTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DeviceType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDeviceTypeAdapter() {
		if (deviceTypeItemProvider == null) {
			deviceTypeItemProvider = new DeviceTypeItemProvider(this);
		}

		return deviceTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DeviceImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DeviceImplementationItemProvider deviceImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DeviceImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDeviceImplementationAdapter() {
		if (deviceImplementationItemProvider == null) {
			deviceImplementationItemProvider = new DeviceImplementationItemProvider(this);
		}

		return deviceImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.DevicePrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DevicePrototypeItemProvider devicePrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.DevicePrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDevicePrototypeAdapter() {
		if (devicePrototypeItemProvider == null) {
			devicePrototypeItemProvider = new DevicePrototypeItemProvider(this);
		}

		return devicePrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.MemoryType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MemoryTypeItemProvider memoryTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.MemoryType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMemoryTypeAdapter() {
		if (memoryTypeItemProvider == null) {
			memoryTypeItemProvider = new MemoryTypeItemProvider(this);
		}

		return memoryTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.MemoryImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MemoryImplementationItemProvider memoryImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.MemoryImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMemoryImplementationAdapter() {
		if (memoryImplementationItemProvider == null) {
			memoryImplementationItemProvider = new MemoryImplementationItemProvider(this);
		}

		return memoryImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.MemoryPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MemoryPrototypeItemProvider memoryPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.MemoryPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMemoryPrototypeAdapter() {
		if (memoryPrototypeItemProvider == null) {
			memoryPrototypeItemProvider = new MemoryPrototypeItemProvider(this);
		}

		return memoryPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessTypeItemProvider processTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessTypeAdapter() {
		if (processTypeItemProvider == null) {
			processTypeItemProvider = new ProcessTypeItemProvider(this);
		}

		return processTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessorType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessorTypeItemProvider processorTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessorType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessorTypeAdapter() {
		if (processorTypeItemProvider == null) {
			processorTypeItemProvider = new ProcessorTypeItemProvider(this);
		}

		return processorTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessImplementationItemProvider processImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessImplementationAdapter() {
		if (processImplementationItemProvider == null) {
			processImplementationItemProvider = new ProcessImplementationItemProvider(this);
		}

		return processImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessPrototypeItemProvider processPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessPrototypeAdapter() {
		if (processPrototypeItemProvider == null) {
			processPrototypeItemProvider = new ProcessPrototypeItemProvider(this);
		}

		return processPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessorImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessorImplementationItemProvider processorImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessorImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessorImplementationAdapter() {
		if (processorImplementationItemProvider == null) {
			processorImplementationItemProvider = new ProcessorImplementationItemProvider(this);
		}

		return processorImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ProcessorPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessorPrototypeItemProvider processorPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ProcessorPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessorPrototypeAdapter() {
		if (processorPrototypeItemProvider == null) {
			processorPrototypeItemProvider = new ProcessorPrototypeItemProvider(this);
		}

		return processorPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramTypeItemProvider subprogramTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramTypeAdapter() {
		if (subprogramTypeItemProvider == null) {
			subprogramTypeItemProvider = new SubprogramTypeItemProvider(this);
		}

		return subprogramTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramImplementationItemProvider subprogramImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramImplementationAdapter() {
		if (subprogramImplementationItemProvider == null) {
			subprogramImplementationItemProvider = new SubprogramImplementationItemProvider(this);
		}

		return subprogramImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramPrototypeItemProvider subprogramPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramPrototypeAdapter() {
		if (subprogramPrototypeItemProvider == null) {
			subprogramPrototypeItemProvider = new SubprogramPrototypeItemProvider(this);
		}

		return subprogramPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramGroupType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramGroupTypeItemProvider subprogramGroupTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramGroupType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramGroupTypeAdapter() {
		if (subprogramGroupTypeItemProvider == null) {
			subprogramGroupTypeItemProvider = new SubprogramGroupTypeItemProvider(this);
		}

		return subprogramGroupTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramGroupImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramGroupImplementationItemProvider subprogramGroupImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramGroupImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramGroupImplementationAdapter() {
		if (subprogramGroupImplementationItemProvider == null) {
			subprogramGroupImplementationItemProvider = new SubprogramGroupImplementationItemProvider(this);
		}

		return subprogramGroupImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramGroupPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramGroupPrototypeItemProvider subprogramGroupPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramGroupPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramGroupPrototypeAdapter() {
		if (subprogramGroupPrototypeItemProvider == null) {
			subprogramGroupPrototypeItemProvider = new SubprogramGroupPrototypeItemProvider(this);
		}

		return subprogramGroupPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SystemType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SystemTypeItemProvider systemTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SystemType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSystemTypeAdapter() {
		if (systemTypeItemProvider == null) {
			systemTypeItemProvider = new SystemTypeItemProvider(this);
		}

		return systemTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SystemImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SystemImplementationItemProvider systemImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SystemImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSystemImplementationAdapter() {
		if (systemImplementationItemProvider == null) {
			systemImplementationItemProvider = new SystemImplementationItemProvider(this);
		}

		return systemImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SystemPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SystemPrototypeItemProvider systemPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SystemPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSystemPrototypeAdapter() {
		if (systemPrototypeItemProvider == null) {
			systemPrototypeItemProvider = new SystemPrototypeItemProvider(this);
		}

		return systemPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadTypeItemProvider threadTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadTypeAdapter() {
		if (threadTypeItemProvider == null) {
			threadTypeItemProvider = new ThreadTypeItemProvider(this);
		}

		return threadTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadImplementationItemProvider threadImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadImplementationAdapter() {
		if (threadImplementationItemProvider == null) {
			threadImplementationItemProvider = new ThreadImplementationItemProvider(this);
		}

		return threadImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadPrototypeItemProvider threadPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadPrototypeAdapter() {
		if (threadPrototypeItemProvider == null) {
			threadPrototypeItemProvider = new ThreadPrototypeItemProvider(this);
		}

		return threadPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadGroupType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadGroupTypeItemProvider threadGroupTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadGroupType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadGroupTypeAdapter() {
		if (threadGroupTypeItemProvider == null) {
			threadGroupTypeItemProvider = new ThreadGroupTypeItemProvider(this);
		}

		return threadGroupTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadGroupImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadGroupImplementationItemProvider threadGroupImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadGroupImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadGroupImplementationAdapter() {
		if (threadGroupImplementationItemProvider == null) {
			threadGroupImplementationItemProvider = new ThreadGroupImplementationItemProvider(this);
		}

		return threadGroupImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ThreadGroupPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ThreadGroupPrototypeItemProvider threadGroupPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ThreadGroupPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createThreadGroupPrototypeAdapter() {
		if (threadGroupPrototypeItemProvider == null) {
			threadGroupPrototypeItemProvider = new ThreadGroupPrototypeItemProvider(this);
		}

		return threadGroupPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualBusType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualBusTypeItemProvider virtualBusTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualBusType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualBusTypeAdapter() {
		if (virtualBusTypeItemProvider == null) {
			virtualBusTypeItemProvider = new VirtualBusTypeItemProvider(this);
		}

		return virtualBusTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualBusImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualBusImplementationItemProvider virtualBusImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualBusImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualBusImplementationAdapter() {
		if (virtualBusImplementationItemProvider == null) {
			virtualBusImplementationItemProvider = new VirtualBusImplementationItemProvider(this);
		}

		return virtualBusImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualBusPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualBusPrototypeItemProvider virtualBusPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualBusPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualBusPrototypeAdapter() {
		if (virtualBusPrototypeItemProvider == null) {
			virtualBusPrototypeItemProvider = new VirtualBusPrototypeItemProvider(this);
		}

		return virtualBusPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualProcessorType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualProcessorTypeItemProvider virtualProcessorTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualProcessorType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualProcessorTypeAdapter() {
		if (virtualProcessorTypeItemProvider == null) {
			virtualProcessorTypeItemProvider = new VirtualProcessorTypeItemProvider(this);
		}

		return virtualProcessorTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualProcessorImplementation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualProcessorImplementationItemProvider virtualProcessorImplementationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualProcessorImplementation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualProcessorImplementationAdapter() {
		if (virtualProcessorImplementationItemProvider == null) {
			virtualProcessorImplementationItemProvider = new VirtualProcessorImplementationItemProvider(this);
		}

		return virtualProcessorImplementationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.VirtualProcessorPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VirtualProcessorPrototypeItemProvider virtualProcessorPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.VirtualProcessorPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVirtualProcessorPrototypeAdapter() {
		if (virtualProcessorPrototypeItemProvider == null) {
			virtualProcessorPrototypeItemProvider = new VirtualProcessorPrototypeItemProvider(this);
		}

		return virtualProcessorPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ComponentPrototypeBinding} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentPrototypeBindingItemProvider componentPrototypeBindingItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ComponentPrototypeBinding}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentPrototypeBindingAdapter() {
		if (componentPrototypeBindingItemProvider == null) {
			componentPrototypeBindingItemProvider = new ComponentPrototypeBindingItemProvider(this);
		}

		return componentPrototypeBindingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ComponentPrototypeActual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentPrototypeActualItemProvider componentPrototypeActualItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ComponentPrototypeActual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentPrototypeActualAdapter() {
		if (componentPrototypeActualItemProvider == null) {
			componentPrototypeActualItemProvider = new ComponentPrototypeActualItemProvider(this);
		}

		return componentPrototypeActualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupPrototypeBinding} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupPrototypeBindingItemProvider featureGroupPrototypeBindingItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupPrototypeBinding}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupPrototypeBindingAdapter() {
		if (featureGroupPrototypeBindingItemProvider == null) {
			featureGroupPrototypeBindingItemProvider = new FeatureGroupPrototypeBindingItemProvider(this);
		}

		return featureGroupPrototypeBindingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupPrototypeActual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupPrototypeActualItemProvider featureGroupPrototypeActualItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupPrototypeActual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupPrototypeActualAdapter() {
		if (featureGroupPrototypeActualItemProvider == null) {
			featureGroupPrototypeActualItemProvider = new FeatureGroupPrototypeActualItemProvider(this);
		}

		return featureGroupPrototypeActualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeaturePrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeaturePrototypeItemProvider featurePrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeaturePrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeaturePrototypeAdapter() {
		if (featurePrototypeItemProvider == null) {
			featurePrototypeItemProvider = new FeaturePrototypeItemProvider(this);
		}

		return featurePrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeatureGroupPrototype} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureGroupPrototypeItemProvider featureGroupPrototypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeatureGroupPrototype}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureGroupPrototypeAdapter() {
		if (featureGroupPrototypeItemProvider == null) {
			featureGroupPrototypeItemProvider = new FeatureGroupPrototypeItemProvider(this);
		}

		return featureGroupPrototypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeaturePrototypeBinding} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeaturePrototypeBindingItemProvider featurePrototypeBindingItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeaturePrototypeBinding}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeaturePrototypeBindingAdapter() {
		if (featurePrototypeBindingItemProvider == null) {
			featurePrototypeBindingItemProvider = new FeaturePrototypeBindingItemProvider(this);
		}

		return featurePrototypeBindingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AccessSpecification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccessSpecificationItemProvider accessSpecificationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AccessSpecification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccessSpecificationAdapter() {
		if (accessSpecificationItemProvider == null) {
			accessSpecificationItemProvider = new AccessSpecificationItemProvider(this);
		}

		return accessSpecificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PortSpecification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortSpecificationItemProvider portSpecificationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PortSpecification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortSpecificationAdapter() {
		if (portSpecificationItemProvider == null) {
			portSpecificationItemProvider = new PortSpecificationItemProvider(this);
		}

		return portSpecificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.FeaturePrototypeReference} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeaturePrototypeReferenceItemProvider featurePrototypeReferenceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.FeaturePrototypeReference}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeaturePrototypeReferenceAdapter() {
		if (featurePrototypeReferenceItemProvider == null) {
			featurePrototypeReferenceItemProvider = new FeaturePrototypeReferenceItemProvider(this);
		}

		return featurePrototypeReferenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.SubprogramCall} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubprogramCallItemProvider subprogramCallItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.SubprogramCall}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubprogramCallAdapter() {
		if (subprogramCallItemProvider == null) {
			subprogramCallItemProvider = new SubprogramCallItemProvider(this);
		}

		return subprogramCallItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BasicPropertyAssociation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BasicPropertyAssociationItemProvider basicPropertyAssociationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BasicPropertyAssociation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBasicPropertyAssociationAdapter() {
		if (basicPropertyAssociationItemProvider == null) {
			basicPropertyAssociationItemProvider = new BasicPropertyAssociationItemProvider(this);
		}

		return basicPropertyAssociationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PropertyConstant} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyConstantItemProvider propertyConstantItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PropertyConstant}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyConstantAdapter() {
		if (propertyConstantItemProvider == null) {
			propertyConstantItemProvider = new PropertyConstantItemProvider(this);
		}

		return propertyConstantItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EnumerationLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnumerationLiteralItemProvider enumerationLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EnumerationLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnumerationLiteralAdapter() {
		if (enumerationLiteralItemProvider == null) {
			enumerationLiteralItemProvider = new EnumerationLiteralItemProvider(this);
		}

		return enumerationLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.UnitLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnitLiteralItemProvider unitLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.UnitLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnitLiteralAdapter() {
		if (unitLiteralItemProvider == null) {
			unitLiteralItemProvider = new UnitLiteralItemProvider(this);
		}

		return unitLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.StringLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StringLiteralItemProvider stringLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.StringLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStringLiteralAdapter() {
		if (stringLiteralItemProvider == null) {
			stringLiteralItemProvider = new StringLiteralItemProvider(this);
		}

		return stringLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ClassifierValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ClassifierValueItemProvider classifierValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ClassifierValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createClassifierValueAdapter() {
		if (classifierValueItemProvider == null) {
			classifierValueItemProvider = new ClassifierValueItemProvider(this);
		}

		return classifierValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ReferenceValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceValueItemProvider referenceValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ReferenceValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceValueAdapter() {
		if (referenceValueItemProvider == null) {
			referenceValueItemProvider = new ReferenceValueItemProvider(this);
		}

		return referenceValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.BooleanLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BooleanLiteralItemProvider booleanLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.BooleanLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBooleanLiteralAdapter() {
		if (booleanLiteralItemProvider == null) {
			booleanLiteralItemProvider = new BooleanLiteralItemProvider(this);
		}

		return booleanLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RangeValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RangeValueItemProvider rangeValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RangeValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRangeValueAdapter() {
		if (rangeValueItemProvider == null) {
			rangeValueItemProvider = new RangeValueItemProvider(this);
		}

		return rangeValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.IntegerLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IntegerLiteralItemProvider integerLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.IntegerLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIntegerLiteralAdapter() {
		if (integerLiteralItemProvider == null) {
			integerLiteralItemProvider = new IntegerLiteralItemProvider(this);
		}

		return integerLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RealLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RealLiteralItemProvider realLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RealLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRealLiteralAdapter() {
		if (realLiteralItemProvider == null) {
			realLiteralItemProvider = new RealLiteralItemProvider(this);
		}

		return realLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.Operation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OperationItemProvider operationItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.Operation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOperationAdapter() {
		if (operationItemProvider == null) {
			operationItemProvider = new OperationItemProvider(this);
		}

		return operationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RecordValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordValueItemProvider recordValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RecordValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordValueAdapter() {
		if (recordValueItemProvider == null) {
			recordValueItemProvider = new RecordValueItemProvider(this);
		}

		return recordValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ComputedValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComputedValueItemProvider computedValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ComputedValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComputedValueAdapter() {
		if (computedValueItemProvider == null) {
			computedValueItemProvider = new ComputedValueItemProvider(this);
		}

		return computedValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ListValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ListValueItemProvider listValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ListValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createListValueAdapter() {
		if (listValueItemProvider == null) {
			listValueItemProvider = new ListValueItemProvider(this);
		}

		return listValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.NamedValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamedValueItemProvider namedValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.NamedValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamedValueAdapter() {
		if (namedValueItemProvider == null) {
			namedValueItemProvider = new NamedValueItemProvider(this);
		}

		return namedValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.PropertySet} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertySetItemProvider propertySetItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.PropertySet}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertySetAdapter() {
		if (propertySetItemProvider == null) {
			propertySetItemProvider = new PropertySetItemProvider(this);
		}

		return propertySetItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.GlobalNamespace} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GlobalNamespaceItemProvider globalNamespaceItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.GlobalNamespace}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobalNamespaceAdapter() {
		if (globalNamespaceItemProvider == null) {
			globalNamespaceItemProvider = new GlobalNamespaceItemProvider(this);
		}

		return globalNamespaceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AadlBoolean} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AadlBooleanItemProvider aadlBooleanItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AadlBoolean}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAadlBooleanAdapter() {
		if (aadlBooleanItemProvider == null) {
			aadlBooleanItemProvider = new AadlBooleanItemProvider(this);
		}

		return aadlBooleanItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AadlString} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AadlStringItemProvider aadlStringItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AadlString}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAadlStringAdapter() {
		if (aadlStringItemProvider == null) {
			aadlStringItemProvider = new AadlStringItemProvider(this);
		}

		return aadlStringItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AadlInteger} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AadlIntegerItemProvider aadlIntegerItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AadlInteger}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAadlIntegerAdapter() {
		if (aadlIntegerItemProvider == null) {
			aadlIntegerItemProvider = new AadlIntegerItemProvider(this);
		}

		return aadlIntegerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.UnitsType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnitsTypeItemProvider unitsTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.UnitsType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnitsTypeAdapter() {
		if (unitsTypeItemProvider == null) {
			unitsTypeItemProvider = new UnitsTypeItemProvider(this);
		}

		return unitsTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.EnumerationType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnumerationTypeItemProvider enumerationTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.EnumerationType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnumerationTypeAdapter() {
		if (enumerationTypeItemProvider == null) {
			enumerationTypeItemProvider = new EnumerationTypeItemProvider(this);
		}

		return enumerationTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.NumericRange} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NumericRangeItemProvider numericRangeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.NumericRange}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNumericRangeAdapter() {
		if (numericRangeItemProvider == null) {
			numericRangeItemProvider = new NumericRangeItemProvider(this);
		}

		return numericRangeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.AadlReal} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AadlRealItemProvider aadlRealItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.AadlReal}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAadlRealAdapter() {
		if (aadlRealItemProvider == null) {
			aadlRealItemProvider = new AadlRealItemProvider(this);
		}

		return aadlRealItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ClassifierType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ClassifierTypeItemProvider classifierTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ClassifierType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createClassifierTypeAdapter() {
		if (classifierTypeItemProvider == null) {
			classifierTypeItemProvider = new ClassifierTypeItemProvider(this);
		}

		return classifierTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RangeType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RangeTypeItemProvider rangeTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RangeType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRangeTypeAdapter() {
		if (rangeTypeItemProvider == null) {
			rangeTypeItemProvider = new RangeTypeItemProvider(this);
		}

		return rangeTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RecordType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordTypeItemProvider recordTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RecordType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordTypeAdapter() {
		if (recordTypeItemProvider == null) {
			recordTypeItemProvider = new RecordTypeItemProvider(this);
		}

		return recordTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.RecordField} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordFieldItemProvider recordFieldItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.RecordField}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordFieldAdapter() {
		if (recordFieldItemProvider == null) {
			recordFieldItemProvider = new RecordFieldItemProvider(this);
		}

		return recordFieldItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ReferenceType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceTypeItemProvider referenceTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ReferenceType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceTypeAdapter() {
		if (referenceTypeItemProvider == null) {
			referenceTypeItemProvider = new ReferenceTypeItemProvider(this);
		}

		return referenceTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.osate.aadl2.ListType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ListTypeItemProvider listTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.osate.aadl2.ListType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createListTypeAdapter() {
		if (listTypeItemProvider == null) {
			listTypeItemProvider = new ListTypeItemProvider(this);
		}

		return listTypeItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void dispose() {
		if (commentItemProvider != null) {
			commentItemProvider.dispose();
		}
		if (propertyAssociationItemProvider != null) {
			propertyAssociationItemProvider.dispose();
		}
		if (propertyItemProvider != null) {
			propertyItemProvider.dispose();
		}
		if (basicPropertyItemProvider != null) {
			basicPropertyItemProvider.dispose();
		}
		if (metaclassReferenceItemProvider != null) {
			metaclassReferenceItemProvider.dispose();
		}
		if (modalElementItemProvider != null) {
			modalElementItemProvider.dispose();
		}
		if (modeItemProvider != null) {
			modeItemProvider.dispose();
		}
		if (containedNamedElementItemProvider != null) {
			containedNamedElementItemProvider.dispose();
		}
		if (containmentPathElementItemProvider != null) {
			containmentPathElementItemProvider.dispose();
		}
		if (arrayRangeItemProvider != null) {
			arrayRangeItemProvider.dispose();
		}
		if (modalPropertyValueItemProvider != null) {
			modalPropertyValueItemProvider.dispose();
		}
		if (arrayDimensionItemProvider != null) {
			arrayDimensionItemProvider.dispose();
		}
		if (arraySizeItemProvider != null) {
			arraySizeItemProvider.dispose();
		}
		if (componentImplementationReferenceItemProvider != null) {
			componentImplementationReferenceItemProvider.dispose();
		}
		if (modeTransitionItemProvider != null) {
			modeTransitionItemProvider.dispose();
		}
		if (modeTransitionTriggerItemProvider != null) {
			modeTransitionTriggerItemProvider.dispose();
		}
		if (flowSpecificationItemProvider != null) {
			flowSpecificationItemProvider.dispose();
		}
		if (flowEndItemProvider != null) {
			flowEndItemProvider.dispose();
		}
		if (typeExtensionItemProvider != null) {
			typeExtensionItemProvider.dispose();
		}
		if (featureGroupItemProvider != null) {
			featureGroupItemProvider.dispose();
		}
		if (featureGroupTypeItemProvider != null) {
			featureGroupTypeItemProvider.dispose();
		}
		if (groupExtensionItemProvider != null) {
			groupExtensionItemProvider.dispose();
		}
		if (busAccessItemProvider != null) {
			busAccessItemProvider.dispose();
		}
		if (dataAccessItemProvider != null) {
			dataAccessItemProvider.dispose();
		}
		if (abstractFeatureClassifierItemProvider != null) {
			abstractFeatureClassifierItemProvider.dispose();
		}
		if (dataPortItemProvider != null) {
			dataPortItemProvider.dispose();
		}
		if (eventDataPortItemProvider != null) {
			eventDataPortItemProvider.dispose();
		}
		if (eventPortItemProvider != null) {
			eventPortItemProvider.dispose();
		}
		if (parameterItemProvider != null) {
			parameterItemProvider.dispose();
		}
		if (subprogramAccessItemProvider != null) {
			subprogramAccessItemProvider.dispose();
		}
		if (subprogramGroupAccessItemProvider != null) {
			subprogramGroupAccessItemProvider.dispose();
		}
		if (abstractFeatureItemProvider != null) {
			abstractFeatureItemProvider.dispose();
		}
		if (featurePrototypeItemProvider != null) {
			featurePrototypeItemProvider.dispose();
		}
		if (featureGroupPrototypeItemProvider != null) {
			featureGroupPrototypeItemProvider.dispose();
		}
		if (modeBindingItemProvider != null) {
			modeBindingItemProvider.dispose();
		}
		if (flowImplementationItemProvider != null) {
			flowImplementationItemProvider.dispose();
		}
		if (flowSegmentItemProvider != null) {
			flowSegmentItemProvider.dispose();
		}
		if (connectedElementItemProvider != null) {
			connectedElementItemProvider.dispose();
		}
		if (implementationExtensionItemProvider != null) {
			implementationExtensionItemProvider.dispose();
		}
		if (realizationItemProvider != null) {
			realizationItemProvider.dispose();
		}
		if (endToEndFlowItemProvider != null) {
			endToEndFlowItemProvider.dispose();
		}
		if (endToEndFlowSegmentItemProvider != null) {
			endToEndFlowSegmentItemProvider.dispose();
		}
		if (abstractSubcomponentItemProvider != null) {
			abstractSubcomponentItemProvider.dispose();
		}
		if (accessConnectionItemProvider != null) {
			accessConnectionItemProvider.dispose();
		}
		if (parameterConnectionItemProvider != null) {
			parameterConnectionItemProvider.dispose();
		}
		if (portConnectionItemProvider != null) {
			portConnectionItemProvider.dispose();
		}
		if (featureConnectionItemProvider != null) {
			featureConnectionItemProvider.dispose();
		}
		if (featureGroupConnectionItemProvider != null) {
			featureGroupConnectionItemProvider.dispose();
		}
		if (eventSourceItemProvider != null) {
			eventSourceItemProvider.dispose();
		}
		if (eventDataSourceItemProvider != null) {
			eventDataSourceItemProvider.dispose();
		}
		if (portProxyItemProvider != null) {
			portProxyItemProvider.dispose();
		}
		if (subprogramProxyItemProvider != null) {
			subprogramProxyItemProvider.dispose();
		}
		if (defaultAnnexLibraryItemProvider != null) {
			defaultAnnexLibraryItemProvider.dispose();
		}
		if (defaultAnnexSubclauseItemProvider != null) {
			defaultAnnexSubclauseItemProvider.dispose();
		}
		if (publicPackageSectionItemProvider != null) {
			publicPackageSectionItemProvider.dispose();
		}
		if (packageRenameItemProvider != null) {
			packageRenameItemProvider.dispose();
		}
		if (aadlPackageItemProvider != null) {
			aadlPackageItemProvider.dispose();
		}
		if (privatePackageSectionItemProvider != null) {
			privatePackageSectionItemProvider.dispose();
		}
		if (componentTypeRenameItemProvider != null) {
			componentTypeRenameItemProvider.dispose();
		}
		if (featureGroupTypeRenameItemProvider != null) {
			featureGroupTypeRenameItemProvider.dispose();
		}
		if (componentPrototypeBindingItemProvider != null) {
			componentPrototypeBindingItemProvider.dispose();
		}
		if (componentPrototypeActualItemProvider != null) {
			componentPrototypeActualItemProvider.dispose();
		}
		if (featureGroupPrototypeBindingItemProvider != null) {
			featureGroupPrototypeBindingItemProvider.dispose();
		}
		if (featureGroupPrototypeActualItemProvider != null) {
			featureGroupPrototypeActualItemProvider.dispose();
		}
		if (featurePrototypeBindingItemProvider != null) {
			featurePrototypeBindingItemProvider.dispose();
		}
		if (accessSpecificationItemProvider != null) {
			accessSpecificationItemProvider.dispose();
		}
		if (portSpecificationItemProvider != null) {
			portSpecificationItemProvider.dispose();
		}
		if (featurePrototypeReferenceItemProvider != null) {
			featurePrototypeReferenceItemProvider.dispose();
		}
		if (subprogramCallSequenceItemProvider != null) {
			subprogramCallSequenceItemProvider.dispose();
		}
		if (subprogramCallItemProvider != null) {
			subprogramCallItemProvider.dispose();
		}
		if (abstractTypeItemProvider != null) {
			abstractTypeItemProvider.dispose();
		}
		if (abstractImplementationItemProvider != null) {
			abstractImplementationItemProvider.dispose();
		}
		if (busSubcomponentItemProvider != null) {
			busSubcomponentItemProvider.dispose();
		}
		if (dataSubcomponentItemProvider != null) {
			dataSubcomponentItemProvider.dispose();
		}
		if (deviceSubcomponentItemProvider != null) {
			deviceSubcomponentItemProvider.dispose();
		}
		if (memorySubcomponentItemProvider != null) {
			memorySubcomponentItemProvider.dispose();
		}
		if (processSubcomponentItemProvider != null) {
			processSubcomponentItemProvider.dispose();
		}
		if (processorSubcomponentItemProvider != null) {
			processorSubcomponentItemProvider.dispose();
		}
		if (systemSubcomponentItemProvider != null) {
			systemSubcomponentItemProvider.dispose();
		}
		if (subprogramSubcomponentItemProvider != null) {
			subprogramSubcomponentItemProvider.dispose();
		}
		if (subprogramGroupSubcomponentItemProvider != null) {
			subprogramGroupSubcomponentItemProvider.dispose();
		}
		if (threadSubcomponentItemProvider != null) {
			threadSubcomponentItemProvider.dispose();
		}
		if (threadGroupSubcomponentItemProvider != null) {
			threadGroupSubcomponentItemProvider.dispose();
		}
		if (virtualBusSubcomponentItemProvider != null) {
			virtualBusSubcomponentItemProvider.dispose();
		}
		if (virtualProcessorSubcomponentItemProvider != null) {
			virtualProcessorSubcomponentItemProvider.dispose();
		}
		if (abstractPrototypeItemProvider != null) {
			abstractPrototypeItemProvider.dispose();
		}
		if (busTypeItemProvider != null) {
			busTypeItemProvider.dispose();
		}
		if (busImplementationItemProvider != null) {
			busImplementationItemProvider.dispose();
		}
		if (busPrototypeItemProvider != null) {
			busPrototypeItemProvider.dispose();
		}
		if (dataTypeItemProvider != null) {
			dataTypeItemProvider.dispose();
		}
		if (dataImplementationItemProvider != null) {
			dataImplementationItemProvider.dispose();
		}
		if (dataPrototypeItemProvider != null) {
			dataPrototypeItemProvider.dispose();
		}
		if (deviceTypeItemProvider != null) {
			deviceTypeItemProvider.dispose();
		}
		if (deviceImplementationItemProvider != null) {
			deviceImplementationItemProvider.dispose();
		}
		if (devicePrototypeItemProvider != null) {
			devicePrototypeItemProvider.dispose();
		}
		if (memoryTypeItemProvider != null) {
			memoryTypeItemProvider.dispose();
		}
		if (memoryImplementationItemProvider != null) {
			memoryImplementationItemProvider.dispose();
		}
		if (memoryPrototypeItemProvider != null) {
			memoryPrototypeItemProvider.dispose();
		}
		if (subprogramTypeItemProvider != null) {
			subprogramTypeItemProvider.dispose();
		}
		if (subprogramImplementationItemProvider != null) {
			subprogramImplementationItemProvider.dispose();
		}
		if (subprogramPrototypeItemProvider != null) {
			subprogramPrototypeItemProvider.dispose();
		}
		if (subprogramGroupTypeItemProvider != null) {
			subprogramGroupTypeItemProvider.dispose();
		}
		if (subprogramGroupImplementationItemProvider != null) {
			subprogramGroupImplementationItemProvider.dispose();
		}
		if (subprogramGroupPrototypeItemProvider != null) {
			subprogramGroupPrototypeItemProvider.dispose();
		}
		if (systemTypeItemProvider != null) {
			systemTypeItemProvider.dispose();
		}
		if (systemImplementationItemProvider != null) {
			systemImplementationItemProvider.dispose();
		}
		if (systemPrototypeItemProvider != null) {
			systemPrototypeItemProvider.dispose();
		}
		if (processorTypeItemProvider != null) {
			processorTypeItemProvider.dispose();
		}
		if (processorImplementationItemProvider != null) {
			processorImplementationItemProvider.dispose();
		}
		if (processorPrototypeItemProvider != null) {
			processorPrototypeItemProvider.dispose();
		}
		if (processTypeItemProvider != null) {
			processTypeItemProvider.dispose();
		}
		if (processImplementationItemProvider != null) {
			processImplementationItemProvider.dispose();
		}
		if (processPrototypeItemProvider != null) {
			processPrototypeItemProvider.dispose();
		}
		if (threadTypeItemProvider != null) {
			threadTypeItemProvider.dispose();
		}
		if (threadImplementationItemProvider != null) {
			threadImplementationItemProvider.dispose();
		}
		if (threadPrototypeItemProvider != null) {
			threadPrototypeItemProvider.dispose();
		}
		if (threadGroupTypeItemProvider != null) {
			threadGroupTypeItemProvider.dispose();
		}
		if (threadGroupImplementationItemProvider != null) {
			threadGroupImplementationItemProvider.dispose();
		}
		if (threadGroupPrototypeItemProvider != null) {
			threadGroupPrototypeItemProvider.dispose();
		}
		if (virtualBusTypeItemProvider != null) {
			virtualBusTypeItemProvider.dispose();
		}
		if (virtualBusImplementationItemProvider != null) {
			virtualBusImplementationItemProvider.dispose();
		}
		if (virtualBusPrototypeItemProvider != null) {
			virtualBusPrototypeItemProvider.dispose();
		}
		if (virtualProcessorTypeItemProvider != null) {
			virtualProcessorTypeItemProvider.dispose();
		}
		if (virtualProcessorImplementationItemProvider != null) {
			virtualProcessorImplementationItemProvider.dispose();
		}
		if (virtualProcessorPrototypeItemProvider != null) {
			virtualProcessorPrototypeItemProvider.dispose();
		}
		if (basicPropertyAssociationItemProvider != null) {
			basicPropertyAssociationItemProvider.dispose();
		}
		if (propertyConstantItemProvider != null) {
			propertyConstantItemProvider.dispose();
		}
		if (stringLiteralItemProvider != null) {
			stringLiteralItemProvider.dispose();
		}
		if (unitLiteralItemProvider != null) {
			unitLiteralItemProvider.dispose();
		}
		if (enumerationLiteralItemProvider != null) {
			enumerationLiteralItemProvider.dispose();
		}
		if (classifierValueItemProvider != null) {
			classifierValueItemProvider.dispose();
		}
		if (referenceValueItemProvider != null) {
			referenceValueItemProvider.dispose();
		}
		if (booleanLiteralItemProvider != null) {
			booleanLiteralItemProvider.dispose();
		}
		if (rangeValueItemProvider != null) {
			rangeValueItemProvider.dispose();
		}
		if (integerLiteralItemProvider != null) {
			integerLiteralItemProvider.dispose();
		}
		if (realLiteralItemProvider != null) {
			realLiteralItemProvider.dispose();
		}
		if (operationItemProvider != null) {
			operationItemProvider.dispose();
		}
		if (recordValueItemProvider != null) {
			recordValueItemProvider.dispose();
		}
		if (computedValueItemProvider != null) {
			computedValueItemProvider.dispose();
		}
		if (listValueItemProvider != null) {
			listValueItemProvider.dispose();
		}
		if (namedValueItemProvider != null) {
			namedValueItemProvider.dispose();
		}
		if (propertySetItemProvider != null) {
			propertySetItemProvider.dispose();
		}
		if (globalNamespaceItemProvider != null) {
			globalNamespaceItemProvider.dispose();
		}
		if (aadlBooleanItemProvider != null) {
			aadlBooleanItemProvider.dispose();
		}
		if (aadlStringItemProvider != null) {
			aadlStringItemProvider.dispose();
		}
		if (aadlIntegerItemProvider != null) {
			aadlIntegerItemProvider.dispose();
		}
		if (unitsTypeItemProvider != null) {
			unitsTypeItemProvider.dispose();
		}
		if (enumerationTypeItemProvider != null) {
			enumerationTypeItemProvider.dispose();
		}
		if (numericRangeItemProvider != null) {
			numericRangeItemProvider.dispose();
		}
		if (aadlRealItemProvider != null) {
			aadlRealItemProvider.dispose();
		}
		if (classifierTypeItemProvider != null) {
			classifierTypeItemProvider.dispose();
		}
		if (rangeTypeItemProvider != null) {
			rangeTypeItemProvider.dispose();
		}
		if (recordTypeItemProvider != null) {
			recordTypeItemProvider.dispose();
		}
		if (recordFieldItemProvider != null) {
			recordFieldItemProvider.dispose();
		}
		if (referenceTypeItemProvider != null) {
			referenceTypeItemProvider.dispose();
		}
		if (listTypeItemProvider != null) {
			listTypeItemProvider.dispose();
		}
	}

}