/**
 */
package dsl.provider;

import dsl.util.DslAdapterFactory;

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 DslItemProviderAdapterFactory extends DslAdapterFactory 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 DslItemProviderAdapterFactory() {
		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 dsl.ProblemSpecification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProblemSpecificationItemProvider problemSpecificationItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.ProblemSpecification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProblemSpecificationAdapter() {
		if (problemSpecificationItemProvider == null) {
			problemSpecificationItemProvider = new ProblemSpecificationItemProvider(this);
		}

		return problemSpecificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.WorldModel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected WorldModelItemProvider worldModelItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.WorldModel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createWorldModelAdapter() {
		if (worldModelItemProvider == null) {
			worldModelItemProvider = new WorldModelItemProvider(this);
		}

		return worldModelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Location} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LocationItemProvider locationItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Location}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLocationAdapter() {
		if (locationItemProvider == null) {
			locationItemProvider = new LocationItemProvider(this);
		}

		return locationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Paths} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PathsItemProvider pathsItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Paths}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPathsAdapter() {
		if (pathsItemProvider == null) {
			pathsItemProvider = new PathsItemProvider(this);
		}

		return pathsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.RobotsModel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RobotsModelItemProvider robotsModelItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.RobotsModel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRobotsModelAdapter() {
		if (robotsModelItemProvider == null) {
			robotsModelItemProvider = new RobotsModelItemProvider(this);
		}

		return robotsModelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Robot} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RobotItemProvider robotItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Robot}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRobotAdapter() {
		if (robotItemProvider == null) {
			robotItemProvider = new RobotItemProvider(this);
		}

		return robotItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Capability} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CapabilityItemProvider capabilityItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Capability}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCapabilityAdapter() {
		if (capabilityItemProvider == null) {
			capabilityItemProvider = new CapabilityItemProvider(this);
		}

		return capabilityItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.TasksModel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TasksModelItemProvider tasksModelItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.TasksModel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTasksModelAdapter() {
		if (tasksModelItemProvider == null) {
			tasksModelItemProvider = new TasksModelItemProvider(this);
		}

		return tasksModelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AtomicTask} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AtomicTaskItemProvider atomicTaskItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AtomicTask}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAtomicTaskAdapter() {
		if (atomicTaskItemProvider == null) {
			atomicTaskItemProvider = new AtomicTaskItemProvider(this);
		}

		return atomicTaskItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompoundTask} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompoundTaskItemProvider compoundTaskItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompoundTask}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompoundTaskAdapter() {
		if (compoundTaskItemProvider == null) {
			compoundTaskItemProvider = new CompoundTaskItemProvider(this);
		}

		return compoundTaskItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Mission} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MissionItemProvider missionItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Mission}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMissionAdapter() {
		if (missionItemProvider == null) {
			missionItemProvider = new MissionItemProvider(this);
		}

		return missionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.QoS} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected QoSItemProvider qoSItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.QoS}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createQoSAdapter() {
		if (qoSItemProvider == null) {
			qoSItemProvider = new QoSItemProvider(this);
		}

		return qoSItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AtomicTaskNoLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AtomicTaskNoLocItemProvider atomicTaskNoLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AtomicTaskNoLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAtomicTaskNoLocAdapter() {
		if (atomicTaskNoLocItemProvider == null) {
			atomicTaskNoLocItemProvider = new AtomicTaskNoLocItemProvider(this);
		}

		return atomicTaskNoLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AtomicTaskLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AtomicTaskLocItemProvider atomicTaskLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AtomicTaskLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAtomicTaskLocAdapter() {
		if (atomicTaskLocItemProvider == null) {
			atomicTaskLocItemProvider = new AtomicTaskLocItemProvider(this);
		}

		return atomicTaskLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskNoLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskNoLocItemProvider compTaskNoLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskNoLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskNoLocAdapter() {
		if (compTaskNoLocItemProvider == null) {
			compTaskNoLocItemProvider = new CompTaskNoLocItemProvider(this);
		}

		return compTaskNoLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskOneLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskOneLocItemProvider compTaskOneLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskOneLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskOneLocAdapter() {
		if (compTaskOneLocItemProvider == null) {
			compTaskOneLocItemProvider = new CompTaskOneLocItemProvider(this);
		}

		return compTaskOneLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskAllLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskAllLocItemProvider compTaskAllLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskAllLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskAllLocAdapter() {
		if (compTaskAllLocItemProvider == null) {
			compTaskAllLocItemProvider = new CompTaskAllLocItemProvider(this);
		}

		return compTaskAllLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskAtBut} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskAtButItemProvider compTaskAtButItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskAtBut}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskAtButAdapter() {
		if (compTaskAtButItemProvider == null) {
			compTaskAtButItemProvider = new CompTaskAtButItemProvider(this);
		}

		return compTaskAtButItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskStatedBut} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskStatedButItemProvider compTaskStatedButItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskStatedBut}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskStatedButAdapter() {
		if (compTaskStatedButItemProvider == null) {
			compTaskStatedButItemProvider = new CompTaskStatedButItemProvider(this);
		}

		return compTaskStatedButItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.LocationOrSpace} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LocationOrSpaceItemProvider locationOrSpaceItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.LocationOrSpace}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLocationOrSpaceAdapter() {
		if (locationOrSpaceItemProvider == null) {
			locationOrSpaceItemProvider = new LocationOrSpaceItemProvider(this);
		}

		return locationOrSpaceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.Robots2tasksPerformance} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Robots2tasksPerformanceItemProvider robots2tasksPerformanceItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.Robots2tasksPerformance}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRobots2tasksPerformanceAdapter() {
		if (robots2tasksPerformanceItemProvider == null) {
			robots2tasksPerformanceItemProvider = new Robots2tasksPerformanceItemProvider(this);
		}

		return robots2tasksPerformanceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.CompTaskListLoc} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CompTaskListLocItemProvider compTaskListLocItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.CompTaskListLoc}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCompTaskListLocAdapter() {
		if (compTaskListLocItemProvider == null) {
			compTaskListLocItemProvider = new CompTaskListLocItemProvider(this);
		}

		return compTaskListLocItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AllRobotsXX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllRobotsXXItemProvider allRobotsXXItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AllRobotsXX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllRobotsXXAdapter() {
		if (allRobotsXXItemProvider == null) {
			allRobotsXXItemProvider = new AllRobotsXXItemProvider(this);
		}

		return allRobotsXXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AllRobotsX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllRobotsXItemProvider allRobotsXItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AllRobotsX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllRobotsXAdapter() {
		if (allRobotsXItemProvider == null) {
			allRobotsXItemProvider = new AllRobotsXItemProvider(this);
		}

		return allRobotsXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.RobotsXX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RobotsXXItemProvider robotsXXItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.RobotsXX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRobotsXXAdapter() {
		if (robotsXXItemProvider == null) {
			robotsXXItemProvider = new RobotsXXItemProvider(this);
		}

		return robotsXXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.RobotsX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RobotsXItemProvider robotsXItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.RobotsX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRobotsXAdapter() {
		if (robotsXItemProvider == null) {
			robotsXItemProvider = new RobotsXItemProvider(this);
		}

		return robotsXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.AllRobotsDeploy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllRobotsDeployItemProvider allRobotsDeployItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.AllRobotsDeploy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllRobotsDeployAdapter() {
		if (allRobotsDeployItemProvider == null) {
			allRobotsDeployItemProvider = new AllRobotsDeployItemProvider(this);
		}

		return allRobotsDeployItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.NumAllocations} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NumAllocationsItemProvider numAllocationsItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.NumAllocations}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNumAllocationsAdapter() {
		if (numAllocationsItemProvider == null) {
			numAllocationsItemProvider = new NumAllocationsItemProvider(this);
		}

		return numAllocationsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.NumPopulation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NumPopulationItemProvider numPopulationItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.NumPopulation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNumPopulationAdapter() {
		if (numPopulationItemProvider == null) {
			numPopulationItemProvider = new NumPopulationItemProvider(this);
		}

		return numPopulationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link dsl.NumEvaluations} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NumEvaluationsItemProvider numEvaluationsItemProvider;

	/**
	 * This creates an adapter for a {@link dsl.NumEvaluations}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNumEvaluationsAdapter() {
		if (numEvaluationsItemProvider == null) {
			numEvaluationsItemProvider = new NumEvaluationsItemProvider(this);
		}

		return numEvaluationsItemProvider;
	}

	/**
	 * 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 (problemSpecificationItemProvider != null) problemSpecificationItemProvider.dispose();
		if (worldModelItemProvider != null) worldModelItemProvider.dispose();
		if (locationItemProvider != null) locationItemProvider.dispose();
		if (pathsItemProvider != null) pathsItemProvider.dispose();
		if (robotsModelItemProvider != null) robotsModelItemProvider.dispose();
		if (robotItemProvider != null) robotItemProvider.dispose();
		if (capabilityItemProvider != null) capabilityItemProvider.dispose();
		if (tasksModelItemProvider != null) tasksModelItemProvider.dispose();
		if (atomicTaskItemProvider != null) atomicTaskItemProvider.dispose();
		if (compoundTaskItemProvider != null) compoundTaskItemProvider.dispose();
		if (missionItemProvider != null) missionItemProvider.dispose();
		if (qoSItemProvider != null) qoSItemProvider.dispose();
		if (atomicTaskNoLocItemProvider != null) atomicTaskNoLocItemProvider.dispose();
		if (atomicTaskLocItemProvider != null) atomicTaskLocItemProvider.dispose();
		if (compTaskNoLocItemProvider != null) compTaskNoLocItemProvider.dispose();
		if (compTaskOneLocItemProvider != null) compTaskOneLocItemProvider.dispose();
		if (compTaskAllLocItemProvider != null) compTaskAllLocItemProvider.dispose();
		if (compTaskAtButItemProvider != null) compTaskAtButItemProvider.dispose();
		if (compTaskStatedButItemProvider != null) compTaskStatedButItemProvider.dispose();
		if (locationOrSpaceItemProvider != null) locationOrSpaceItemProvider.dispose();
		if (robots2tasksPerformanceItemProvider != null) robots2tasksPerformanceItemProvider.dispose();
		if (compTaskListLocItemProvider != null) compTaskListLocItemProvider.dispose();
		if (allRobotsXXItemProvider != null) allRobotsXXItemProvider.dispose();
		if (allRobotsXItemProvider != null) allRobotsXItemProvider.dispose();
		if (robotsXXItemProvider != null) robotsXXItemProvider.dispose();
		if (robotsXItemProvider != null) robotsXItemProvider.dispose();
		if (allRobotsDeployItemProvider != null) allRobotsDeployItemProvider.dispose();
		if (numAllocationsItemProvider != null) numAllocationsItemProvider.dispose();
		if (numPopulationItemProvider != null) numPopulationItemProvider.dispose();
		if (numEvaluationsItemProvider != null) numEvaluationsItemProvider.dispose();
	}

}
