/*******************************************************************************
 * Copyright (c) 2015, 2016 CNRS, IRIT, IRT AESE (IRT Saint Exupéry).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the LGPL 3.0
 * which accompanies this distribution, and is available at
 * https://www.gnu.org/licenses/lgpl-3.0-standalone.html
 *
 * Contributors:
 *      Faiez Zalila - initial API and implementation and/or initial documentation
 *******************************************************************************/
/**
 * generated by Xtext 2.10.0
 */
package fr.irit.fiacre.xtext.fiacre.provider;

import fr.irit.fiacre.xtext.fiacre.util.FiacreAdapterFactory;

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;

/**
 * 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 FiacreItemProviderAdapterFactory extends FiacreAdapterFactory 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<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public FiacreItemProviderAdapterFactory() {
		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 fr.irit.fiacre.xtext.fiacre.Model} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModelItemProvider modelItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Model}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModelAdapter() {
		if (modelItemProvider == null) {
			modelItemProvider = new ModelItemProvider(this);
		}

		return modelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RootDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RootDeclarationItemProvider rootDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RootDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRootDeclarationAdapter() {
		if (rootDeclarationItemProvider == null) {
			rootDeclarationItemProvider = new RootDeclarationItemProvider(this);
		}

		return rootDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Root} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RootItemProvider rootItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Root}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRootAdapter() {
		if (rootItemProvider == null) {
			rootItemProvider = new RootItemProvider(this);
		}

		return rootItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NamedElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamedElementItemProvider namedElementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamedElementAdapter() {
		if (namedElementItemProvider == null) {
			namedElementItemProvider = new NamedElementItemProvider(this);
		}

		return namedElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeDeclarationUseItemProvider typeDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TypeDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeDeclarationUseAdapter() {
		if (typeDeclarationUseItemProvider == null) {
			typeDeclarationUseItemProvider = new TypeDeclarationUseItemProvider(this);
		}

		return typeDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstantDeclarationUseItemProvider constantDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstantDeclarationUseAdapter() {
		if (constantDeclarationUseItemProvider == null) {
			constantDeclarationUseItemProvider = new ConstantDeclarationUseItemProvider(this);
		}

		return constantDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExpressionDeclarationUseItemProvider expressionDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExpressionDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExpressionDeclarationUseAdapter() {
		if (expressionDeclarationUseItemProvider == null) {
			expressionDeclarationUseItemProvider = new ExpressionDeclarationUseItemProvider(this);
		}

		return expressionDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceDeclarationUseItemProvider referenceDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferenceDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceDeclarationUseAdapter() {
		if (referenceDeclarationUseItemProvider == null) {
			referenceDeclarationUseItemProvider = new ReferenceDeclarationUseItemProvider(this);
		}

		return referenceDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnionTagDeclarationUseItemProvider unionTagDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnionTagDeclarationUseAdapter() {
		if (unionTagDeclarationUseItemProvider == null) {
			unionTagDeclarationUseItemProvider = new UnionTagDeclarationUseItemProvider(this);
		}

		return unionTagDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordFieldDeclarationUseItemProvider recordFieldDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordFieldDeclarationUseAdapter() {
		if (recordFieldDeclarationUseItemProvider == null) {
			recordFieldDeclarationUseItemProvider = new RecordFieldDeclarationUseItemProvider(this);
		}

		return recordFieldDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PatternDeclarationUseItemProvider patternDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPatternDeclarationUseAdapter() {
		if (patternDeclarationUseItemProvider == null) {
			patternDeclarationUseItemProvider = new PatternDeclarationUseItemProvider(this);
		}

		return patternDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BoundDeclarationUseItemProvider boundDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BoundDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBoundDeclarationUseAdapter() {
		if (boundDeclarationUseItemProvider == null) {
			boundDeclarationUseItemProvider = new BoundDeclarationUseItemProvider(this);
		}

		return boundDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PathDeclarationUseItemProvider pathDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPathDeclarationUseAdapter() {
		if (pathDeclarationUseItemProvider == null) {
			pathDeclarationUseItemProvider = new PathDeclarationUseItemProvider(this);
		}

		return pathDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyDeclarationUseItemProvider propertyDeclarationUseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclarationUse}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyDeclarationUseAdapter() {
		if (propertyDeclarationUseItemProvider == null) {
			propertyDeclarationUseItemProvider = new PropertyDeclarationUseItemProvider(this);
		}

		return propertyDeclarationUseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ImportDeclarationItemProvider importDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ImportDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createImportDeclarationAdapter() {
		if (importDeclarationItemProvider == null) {
			importDeclarationItemProvider = new ImportDeclarationItemProvider(this);
		}

		return importDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Declaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DeclarationItemProvider declarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Declaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDeclarationAdapter() {
		if (declarationItemProvider == null) {
			declarationItemProvider = new DeclarationItemProvider(this);
		}

		return declarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParameterizedDeclarationItemProvider parameterizedDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterizedDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParameterizedDeclarationAdapter() {
		if (parameterizedDeclarationItemProvider == null) {
			parameterizedDeclarationItemProvider = new ParameterizedDeclarationItemProvider(this);
		}

		return parameterizedDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FunctionDeclarationItemProvider functionDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FunctionDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFunctionDeclarationAdapter() {
		if (functionDeclarationItemProvider == null) {
			functionDeclarationItemProvider = new FunctionDeclarationItemProvider(this);
		}

		return functionDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeDeclarationItemProvider typeDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TypeDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeDeclarationAdapter() {
		if (typeDeclarationItemProvider == null) {
			typeDeclarationItemProvider = new TypeDeclarationItemProvider(this);
		}

		return typeDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ChannelDeclarationItemProvider channelDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createChannelDeclarationAdapter() {
		if (channelDeclarationItemProvider == null) {
			channelDeclarationItemProvider = new ChannelDeclarationItemProvider(this);
		}

		return channelDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ChannelType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ChannelTypeItemProvider channelTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ChannelType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createChannelTypeAdapter() {
		if (channelTypeItemProvider == null) {
			channelTypeItemProvider = new ChannelTypeItemProvider(this);
		}

		return channelTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Type} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeItemProvider typeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Type}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeAdapter() {
		if (typeItemProvider == null) {
			typeItemProvider = new TypeItemProvider(this);
		}

		return typeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BasicType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BasicTypeItemProvider basicTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BasicType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBasicTypeAdapter() {
		if (basicTypeItemProvider == null) {
			basicTypeItemProvider = new BasicTypeItemProvider(this);
		}

		return basicTypeItemProvider;
	}

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

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.UnionType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnionTypeItemProvider unionTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnionTypeAdapter() {
		if (unionTypeItemProvider == null) {
			unionTypeItemProvider = new UnionTypeItemProvider(this);
		}

		return unionTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTags} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnionTagsItemProvider unionTagsItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTags}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnionTagsAdapter() {
		if (unionTagsItemProvider == null) {
			unionTagsItemProvider = new UnionTagsItemProvider(this);
		}

		return unionTagsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnionTagDeclarationItemProvider unionTagDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnionTagDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnionTagDeclarationAdapter() {
		if (unionTagDeclarationItemProvider == null) {
			unionTagDeclarationItemProvider = new UnionTagDeclarationItemProvider(this);
		}

		return unionTagDeclarationItemProvider;
	}

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

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.RecordFields} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordFieldsItemProvider recordFieldsItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFields}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordFieldsAdapter() {
		if (recordFieldsItemProvider == null) {
			recordFieldsItemProvider = new RecordFieldsItemProvider(this);
		}

		return recordFieldsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordFieldDeclarationItemProvider recordFieldDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordFieldDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordFieldDeclarationAdapter() {
		if (recordFieldDeclarationItemProvider == null) {
			recordFieldDeclarationItemProvider = new RecordFieldDeclarationItemProvider(this);
		}

		return recordFieldDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.QueueType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected QueueTypeItemProvider queueTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createQueueTypeAdapter() {
		if (queueTypeItemProvider == null) {
			queueTypeItemProvider = new QueueTypeItemProvider(this);
		}

		return queueTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayTypeItemProvider arrayTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayTypeAdapter() {
		if (arrayTypeItemProvider == null) {
			arrayTypeItemProvider = new ArrayTypeItemProvider(this);
		}

		return arrayTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferencedType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferencedTypeItemProvider referencedTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferencedType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferencedTypeAdapter() {
		if (referencedTypeItemProvider == null) {
			referencedTypeItemProvider = new ReferencedTypeItemProvider(this);
		}

		return referencedTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstantDeclarationItemProvider constantDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstantDeclarationAdapter() {
		if (constantDeclarationItemProvider == null) {
			constantDeclarationItemProvider = new ConstantDeclarationItemProvider(this);
		}

		return constantDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProcessDeclarationItemProvider processDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ProcessDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProcessDeclarationAdapter() {
		if (processDeclarationItemProvider == null) {
			processDeclarationItemProvider = new ProcessDeclarationItemProvider(this);
		}

		return processDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateDeclarationItemProvider stateDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateDeclarationAdapter() {
		if (stateDeclarationItemProvider == null) {
			stateDeclarationItemProvider = new StateDeclarationItemProvider(this);
		}

		return stateDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TransitionSource} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TransitionSourceItemProvider transitionSourceItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TransitionSource}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTransitionSourceAdapter() {
		if (transitionSourceItemProvider == null) {
			transitionSourceItemProvider = new TransitionSourceItemProvider(this);
		}

		return transitionSourceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Transition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TransitionItemProvider transitionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Transition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTransitionAdapter() {
		if (transitionItemProvider == null) {
			transitionItemProvider = new TransitionItemProvider(this);
		}

		return transitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentDeclarationItemProvider componentDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentDeclarationAdapter() {
		if (componentDeclarationItemProvider == null) {
			componentDeclarationItemProvider = new ComponentDeclarationItemProvider(this);
		}

		return componentDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortsDeclarationItemProvider portsDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortsDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortsDeclarationAdapter() {
		if (portsDeclarationItemProvider == null) {
			portsDeclarationItemProvider = new PortsDeclarationItemProvider(this);
		}

		return portsDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortDeclarationItemProvider portDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortDeclarationAdapter() {
		if (portDeclarationItemProvider == null) {
			portDeclarationItemProvider = new PortDeclarationItemProvider(this);
		}

		return portDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LocalPortsDeclarationItemProvider localPortsDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LocalPortsDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLocalPortsDeclarationAdapter() {
		if (localPortsDeclarationItemProvider == null) {
			localPortsDeclarationItemProvider = new LocalPortsDeclarationItemProvider(this);
		}

		return localPortsDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParametersDeclarationItemProvider parametersDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParametersDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParametersDeclarationAdapter() {
		if (parametersDeclarationItemProvider == null) {
			parametersDeclarationItemProvider = new ParametersDeclarationItemProvider(this);
		}

		return parametersDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParameterDeclarationItemProvider parameterDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ParameterDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParameterDeclarationAdapter() {
		if (parameterDeclarationItemProvider == null) {
			parameterDeclarationItemProvider = new ParameterDeclarationItemProvider(this);
		}

		return parameterDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VariablesDeclarationItemProvider variablesDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariablesDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVariablesDeclarationAdapter() {
		if (variablesDeclarationItemProvider == null) {
			variablesDeclarationItemProvider = new VariablesDeclarationItemProvider(this);
		}

		return variablesDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VariableDeclarationItemProvider variableDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVariableDeclarationAdapter() {
		if (variableDeclarationItemProvider == null) {
			variableDeclarationItemProvider = new VariableDeclarationItemProvider(this);
		}

		return variableDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PriorityDeclarationItemProvider priorityDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPriorityDeclarationAdapter() {
		if (priorityDeclarationItemProvider == null) {
			priorityDeclarationItemProvider = new PriorityDeclarationItemProvider(this);
		}

		return priorityDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PriorityGroupItemProvider priorityGroupItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PriorityGroup}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPriorityGroupAdapter() {
		if (priorityGroupItemProvider == null) {
			priorityGroupItemProvider = new PriorityGroupItemProvider(this);
		}

		return priorityGroupItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Statement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StatementItemProvider statementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Statement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStatementAdapter() {
		if (statementItemProvider == null) {
			statementItemProvider = new StatementItemProvider(this);
		}

		return statementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BlockStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BlockStatementItemProvider blockStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BlockStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBlockStatementAdapter() {
		if (blockStatementItemProvider == null) {
			blockStatementItemProvider = new BlockStatementItemProvider(this);
		}

		return blockStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReturnStatementItemProvider returnStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReturnStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReturnStatementAdapter() {
		if (returnStatementItemProvider == null) {
			returnStatementItemProvider = new ReturnStatementItemProvider(this);
		}

		return returnStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NullStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NullStatementItemProvider nullStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NullStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNullStatementAdapter() {
		if (nullStatementItemProvider == null) {
			nullStatementItemProvider = new NullStatementItemProvider(this);
		}

		return nullStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TaggedStatementItemProvider taggedStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TaggedStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTaggedStatementAdapter() {
		if (taggedStatementItemProvider == null) {
			taggedStatementItemProvider = new TaggedStatementItemProvider(this);
		}

		return taggedStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PatternStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PatternStatementItemProvider patternStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPatternStatementAdapter() {
		if (patternStatementItemProvider == null) {
			patternStatementItemProvider = new PatternStatementItemProvider(this);
		}

		return patternStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Pattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PatternItemProvider patternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Pattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPatternAdapter() {
		if (patternItemProvider == null) {
			patternItemProvider = new PatternItemProvider(this);
		}

		return patternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AnyPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnyPatternItemProvider anyPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AnyPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnyPatternAdapter() {
		if (anyPatternItemProvider == null) {
			anyPatternItemProvider = new AnyPatternItemProvider(this);
		}

		return anyPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstantPatternItemProvider constantPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstantPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstantPatternAdapter() {
		if (constantPatternItemProvider == null) {
			constantPatternItemProvider = new ConstantPatternItemProvider(this);
		}

		return constantPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IntegerPatternItemProvider integerPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIntegerPatternAdapter() {
		if (integerPatternItemProvider == null) {
			integerPatternItemProvider = new IntegerPatternItemProvider(this);
		}

		return integerPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IdentifierPatternItemProvider identifierPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIdentifierPatternAdapter() {
		if (identifierPatternItemProvider == null) {
			identifierPatternItemProvider = new IdentifierPatternItemProvider(this);
		}

		return identifierPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConditionalStatementItemProvider conditionalStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConditionalStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConditionalStatementAdapter() {
		if (conditionalStatementItemProvider == null) {
			conditionalStatementItemProvider = new ConditionalStatementItemProvider(this);
		}

		return conditionalStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExtendedConditionalStatementItemProvider extendedConditionalStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExtendedConditionalStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExtendedConditionalStatementAdapter() {
		if (extendedConditionalStatementItemProvider == null) {
			extendedConditionalStatementItemProvider = new ExtendedConditionalStatementItemProvider(this);
		}

		return extendedConditionalStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SelectStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SelectStatementItemProvider selectStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SelectStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSelectStatementAdapter() {
		if (selectStatementItemProvider == null) {
			selectStatementItemProvider = new SelectStatementItemProvider(this);
		}

		return selectStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.WhileStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected WhileStatementItemProvider whileStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.WhileStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createWhileStatementAdapter() {
		if (whileStatementItemProvider == null) {
			whileStatementItemProvider = new WhileStatementItemProvider(this);
		}

		return whileStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ForeachStatementItemProvider foreachStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ForeachStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createForeachStatementAdapter() {
		if (foreachStatementItemProvider == null) {
			foreachStatementItemProvider = new ForeachStatementItemProvider(this);
		}

		return foreachStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ToStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ToStatementItemProvider toStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ToStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createToStatementAdapter() {
		if (toStatementItemProvider == null) {
			toStatementItemProvider = new ToStatementItemProvider(this);
		}

		return toStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.CaseStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CaseStatementItemProvider caseStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.CaseStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCaseStatementAdapter() {
		if (caseStatementItemProvider == null) {
			caseStatementItemProvider = new CaseStatementItemProvider(this);
		}

		return caseStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LoopStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LoopStatementItemProvider loopStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LoopStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLoopStatementAdapter() {
		if (loopStatementItemProvider == null) {
			loopStatementItemProvider = new LoopStatementItemProvider(this);
		}

		return loopStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.OnStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OnStatementItemProvider onStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.OnStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOnStatementAdapter() {
		if (onStatementItemProvider == null) {
			onStatementItemProvider = new OnStatementItemProvider(this);
		}

		return onStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.WaitStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected WaitStatementItemProvider waitStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.WaitStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createWaitStatementAdapter() {
		if (waitStatementItemProvider == null) {
			waitStatementItemProvider = new WaitStatementItemProvider(this);
		}

		return waitStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Composition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompositionItemProvider compositionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Composition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompositionAdapter() {
		if (compositionItemProvider == null) {
			compositionItemProvider = new CompositionItemProvider(this);
		}

		return compositionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Block} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BlockItemProvider blockItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Block}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBlockAdapter() {
		if (blockItemProvider == null) {
			blockItemProvider = new BlockItemProvider(this);
		}

		return blockItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompositeBlockItemProvider compositeBlockItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.CompositeBlock}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompositeBlockAdapter() {
		if (compositeBlockItemProvider == null) {
			compositeBlockItemProvider = new CompositeBlockItemProvider(this);
		}

		return compositeBlockItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InstanceDeclarationItemProvider instanceDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InstanceDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInstanceDeclarationAdapter() {
		if (instanceDeclarationItemProvider == null) {
			instanceDeclarationItemProvider = new InstanceDeclarationItemProvider(this);
		}

		return instanceDeclarationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PortSet} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortSetItemProvider portSetItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PortSet}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortSetAdapter() {
		if (portSetItemProvider == null) {
			portSetItemProvider = new PortSetItemProvider(this);
		}

		return portSetItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComponentInstanceItemProvider componentInstanceItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComponentInstance}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComponentInstanceAdapter() {
		if (componentInstanceItemProvider == null) {
			componentInstanceItemProvider = new ComponentInstanceItemProvider(this);
		}

		return componentInstanceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Expression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExpressionItemProvider expressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Expression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExpressionAdapter() {
		if (expressionItemProvider == null) {
			expressionItemProvider = new ExpressionItemProvider(this);
		}

		return expressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ValueExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ValueExpressionItemProvider valueExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ValueExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createValueExpressionAdapter() {
		if (valueExpressionItemProvider == null) {
			valueExpressionItemProvider = new ValueExpressionItemProvider(this);
		}

		return valueExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceExpressionItemProvider referenceExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReferenceExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceExpressionAdapter() {
		if (referenceExpressionItemProvider == null) {
			referenceExpressionItemProvider = new ReferenceExpressionItemProvider(this);
		}

		return referenceExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IdentifierExpressionItemProvider identifierExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IdentifierExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIdentifierExpressionAdapter() {
		if (identifierExpressionItemProvider == null) {
			identifierExpressionItemProvider = new IdentifierExpressionItemProvider(this);
		}

		return identifierExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordExpressionItemProvider recordExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordExpressionAdapter() {
		if (recordExpressionItemProvider == null) {
			recordExpressionItemProvider = new RecordExpressionItemProvider(this);
		}

		return recordExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FieldExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FieldExpressionItemProvider fieldExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FieldExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFieldExpressionAdapter() {
		if (fieldExpressionItemProvider == null) {
			fieldExpressionItemProvider = new FieldExpressionItemProvider(this);
		}

		return fieldExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayExpressionItemProvider arrayExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayExpressionAdapter() {
		if (arrayExpressionItemProvider == null) {
			arrayExpressionItemProvider = new ArrayExpressionItemProvider(this);
		}

		return arrayExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.QueueExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected QueueExpressionItemProvider queueExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.QueueExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createQueueExpressionAdapter() {
		if (queueExpressionItemProvider == null) {
			queueExpressionItemProvider = new QueueExpressionItemProvider(this);
		}

		return queueExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnqueueExpressionItemProvider enqueueExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnqueueExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnqueueExpressionAdapter() {
		if (enqueueExpressionItemProvider == null) {
			enqueueExpressionItemProvider = new EnqueueExpressionItemProvider(this);
		}

		return enqueueExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AppendExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AppendExpressionItemProvider appendExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AppendExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAppendExpressionAdapter() {
		if (appendExpressionItemProvider == null) {
			appendExpressionItemProvider = new AppendExpressionItemProvider(this);
		}

		return appendExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LiteralExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralExpressionItemProvider literalExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LiteralExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralExpressionAdapter() {
		if (literalExpressionItemProvider == null) {
			literalExpressionItemProvider = new LiteralExpressionItemProvider(this);
		}

		return literalExpressionItemProvider;
	}

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

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.NaturalLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NaturalLiteralItemProvider naturalLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNaturalLiteralAdapter() {
		if (naturalLiteralItemProvider == null) {
			naturalLiteralItemProvider = new NaturalLiteralItemProvider(this);
		}

		return naturalLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LowerBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LowerBoundItemProvider lowerBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LowerBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLowerBoundAdapter() {
		if (lowerBoundItemProvider == null) {
			lowerBoundItemProvider = new LowerBoundItemProvider(this);
		}

		return lowerBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UpperBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UpperBoundItemProvider upperBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UpperBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUpperBoundAdapter() {
		if (upperBoundItemProvider == null) {
			upperBoundItemProvider = new UpperBoundItemProvider(this);
		}

		return upperBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NaturalLowerBoundItemProvider naturalLowerBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalLowerBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNaturalLowerBoundAdapter() {
		if (naturalLowerBoundItemProvider == null) {
			naturalLowerBoundItemProvider = new NaturalLowerBoundItemProvider(this);
		}

		return naturalLowerBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NaturalUpperBoundItemProvider naturalUpperBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalUpperBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNaturalUpperBoundAdapter() {
		if (naturalUpperBoundItemProvider == null) {
			naturalUpperBoundItemProvider = new NaturalUpperBoundItemProvider(this);
		}

		return naturalUpperBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DecimalLowerBoundItemProvider decimalLowerBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalLowerBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDecimalLowerBoundAdapter() {
		if (decimalLowerBoundItemProvider == null) {
			decimalLowerBoundItemProvider = new DecimalLowerBoundItemProvider(this);
		}

		return decimalLowerBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DecimalUpperBoundItemProvider decimalUpperBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DecimalUpperBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDecimalUpperBoundAdapter() {
		if (decimalUpperBoundItemProvider == null) {
			decimalUpperBoundItemProvider = new DecimalUpperBoundItemProvider(this);
		}

		return decimalUpperBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VariableLowerBoundItemProvider variableLowerBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableLowerBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVariableLowerBoundAdapter() {
		if (variableLowerBoundItemProvider == null) {
			variableLowerBoundItemProvider = new VariableLowerBoundItemProvider(this);
		}

		return variableLowerBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VariableUpperBoundItemProvider variableUpperBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.VariableUpperBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVariableUpperBoundAdapter() {
		if (variableUpperBoundItemProvider == null) {
			variableUpperBoundItemProvider = new VariableUpperBoundItemProvider(this);
		}

		return variableUpperBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InfiniteUpperBoundItemProvider infiniteUpperBoundItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfiniteUpperBound}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInfiniteUpperBoundAdapter() {
		if (infiniteUpperBoundItemProvider == null) {
			infiniteUpperBoundItemProvider = new InfiniteUpperBoundItemProvider(this);
		}

		return infiniteUpperBoundItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Requirement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RequirementItemProvider requirementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Requirement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRequirementAdapter() {
		if (requirementItemProvider == null) {
			requirementItemProvider = new RequirementItemProvider(this);
		}

		return requirementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyDeclarationItemProvider propertyDeclarationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDeclaration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyDeclarationAdapter() {
		if (propertyDeclarationItemProvider == null) {
			propertyDeclarationItemProvider = new PropertyDeclarationItemProvider(this);
		}

		return propertyDeclarationItemProvider;
	}

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

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.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 fr.irit.fiacre.xtext.fiacre.PatternProperty} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PatternPropertyItemProvider patternPropertyItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PatternProperty}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPatternPropertyAdapter() {
		if (patternPropertyItemProvider == null) {
			patternPropertyItemProvider = new PatternPropertyItemProvider(this);
		}

		return patternPropertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLPatternItemProvider ltlPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLPatternAdapter() {
		if (ltlPatternItemProvider == null) {
			ltlPatternItemProvider = new LTLPatternItemProvider(this);
		}

		return ltlPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DeadlockFreePatternItemProvider deadlockFreePatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.DeadlockFreePattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDeadlockFreePatternAdapter() {
		if (deadlockFreePatternItemProvider == null) {
			deadlockFreePatternItemProvider = new DeadlockFreePatternItemProvider(this);
		}

		return deadlockFreePatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InfinitelyOftenPatternItemProvider infinitelyOftenPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.InfinitelyOftenPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInfinitelyOftenPatternAdapter() {
		if (infinitelyOftenPatternItemProvider == null) {
			infinitelyOftenPatternItemProvider = new InfinitelyOftenPatternItemProvider(this);
		}

		return infinitelyOftenPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.MortalPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MortalPatternItemProvider mortalPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.MortalPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMortalPatternAdapter() {
		if (mortalPatternItemProvider == null) {
			mortalPatternItemProvider = new MortalPatternItemProvider(this);
		}

		return mortalPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PresencePattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PresencePatternItemProvider presencePatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PresencePattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPresencePatternAdapter() {
		if (presencePatternItemProvider == null) {
			presencePatternItemProvider = new PresencePatternItemProvider(this);
		}

		return presencePatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AbsencePatternItemProvider absencePatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AbsencePattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAbsencePatternAdapter() {
		if (absencePatternItemProvider == null) {
			absencePatternItemProvider = new AbsencePatternItemProvider(this);
		}

		return absencePatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AlwaysPatternItemProvider alwaysPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AlwaysPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAlwaysPatternAdapter() {
		if (alwaysPatternItemProvider == null) {
			alwaysPatternItemProvider = new AlwaysPatternItemProvider(this);
		}

		return alwaysPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SequencePattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SequencePatternItemProvider sequencePatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SequencePattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSequencePatternAdapter() {
		if (sequencePatternItemProvider == null) {
			sequencePatternItemProvider = new SequencePatternItemProvider(this);
		}

		return sequencePatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLProperty} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLPropertyItemProvider ltlPropertyItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLProperty}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLPropertyAdapter() {
		if (ltlPropertyItemProvider == null) {
			ltlPropertyItemProvider = new LTLPropertyItemProvider(this);
		}

		return ltlPropertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateEventItemProvider stateEventItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateEventAdapter() {
		if (stateEventItemProvider == null) {
			stateEventItemProvider = new StateEventItemProvider(this);
		}

		return stateEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnterStateEventItemProvider enterStateEventItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EnterStateEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnterStateEventAdapter() {
		if (enterStateEventItemProvider == null) {
			enterStateEventItemProvider = new EnterStateEventItemProvider(this);
		}

		return enterStateEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LeaveStateEventItemProvider leaveStateEventItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeaveStateEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLeaveStateEventAdapter() {
		if (leaveStateEventItemProvider == null) {
			leaveStateEventItemProvider = new LeaveStateEventItemProvider(this);
		}

		return leaveStateEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Observable} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableItemProvider observableItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Observable}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableAdapter() {
		if (observableItemProvider == null) {
			observableItemProvider = new ObservableItemProvider(this);
		}

		return observableItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableEventItemProvider observableEventItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableEventAdapter() {
		if (observableEventItemProvider == null) {
			observableEventItemProvider = new ObservableEventItemProvider(this);
		}

		return observableEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PathEventItemProvider pathEventItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPathEventAdapter() {
		if (pathEventItemProvider == null) {
			pathEventItemProvider = new PathEventItemProvider(this);
		}

		return pathEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Path} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PathItemProvider pathItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Path}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPathAdapter() {
		if (pathItemProvider == null) {
			pathItemProvider = new PathItemProvider(this);
		}

		return pathItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PathItem} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PathItemItemProvider pathItemItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PathItem}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPathItemAdapter() {
		if (pathItemItemProvider == null) {
			pathItemItemProvider = new PathItemItemProvider(this);
		}

		return pathItemItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalItem} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NaturalItemItemProvider naturalItemItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalItem}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNaturalItemAdapter() {
		if (naturalItemItemProvider == null) {
			naturalItemItemProvider = new NaturalItemItemProvider(this);
		}

		return naturalItemItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NamedItem} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamedItemItemProvider namedItemItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NamedItem}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamedItemAdapter() {
		if (namedItemItemProvider == null) {
			namedItemItemProvider = new NamedItemItemProvider(this);
		}

		return namedItemItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Subject} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubjectItemProvider subjectItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Subject}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubjectAdapter() {
		if (subjectItemProvider == null) {
			subjectItemProvider = new SubjectItemProvider(this);
		}

		return subjectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StateSubject} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateSubjectItemProvider stateSubjectItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StateSubject}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateSubjectAdapter() {
		if (stateSubjectItemProvider == null) {
			stateSubjectItemProvider = new StateSubjectItemProvider(this);
		}

		return stateSubjectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ValueSubject} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ValueSubjectItemProvider valueSubjectItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ValueSubject}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createValueSubjectAdapter() {
		if (valueSubjectItemProvider == null) {
			valueSubjectItemProvider = new ValueSubjectItemProvider(this);
		}

		return valueSubjectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TagSubject} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TagSubjectItemProvider tagSubjectItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TagSubject}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTagSubjectAdapter() {
		if (tagSubjectItemProvider == null) {
			tagSubjectItemProvider = new TagSubjectItemProvider(this);
		}

		return tagSubjectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.EventSubject} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventSubjectItemProvider eventSubjectItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.EventSubject}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventSubjectAdapter() {
		if (eventSubjectItemProvider == null) {
			eventSubjectItemProvider = new EventSubjectItemProvider(this);
		}

		return eventSubjectItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TupleType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TupleTypeItemProvider tupleTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TupleType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTupleTypeAdapter() {
		if (tupleTypeItemProvider == null) {
			tupleTypeItemProvider = new TupleTypeItemProvider(this);
		}

		return tupleTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.NaturalType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NaturalTypeItemProvider naturalTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.NaturalType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNaturalTypeAdapter() {
		if (naturalTypeItemProvider == null) {
			naturalTypeItemProvider = new NaturalTypeItemProvider(this);
		}

		return naturalTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.IntegerType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IntegerTypeItemProvider integerTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.IntegerType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIntegerTypeAdapter() {
		if (integerTypeItemProvider == null) {
			integerTypeItemProvider = new IntegerTypeItemProvider(this);
		}

		return integerTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.BooleanType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BooleanTypeItemProvider booleanTypeItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.BooleanType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBooleanTypeAdapter() {
		if (booleanTypeItemProvider == null) {
			booleanTypeItemProvider = new BooleanTypeItemProvider(this);
		}

		return booleanTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnlessStatementItemProvider unlessStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnlessStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnlessStatementAdapter() {
		if (unlessStatementItemProvider == null) {
			unlessStatementItemProvider = new UnlessStatementItemProvider(this);
		}

		return unlessStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StatementChoice} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StatementChoiceItemProvider statementChoiceItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementChoice}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStatementChoiceAdapter() {
		if (statementChoiceItemProvider == null) {
			statementChoiceItemProvider = new StatementChoiceItemProvider(this);
		}

		return statementChoiceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.StatementSequence} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StatementSequenceItemProvider statementSequenceItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.StatementSequence}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStatementSequenceAdapter() {
		if (statementSequenceItemProvider == null) {
			statementSequenceItemProvider = new StatementSequenceItemProvider(this);
		}

		return statementSequenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AssignStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssignStatementItemProvider assignStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssignStatementAdapter() {
		if (assignStatementItemProvider == null) {
			assignStatementItemProvider = new AssignStatementItemProvider(this);
		}

		return assignStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssignAnyStatementItemProvider assignAnyStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AssignAnyStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssignAnyStatementAdapter() {
		if (assignAnyStatementItemProvider == null) {
			assignAnyStatementItemProvider = new AssignAnyStatementItemProvider(this);
		}

		return assignAnyStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.SendStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SendStatementItemProvider sendStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.SendStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSendStatementAdapter() {
		if (sendStatementItemProvider == null) {
			sendStatementItemProvider = new SendStatementItemProvider(this);
		}

		return sendStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReceiveStatementItemProvider receiveStatementItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ReceiveStatement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReceiveStatementAdapter() {
		if (receiveStatementItemProvider == null) {
			receiveStatementItemProvider = new ReceiveStatementItemProvider(this);
		}

		return receiveStatementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstructorPatternItemProvider constructorPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructorPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstructorPatternAdapter() {
		if (constructorPatternItemProvider == null) {
			constructorPatternItemProvider = new ConstructorPatternItemProvider(this);
		}

		return constructorPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayAccessPatternItemProvider arrayAccessPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayAccessPatternAdapter() {
		if (arrayAccessPatternItemProvider == null) {
			arrayAccessPatternItemProvider = new ArrayAccessPatternItemProvider(this);
		}

		return arrayAccessPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordAccessPatternItemProvider recordAccessPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordAccessPatternAdapter() {
		if (recordAccessPatternItemProvider == null) {
			recordAccessPatternItemProvider = new RecordAccessPatternItemProvider(this);
		}

		return recordAccessPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AllExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllExpressionItemProvider allExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllExpressionAdapter() {
		if (allExpressionItemProvider == null) {
			allExpressionItemProvider = new AllExpressionItemProvider(this);
		}

		return allExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExistsExpressionItemProvider existsExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExistsExpressionAdapter() {
		if (existsExpressionItemProvider == null) {
			existsExpressionItemProvider = new ExistsExpressionItemProvider(this);
		}

		return existsExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Conditional} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConditionalItemProvider conditionalItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conditional}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConditionalAdapter() {
		if (conditionalItemProvider == null) {
			conditionalItemProvider = new ConditionalItemProvider(this);
		}

		return conditionalItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Disjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DisjunctionItemProvider disjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Disjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDisjunctionAdapter() {
		if (disjunctionItemProvider == null) {
			disjunctionItemProvider = new DisjunctionItemProvider(this);
		}

		return disjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Implication} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ImplicationItemProvider implicationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Implication}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createImplicationAdapter() {
		if (implicationItemProvider == null) {
			implicationItemProvider = new ImplicationItemProvider(this);
		}

		return implicationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Conjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConjunctionItemProvider conjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Conjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConjunctionAdapter() {
		if (conjunctionItemProvider == null) {
			conjunctionItemProvider = new ConjunctionItemProvider(this);
		}

		return conjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonEqualItemProvider comparisonEqualItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonEqual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonEqualAdapter() {
		if (comparisonEqualItemProvider == null) {
			comparisonEqualItemProvider = new ComparisonEqualItemProvider(this);
		}

		return comparisonEqualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonNotEqualItemProvider comparisonNotEqualItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonNotEqual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonNotEqualAdapter() {
		if (comparisonNotEqualItemProvider == null) {
			comparisonNotEqualItemProvider = new ComparisonNotEqualItemProvider(this);
		}

		return comparisonNotEqualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonLesserItemProvider comparisonLesserItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesser}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonLesserAdapter() {
		if (comparisonLesserItemProvider == null) {
			comparisonLesserItemProvider = new ComparisonLesserItemProvider(this);
		}

		return comparisonLesserItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonLesserEqualItemProvider comparisonLesserEqualItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonLesserEqual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonLesserEqualAdapter() {
		if (comparisonLesserEqualItemProvider == null) {
			comparisonLesserEqualItemProvider = new ComparisonLesserEqualItemProvider(this);
		}

		return comparisonLesserEqualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonGreaterItemProvider comparisonGreaterItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreater}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonGreaterAdapter() {
		if (comparisonGreaterItemProvider == null) {
			comparisonGreaterItemProvider = new ComparisonGreaterItemProvider(this);
		}

		return comparisonGreaterItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComparisonGreaterEqualItemProvider comparisonGreaterEqualItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ComparisonGreaterEqual}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createComparisonGreaterEqualAdapter() {
		if (comparisonGreaterEqualItemProvider == null) {
			comparisonGreaterEqualItemProvider = new ComparisonGreaterEqualItemProvider(this);
		}

		return comparisonGreaterEqualItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Addition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AdditionItemProvider additionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Addition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAdditionAdapter() {
		if (additionItemProvider == null) {
			additionItemProvider = new AdditionItemProvider(this);
		}

		return additionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Substraction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubstractionItemProvider substractionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Substraction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubstractionAdapter() {
		if (substractionItemProvider == null) {
			substractionItemProvider = new SubstractionItemProvider(this);
		}

		return substractionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Multiplication} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MultiplicationItemProvider multiplicationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Multiplication}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMultiplicationAdapter() {
		if (multiplicationItemProvider == null) {
			multiplicationItemProvider = new MultiplicationItemProvider(this);
		}

		return multiplicationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Division} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DivisionItemProvider divisionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Division}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDivisionAdapter() {
		if (divisionItemProvider == null) {
			divisionItemProvider = new DivisionItemProvider(this);
		}

		return divisionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Modulo} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ModuloItemProvider moduloItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Modulo}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createModuloAdapter() {
		if (moduloItemProvider == null) {
			moduloItemProvider = new ModuloItemProvider(this);
		}

		return moduloItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryPlusExpressionItemProvider unaryPlusExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryPlusExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryPlusExpressionAdapter() {
		if (unaryPlusExpressionItemProvider == null) {
			unaryPlusExpressionItemProvider = new UnaryPlusExpressionItemProvider(this);
		}

		return unaryPlusExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryMinusExpressionItemProvider unaryMinusExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryMinusExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryMinusExpressionAdapter() {
		if (unaryMinusExpressionItemProvider == null) {
			unaryMinusExpressionItemProvider = new UnaryMinusExpressionItemProvider(this);
		}

		return unaryMinusExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryNegationExpressionItemProvider unaryNegationExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryNegationExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryNegationExpressionAdapter() {
		if (unaryNegationExpressionItemProvider == null) {
			unaryNegationExpressionItemProvider = new UnaryNegationExpressionItemProvider(this);
		}

		return unaryNegationExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryFirstExpressionItemProvider unaryFirstExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFirstExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryFirstExpressionAdapter() {
		if (unaryFirstExpressionItemProvider == null) {
			unaryFirstExpressionItemProvider = new UnaryFirstExpressionItemProvider(this);
		}

		return unaryFirstExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryLengthExpressionItemProvider unaryLengthExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryLengthExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryLengthExpressionAdapter() {
		if (unaryLengthExpressionItemProvider == null) {
			unaryLengthExpressionItemProvider = new UnaryLengthExpressionItemProvider(this);
		}

		return unaryLengthExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryCoerceExpressionItemProvider unaryCoerceExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryCoerceExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryCoerceExpressionAdapter() {
		if (unaryCoerceExpressionItemProvider == null) {
			unaryCoerceExpressionItemProvider = new UnaryCoerceExpressionItemProvider(this);
		}

		return unaryCoerceExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryFullExpressionItemProvider unaryFullExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryFullExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryFullExpressionAdapter() {
		if (unaryFullExpressionItemProvider == null) {
			unaryFullExpressionItemProvider = new UnaryFullExpressionItemProvider(this);
		}

		return unaryFullExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryDeQueueExpressionItemProvider unaryDeQueueExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryDeQueueExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryDeQueueExpressionAdapter() {
		if (unaryDeQueueExpressionItemProvider == null) {
			unaryDeQueueExpressionItemProvider = new UnaryDeQueueExpressionItemProvider(this);
		}

		return unaryDeQueueExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnaryEmptyExpressionItemProvider unaryEmptyExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.UnaryEmptyExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnaryEmptyExpressionAdapter() {
		if (unaryEmptyExpressionItemProvider == null) {
			unaryEmptyExpressionItemProvider = new UnaryEmptyExpressionItemProvider(this);
		}

		return unaryEmptyExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.Projection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProjectionItemProvider projectionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.Projection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProjectionAdapter() {
		if (projectionItemProvider == null) {
			projectionItemProvider = new ProjectionItemProvider(this);
		}

		return projectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstructionExpressionItemProvider constructionExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ConstructionExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstructionExpressionAdapter() {
		if (constructionExpressionItemProvider == null) {
			constructionExpressionItemProvider = new ConstructionExpressionItemProvider(this);
		}

		return constructionExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ArrayAccessExpressionItemProvider arrayAccessExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ArrayAccessExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createArrayAccessExpressionAdapter() {
		if (arrayAccessExpressionItemProvider == null) {
			arrayAccessExpressionItemProvider = new ArrayAccessExpressionItemProvider(this);
		}

		return arrayAccessExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RecordAccessExpressionItemProvider recordAccessExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.RecordAccessExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRecordAccessExpressionAdapter() {
		if (recordAccessExpressionItemProvider == null) {
			recordAccessExpressionItemProvider = new RecordAccessExpressionItemProvider(this);
		}

		return recordAccessExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.TrueLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TrueLiteralItemProvider trueLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.TrueLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTrueLiteralAdapter() {
		if (trueLiteralItemProvider == null) {
			trueLiteralItemProvider = new TrueLiteralItemProvider(this);
		}

		return trueLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.FalseLiteral} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FalseLiteralItemProvider falseLiteralItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.FalseLiteral}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFalseLiteralAdapter() {
		if (falseLiteralItemProvider == null) {
			falseLiteralItemProvider = new FalseLiteralItemProvider(this);
		}

		return falseLiteralItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.AllProperty} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllPropertyItemProvider allPropertyItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.AllProperty}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllPropertyAdapter() {
		if (allPropertyItemProvider == null) {
			allPropertyItemProvider = new AllPropertyItemProvider(this);
		}

		return allPropertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExistsPropertyItemProvider existsPropertyItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ExistsProperty}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExistsPropertyAdapter() {
		if (existsPropertyItemProvider == null) {
			existsPropertyItemProvider = new ExistsPropertyItemProvider(this);
		}

		return existsPropertyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyDisjunctionItemProvider propertyDisjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyDisjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyDisjunctionAdapter() {
		if (propertyDisjunctionItemProvider == null) {
			propertyDisjunctionItemProvider = new PropertyDisjunctionItemProvider(this);
		}

		return propertyDisjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyImplicationItemProvider propertyImplicationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyImplication}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyImplicationAdapter() {
		if (propertyImplicationItemProvider == null) {
			propertyImplicationItemProvider = new PropertyImplicationItemProvider(this);
		}

		return propertyImplicationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyConjunctionItemProvider propertyConjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyConjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyConjunctionAdapter() {
		if (propertyConjunctionItemProvider == null) {
			propertyConjunctionItemProvider = new PropertyConjunctionItemProvider(this);
		}

		return propertyConjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PropertyNegationItemProvider propertyNegationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PropertyNegation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPropertyNegationAdapter() {
		if (propertyNegationItemProvider == null) {
			propertyNegationItemProvider = new PropertyNegationItemProvider(this);
		}

		return propertyNegationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LeadsToPatternItemProvider leadsToPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LeadsToPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLeadsToPatternAdapter() {
		if (leadsToPatternItemProvider == null) {
			leadsToPatternItemProvider = new LeadsToPatternItemProvider(this);
		}

		return leadsToPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PrecedesPatternItemProvider precedesPatternItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.PrecedesPattern}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPrecedesPatternAdapter() {
		if (precedesPatternItemProvider == null) {
			precedesPatternItemProvider = new PrecedesPatternItemProvider(this);
		}

		return precedesPatternItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLAll} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLAllItemProvider ltlAllItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLAll}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLAllAdapter() {
		if (ltlAllItemProvider == null) {
			ltlAllItemProvider = new LTLAllItemProvider(this);
		}

		return ltlAllItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLExists} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLExistsItemProvider ltlExistsItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLExists}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLExistsAdapter() {
		if (ltlExistsItemProvider == null) {
			ltlExistsItemProvider = new LTLExistsItemProvider(this);
		}

		return ltlExistsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLDisjunctionItemProvider ltlDisjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLDisjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLDisjunctionAdapter() {
		if (ltlDisjunctionItemProvider == null) {
			ltlDisjunctionItemProvider = new LTLDisjunctionItemProvider(this);
		}

		return ltlDisjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLImplication} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLImplicationItemProvider ltlImplicationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLImplication}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLImplicationAdapter() {
		if (ltlImplicationItemProvider == null) {
			ltlImplicationItemProvider = new LTLImplicationItemProvider(this);
		}

		return ltlImplicationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLConjunctionItemProvider ltlConjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLConjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLConjunctionAdapter() {
		if (ltlConjunctionItemProvider == null) {
			ltlConjunctionItemProvider = new LTLConjunctionItemProvider(this);
		}

		return ltlConjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUntil} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLUntilItemProvider ltlUntilItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUntil}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLUntilAdapter() {
		if (ltlUntilItemProvider == null) {
			ltlUntilItemProvider = new LTLUntilItemProvider(this);
		}

		return ltlUntilItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLRelease} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLReleaseItemProvider ltlReleaseItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLRelease}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLReleaseAdapter() {
		if (ltlReleaseItemProvider == null) {
			ltlReleaseItemProvider = new LTLReleaseItemProvider(this);
		}

		return ltlReleaseItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLUnaryNegationItemProvider ltlUnaryNegationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNegation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLUnaryNegationAdapter() {
		if (ltlUnaryNegationItemProvider == null) {
			ltlUnaryNegationItemProvider = new LTLUnaryNegationItemProvider(this);
		}

		return ltlUnaryNegationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLUnaryNextItemProvider ltlUnaryNextItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryNext}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLUnaryNextAdapter() {
		if (ltlUnaryNextItemProvider == null) {
			ltlUnaryNextItemProvider = new LTLUnaryNextItemProvider(this);
		}

		return ltlUnaryNextItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLUnaryAlwaysItemProvider ltlUnaryAlwaysItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryAlways}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLUnaryAlwaysAdapter() {
		if (ltlUnaryAlwaysItemProvider == null) {
			ltlUnaryAlwaysItemProvider = new LTLUnaryAlwaysItemProvider(this);
		}

		return ltlUnaryAlwaysItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLUnaryEventuallyItemProvider ltlUnaryEventuallyItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLUnaryEventually}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLUnaryEventuallyAdapter() {
		if (ltlUnaryEventuallyItemProvider == null) {
			ltlUnaryEventuallyItemProvider = new LTLUnaryEventuallyItemProvider(this);
		}

		return ltlUnaryEventuallyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.LTLVariable} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LTLVariableItemProvider ltlVariableItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.LTLVariable}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLTLVariableAdapter() {
		if (ltlVariableItemProvider == null) {
			ltlVariableItemProvider = new LTLVariableItemProvider(this);
		}

		return ltlVariableItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableDisjunctionItemProvider observableDisjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableDisjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableDisjunctionAdapter() {
		if (observableDisjunctionItemProvider == null) {
			observableDisjunctionItemProvider = new ObservableDisjunctionItemProvider(this);
		}

		return observableDisjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableImplicationItemProvider observableImplicationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableImplication}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableImplicationAdapter() {
		if (observableImplicationItemProvider == null) {
			observableImplicationItemProvider = new ObservableImplicationItemProvider(this);
		}

		return observableImplicationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableConjunctionItemProvider observableConjunctionItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableConjunction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableConjunctionAdapter() {
		if (observableConjunctionItemProvider == null) {
			observableConjunctionItemProvider = new ObservableConjunctionItemProvider(this);
		}

		return observableConjunctionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObservableNegationItemProvider observableNegationItemProvider;

	/**
	 * This creates an adapter for a {@link fr.irit.fiacre.xtext.fiacre.ObservableNegation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObservableNegationAdapter() {
		if (observableNegationItemProvider == null) {
			observableNegationItemProvider = new ObservableNegationItemProvider(this);
		}

		return observableNegationItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	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
	 */
	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
	 */
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

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

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	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
	 */
	public void dispose() {
		if (modelItemProvider != null) modelItemProvider.dispose();
		if (rootDeclarationItemProvider != null) rootDeclarationItemProvider.dispose();
		if (rootItemProvider != null) rootItemProvider.dispose();
		if (namedElementItemProvider != null) namedElementItemProvider.dispose();
		if (typeDeclarationUseItemProvider != null) typeDeclarationUseItemProvider.dispose();
		if (constantDeclarationUseItemProvider != null) constantDeclarationUseItemProvider.dispose();
		if (expressionDeclarationUseItemProvider != null) expressionDeclarationUseItemProvider.dispose();
		if (referenceDeclarationUseItemProvider != null) referenceDeclarationUseItemProvider.dispose();
		if (unionTagDeclarationUseItemProvider != null) unionTagDeclarationUseItemProvider.dispose();
		if (recordFieldDeclarationUseItemProvider != null) recordFieldDeclarationUseItemProvider.dispose();
		if (patternDeclarationUseItemProvider != null) patternDeclarationUseItemProvider.dispose();
		if (boundDeclarationUseItemProvider != null) boundDeclarationUseItemProvider.dispose();
		if (pathDeclarationUseItemProvider != null) pathDeclarationUseItemProvider.dispose();
		if (propertyDeclarationUseItemProvider != null) propertyDeclarationUseItemProvider.dispose();
		if (importDeclarationItemProvider != null) importDeclarationItemProvider.dispose();
		if (declarationItemProvider != null) declarationItemProvider.dispose();
		if (parameterizedDeclarationItemProvider != null) parameterizedDeclarationItemProvider.dispose();
		if (functionDeclarationItemProvider != null) functionDeclarationItemProvider.dispose();
		if (typeDeclarationItemProvider != null) typeDeclarationItemProvider.dispose();
		if (channelDeclarationItemProvider != null) channelDeclarationItemProvider.dispose();
		if (channelTypeItemProvider != null) channelTypeItemProvider.dispose();
		if (typeItemProvider != null) typeItemProvider.dispose();
		if (basicTypeItemProvider != null) basicTypeItemProvider.dispose();
		if (rangeTypeItemProvider != null) rangeTypeItemProvider.dispose();
		if (unionTypeItemProvider != null) unionTypeItemProvider.dispose();
		if (unionTagsItemProvider != null) unionTagsItemProvider.dispose();
		if (unionTagDeclarationItemProvider != null) unionTagDeclarationItemProvider.dispose();
		if (recordTypeItemProvider != null) recordTypeItemProvider.dispose();
		if (recordFieldsItemProvider != null) recordFieldsItemProvider.dispose();
		if (recordFieldDeclarationItemProvider != null) recordFieldDeclarationItemProvider.dispose();
		if (queueTypeItemProvider != null) queueTypeItemProvider.dispose();
		if (arrayTypeItemProvider != null) arrayTypeItemProvider.dispose();
		if (referencedTypeItemProvider != null) referencedTypeItemProvider.dispose();
		if (constantDeclarationItemProvider != null) constantDeclarationItemProvider.dispose();
		if (processDeclarationItemProvider != null) processDeclarationItemProvider.dispose();
		if (stateDeclarationItemProvider != null) stateDeclarationItemProvider.dispose();
		if (transitionSourceItemProvider != null) transitionSourceItemProvider.dispose();
		if (transitionItemProvider != null) transitionItemProvider.dispose();
		if (componentDeclarationItemProvider != null) componentDeclarationItemProvider.dispose();
		if (portsDeclarationItemProvider != null) portsDeclarationItemProvider.dispose();
		if (portDeclarationItemProvider != null) portDeclarationItemProvider.dispose();
		if (localPortsDeclarationItemProvider != null) localPortsDeclarationItemProvider.dispose();
		if (parametersDeclarationItemProvider != null) parametersDeclarationItemProvider.dispose();
		if (parameterDeclarationItemProvider != null) parameterDeclarationItemProvider.dispose();
		if (variablesDeclarationItemProvider != null) variablesDeclarationItemProvider.dispose();
		if (variableDeclarationItemProvider != null) variableDeclarationItemProvider.dispose();
		if (priorityDeclarationItemProvider != null) priorityDeclarationItemProvider.dispose();
		if (priorityGroupItemProvider != null) priorityGroupItemProvider.dispose();
		if (statementItemProvider != null) statementItemProvider.dispose();
		if (blockStatementItemProvider != null) blockStatementItemProvider.dispose();
		if (returnStatementItemProvider != null) returnStatementItemProvider.dispose();
		if (nullStatementItemProvider != null) nullStatementItemProvider.dispose();
		if (taggedStatementItemProvider != null) taggedStatementItemProvider.dispose();
		if (patternStatementItemProvider != null) patternStatementItemProvider.dispose();
		if (patternItemProvider != null) patternItemProvider.dispose();
		if (anyPatternItemProvider != null) anyPatternItemProvider.dispose();
		if (constantPatternItemProvider != null) constantPatternItemProvider.dispose();
		if (integerPatternItemProvider != null) integerPatternItemProvider.dispose();
		if (identifierPatternItemProvider != null) identifierPatternItemProvider.dispose();
		if (conditionalStatementItemProvider != null) conditionalStatementItemProvider.dispose();
		if (extendedConditionalStatementItemProvider != null) extendedConditionalStatementItemProvider.dispose();
		if (selectStatementItemProvider != null) selectStatementItemProvider.dispose();
		if (whileStatementItemProvider != null) whileStatementItemProvider.dispose();
		if (foreachStatementItemProvider != null) foreachStatementItemProvider.dispose();
		if (toStatementItemProvider != null) toStatementItemProvider.dispose();
		if (caseStatementItemProvider != null) caseStatementItemProvider.dispose();
		if (loopStatementItemProvider != null) loopStatementItemProvider.dispose();
		if (onStatementItemProvider != null) onStatementItemProvider.dispose();
		if (waitStatementItemProvider != null) waitStatementItemProvider.dispose();
		if (compositionItemProvider != null) compositionItemProvider.dispose();
		if (blockItemProvider != null) blockItemProvider.dispose();
		if (compositeBlockItemProvider != null) compositeBlockItemProvider.dispose();
		if (instanceDeclarationItemProvider != null) instanceDeclarationItemProvider.dispose();
		if (portSetItemProvider != null) portSetItemProvider.dispose();
		if (componentInstanceItemProvider != null) componentInstanceItemProvider.dispose();
		if (expressionItemProvider != null) expressionItemProvider.dispose();
		if (valueExpressionItemProvider != null) valueExpressionItemProvider.dispose();
		if (referenceExpressionItemProvider != null) referenceExpressionItemProvider.dispose();
		if (identifierExpressionItemProvider != null) identifierExpressionItemProvider.dispose();
		if (recordExpressionItemProvider != null) recordExpressionItemProvider.dispose();
		if (fieldExpressionItemProvider != null) fieldExpressionItemProvider.dispose();
		if (arrayExpressionItemProvider != null) arrayExpressionItemProvider.dispose();
		if (queueExpressionItemProvider != null) queueExpressionItemProvider.dispose();
		if (enqueueExpressionItemProvider != null) enqueueExpressionItemProvider.dispose();
		if (appendExpressionItemProvider != null) appendExpressionItemProvider.dispose();
		if (literalExpressionItemProvider != null) literalExpressionItemProvider.dispose();
		if (booleanLiteralItemProvider != null) booleanLiteralItemProvider.dispose();
		if (naturalLiteralItemProvider != null) naturalLiteralItemProvider.dispose();
		if (lowerBoundItemProvider != null) lowerBoundItemProvider.dispose();
		if (upperBoundItemProvider != null) upperBoundItemProvider.dispose();
		if (naturalLowerBoundItemProvider != null) naturalLowerBoundItemProvider.dispose();
		if (naturalUpperBoundItemProvider != null) naturalUpperBoundItemProvider.dispose();
		if (decimalLowerBoundItemProvider != null) decimalLowerBoundItemProvider.dispose();
		if (decimalUpperBoundItemProvider != null) decimalUpperBoundItemProvider.dispose();
		if (variableLowerBoundItemProvider != null) variableLowerBoundItemProvider.dispose();
		if (variableUpperBoundItemProvider != null) variableUpperBoundItemProvider.dispose();
		if (infiniteUpperBoundItemProvider != null) infiniteUpperBoundItemProvider.dispose();
		if (requirementItemProvider != null) requirementItemProvider.dispose();
		if (propertyDeclarationItemProvider != null) propertyDeclarationItemProvider.dispose();
		if (propertyItemProvider != null) propertyItemProvider.dispose();
		if (patternPropertyItemProvider != null) patternPropertyItemProvider.dispose();
		if (ltlPatternItemProvider != null) ltlPatternItemProvider.dispose();
		if (deadlockFreePatternItemProvider != null) deadlockFreePatternItemProvider.dispose();
		if (infinitelyOftenPatternItemProvider != null) infinitelyOftenPatternItemProvider.dispose();
		if (mortalPatternItemProvider != null) mortalPatternItemProvider.dispose();
		if (presencePatternItemProvider != null) presencePatternItemProvider.dispose();
		if (absencePatternItemProvider != null) absencePatternItemProvider.dispose();
		if (alwaysPatternItemProvider != null) alwaysPatternItemProvider.dispose();
		if (sequencePatternItemProvider != null) sequencePatternItemProvider.dispose();
		if (ltlPropertyItemProvider != null) ltlPropertyItemProvider.dispose();
		if (stateEventItemProvider != null) stateEventItemProvider.dispose();
		if (enterStateEventItemProvider != null) enterStateEventItemProvider.dispose();
		if (leaveStateEventItemProvider != null) leaveStateEventItemProvider.dispose();
		if (observableItemProvider != null) observableItemProvider.dispose();
		if (observableEventItemProvider != null) observableEventItemProvider.dispose();
		if (pathEventItemProvider != null) pathEventItemProvider.dispose();
		if (pathItemProvider != null) pathItemProvider.dispose();
		if (pathItemItemProvider != null) pathItemItemProvider.dispose();
		if (naturalItemItemProvider != null) naturalItemItemProvider.dispose();
		if (namedItemItemProvider != null) namedItemItemProvider.dispose();
		if (subjectItemProvider != null) subjectItemProvider.dispose();
		if (stateSubjectItemProvider != null) stateSubjectItemProvider.dispose();
		if (valueSubjectItemProvider != null) valueSubjectItemProvider.dispose();
		if (tagSubjectItemProvider != null) tagSubjectItemProvider.dispose();
		if (eventSubjectItemProvider != null) eventSubjectItemProvider.dispose();
		if (tupleTypeItemProvider != null) tupleTypeItemProvider.dispose();
		if (naturalTypeItemProvider != null) naturalTypeItemProvider.dispose();
		if (integerTypeItemProvider != null) integerTypeItemProvider.dispose();
		if (booleanTypeItemProvider != null) booleanTypeItemProvider.dispose();
		if (unlessStatementItemProvider != null) unlessStatementItemProvider.dispose();
		if (statementChoiceItemProvider != null) statementChoiceItemProvider.dispose();
		if (statementSequenceItemProvider != null) statementSequenceItemProvider.dispose();
		if (assignStatementItemProvider != null) assignStatementItemProvider.dispose();
		if (assignAnyStatementItemProvider != null) assignAnyStatementItemProvider.dispose();
		if (sendStatementItemProvider != null) sendStatementItemProvider.dispose();
		if (receiveStatementItemProvider != null) receiveStatementItemProvider.dispose();
		if (constructorPatternItemProvider != null) constructorPatternItemProvider.dispose();
		if (arrayAccessPatternItemProvider != null) arrayAccessPatternItemProvider.dispose();
		if (recordAccessPatternItemProvider != null) recordAccessPatternItemProvider.dispose();
		if (allExpressionItemProvider != null) allExpressionItemProvider.dispose();
		if (existsExpressionItemProvider != null) existsExpressionItemProvider.dispose();
		if (conditionalItemProvider != null) conditionalItemProvider.dispose();
		if (disjunctionItemProvider != null) disjunctionItemProvider.dispose();
		if (implicationItemProvider != null) implicationItemProvider.dispose();
		if (conjunctionItemProvider != null) conjunctionItemProvider.dispose();
		if (comparisonEqualItemProvider != null) comparisonEqualItemProvider.dispose();
		if (comparisonNotEqualItemProvider != null) comparisonNotEqualItemProvider.dispose();
		if (comparisonLesserItemProvider != null) comparisonLesserItemProvider.dispose();
		if (comparisonLesserEqualItemProvider != null) comparisonLesserEqualItemProvider.dispose();
		if (comparisonGreaterItemProvider != null) comparisonGreaterItemProvider.dispose();
		if (comparisonGreaterEqualItemProvider != null) comparisonGreaterEqualItemProvider.dispose();
		if (additionItemProvider != null) additionItemProvider.dispose();
		if (substractionItemProvider != null) substractionItemProvider.dispose();
		if (multiplicationItemProvider != null) multiplicationItemProvider.dispose();
		if (divisionItemProvider != null) divisionItemProvider.dispose();
		if (moduloItemProvider != null) moduloItemProvider.dispose();
		if (unaryPlusExpressionItemProvider != null) unaryPlusExpressionItemProvider.dispose();
		if (unaryMinusExpressionItemProvider != null) unaryMinusExpressionItemProvider.dispose();
		if (unaryNegationExpressionItemProvider != null) unaryNegationExpressionItemProvider.dispose();
		if (unaryFirstExpressionItemProvider != null) unaryFirstExpressionItemProvider.dispose();
		if (unaryLengthExpressionItemProvider != null) unaryLengthExpressionItemProvider.dispose();
		if (unaryCoerceExpressionItemProvider != null) unaryCoerceExpressionItemProvider.dispose();
		if (unaryFullExpressionItemProvider != null) unaryFullExpressionItemProvider.dispose();
		if (unaryDeQueueExpressionItemProvider != null) unaryDeQueueExpressionItemProvider.dispose();
		if (unaryEmptyExpressionItemProvider != null) unaryEmptyExpressionItemProvider.dispose();
		if (projectionItemProvider != null) projectionItemProvider.dispose();
		if (constructionExpressionItemProvider != null) constructionExpressionItemProvider.dispose();
		if (arrayAccessExpressionItemProvider != null) arrayAccessExpressionItemProvider.dispose();
		if (recordAccessExpressionItemProvider != null) recordAccessExpressionItemProvider.dispose();
		if (trueLiteralItemProvider != null) trueLiteralItemProvider.dispose();
		if (falseLiteralItemProvider != null) falseLiteralItemProvider.dispose();
		if (allPropertyItemProvider != null) allPropertyItemProvider.dispose();
		if (existsPropertyItemProvider != null) existsPropertyItemProvider.dispose();
		if (propertyDisjunctionItemProvider != null) propertyDisjunctionItemProvider.dispose();
		if (propertyImplicationItemProvider != null) propertyImplicationItemProvider.dispose();
		if (propertyConjunctionItemProvider != null) propertyConjunctionItemProvider.dispose();
		if (propertyNegationItemProvider != null) propertyNegationItemProvider.dispose();
		if (leadsToPatternItemProvider != null) leadsToPatternItemProvider.dispose();
		if (precedesPatternItemProvider != null) precedesPatternItemProvider.dispose();
		if (ltlAllItemProvider != null) ltlAllItemProvider.dispose();
		if (ltlExistsItemProvider != null) ltlExistsItemProvider.dispose();
		if (ltlDisjunctionItemProvider != null) ltlDisjunctionItemProvider.dispose();
		if (ltlImplicationItemProvider != null) ltlImplicationItemProvider.dispose();
		if (ltlConjunctionItemProvider != null) ltlConjunctionItemProvider.dispose();
		if (ltlUntilItemProvider != null) ltlUntilItemProvider.dispose();
		if (ltlReleaseItemProvider != null) ltlReleaseItemProvider.dispose();
		if (ltlUnaryNegationItemProvider != null) ltlUnaryNegationItemProvider.dispose();
		if (ltlUnaryNextItemProvider != null) ltlUnaryNextItemProvider.dispose();
		if (ltlUnaryAlwaysItemProvider != null) ltlUnaryAlwaysItemProvider.dispose();
		if (ltlUnaryEventuallyItemProvider != null) ltlUnaryEventuallyItemProvider.dispose();
		if (ltlVariableItemProvider != null) ltlVariableItemProvider.dispose();
		if (observableDisjunctionItemProvider != null) observableDisjunctionItemProvider.dispose();
		if (observableImplicationItemProvider != null) observableImplicationItemProvider.dispose();
		if (observableConjunctionItemProvider != null) observableConjunctionItemProvider.dispose();
		if (observableNegationItemProvider != null) observableNegationItemProvider.dispose();
	}

}
