/**
 */
package IFML.Mobile.provider;

import IFML.Mobile.util.MobileAdapterFactory;

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 MobileItemProviderAdapterFactory extends MobileAdapterFactory 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 MobileItemProviderAdapterFactory() {
		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 IFML.Mobile.Screen} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ScreenItemProvider screenItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Screen}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createScreenAdapter() {
		if (screenItemProvider == null) {
			screenItemProvider = new ScreenItemProvider(this);
		}

		return screenItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MobileViewComponent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MobileViewComponentItemProvider mobileViewComponentItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MobileViewComponent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMobileViewComponentAdapter() {
		if (mobileViewComponentItemProvider == null) {
			mobileViewComponentItemProvider = new MobileViewComponentItemProvider(this);
		}

		return mobileViewComponentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MobileMessage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MobileMessageItemProvider mobileMessageItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MobileMessage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMobileMessageAdapter() {
		if (mobileMessageItemProvider == null) {
			mobileMessageItemProvider = new MobileMessageItemProvider(this);
		}

		return mobileMessageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.SearchView} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SearchViewItemProvider searchViewItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.SearchView}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSearchViewAdapter() {
		if (searchViewItemProvider == null) {
			searchViewItemProvider = new SearchViewItemProvider(this);
		}

		return searchViewItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.TouchEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TouchEventItemProvider touchEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.TouchEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTouchEventAdapter() {
		if (touchEventItemProvider == null) {
			touchEventItemProvider = new TouchEventItemProvider(this);
		}

		return touchEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.LongPressEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LongPressEventItemProvider longPressEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.LongPressEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLongPressEventAdapter() {
		if (longPressEventItemProvider == null) {
			longPressEventItemProvider = new LongPressEventItemProvider(this);
		}

		return longPressEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.PanEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PanEventItemProvider panEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.PanEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPanEventAdapter() {
		if (panEventItemProvider == null) {
			panEventItemProvider = new PanEventItemProvider(this);
		}

		return panEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.PinchEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PinchEventItemProvider pinchEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.PinchEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPinchEventAdapter() {
		if (pinchEventItemProvider == null) {
			pinchEventItemProvider = new PinchEventItemProvider(this);
		}

		return pinchEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.SpreadEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SpreadEventItemProvider spreadEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.SpreadEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSpreadEventAdapter() {
		if (spreadEventItemProvider == null) {
			spreadEventItemProvider = new SpreadEventItemProvider(this);
		}

		return spreadEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.SwipeEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SwipeEventItemProvider swipeEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.SwipeEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSwipeEventAdapter() {
		if (swipeEventItemProvider == null) {
			swipeEventItemProvider = new SwipeEventItemProvider(this);
		}

		return swipeEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.TapEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TapEventItemProvider tapEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.TapEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTapEventAdapter() {
		if (tapEventItemProvider == null) {
			tapEventItemProvider = new TapEventItemProvider(this);
		}

		return tapEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.CameraAction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CameraActionItemProvider cameraActionItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.CameraAction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCameraActionAdapter() {
		if (cameraActionItemProvider == null) {
			cameraActionItemProvider = new CameraActionItemProvider(this);
		}

		return cameraActionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MicrophoneAction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MicrophoneActionItemProvider microphoneActionItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MicrophoneAction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMicrophoneActionAdapter() {
		if (microphoneActionItemProvider == null) {
			microphoneActionItemProvider = new MicrophoneActionItemProvider(this);
		}

		return microphoneActionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.CameraActionEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CameraActionEventItemProvider cameraActionEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.CameraActionEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCameraActionEventAdapter() {
		if (cameraActionEventItemProvider == null) {
			cameraActionEventItemProvider = new CameraActionEventItemProvider(this);
		}

		return cameraActionEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MicrophoneActionEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MicrophoneActionEventItemProvider microphoneActionEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MicrophoneActionEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMicrophoneActionEventAdapter() {
		if (microphoneActionEventItemProvider == null) {
			microphoneActionEventItemProvider = new MicrophoneActionEventItemProvider(this);
		}

		return microphoneActionEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.BatteryEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BatteryEventItemProvider batteryEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.BatteryEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBatteryEventAdapter() {
		if (batteryEventItemProvider == null) {
			batteryEventItemProvider = new BatteryEventItemProvider(this);
		}

		return batteryEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.ConnectionEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectionEventItemProvider connectionEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.ConnectionEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConnectionEventAdapter() {
		if (connectionEventItemProvider == null) {
			connectionEventItemProvider = new ConnectionEventItemProvider(this);
		}

		return connectionEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MemoryEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MemoryEventItemProvider memoryEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MemoryEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMemoryEventAdapter() {
		if (memoryEventItemProvider == null) {
			memoryEventItemProvider = new MemoryEventItemProvider(this);
		}

		return memoryEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.AccelerometerEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccelerometerEventItemProvider accelerometerEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.AccelerometerEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccelerometerEventAdapter() {
		if (accelerometerEventItemProvider == null) {
			accelerometerEventItemProvider = new AccelerometerEventItemProvider(this);
		}

		return accelerometerEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.GyroscopeEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GyroscopeEventItemProvider gyroscopeEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.GyroscopeEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGyroscopeEventAdapter() {
		if (gyroscopeEventItemProvider == null) {
			gyroscopeEventItemProvider = new GyroscopeEventItemProvider(this);
		}

		return gyroscopeEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.LocationEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LocationEventItemProvider locationEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.LocationEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLocationEventAdapter() {
		if (locationEventItemProvider == null) {
			locationEventItemProvider = new LocationEventItemProvider(this);
		}

		return locationEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MagnetometerEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MagnetometerEventItemProvider magnetometerEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MagnetometerEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMagnetometerEventAdapter() {
		if (magnetometerEventItemProvider == null) {
			magnetometerEventItemProvider = new MagnetometerEventItemProvider(this);
		}

		return magnetometerEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MotionEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MotionEventItemProvider motionEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MotionEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMotionEventAdapter() {
		if (motionEventItemProvider == null) {
			motionEventItemProvider = new MotionEventItemProvider(this);
		}

		return motionEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.OrientationEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OrientationEventItemProvider orientationEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.OrientationEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOrientationEventAdapter() {
		if (orientationEventItemProvider == null) {
			orientationEventItemProvider = new OrientationEventItemProvider(this);
		}

		return orientationEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.ProximityEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProximityEventItemProvider proximityEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.ProximityEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProximityEventAdapter() {
		if (proximityEventItemProvider == null) {
			proximityEventItemProvider = new ProximityEventItemProvider(this);
		}

		return proximityEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.RotateEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RotateEventItemProvider rotateEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.RotateEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRotateEventAdapter() {
		if (rotateEventItemProvider == null) {
			rotateEventItemProvider = new RotateEventItemProvider(this);
		}

		return rotateEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.ShakeEvent} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ShakeEventItemProvider shakeEventItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.ShakeEvent}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createShakeEventAdapter() {
		if (shakeEventItemProvider == null) {
			shakeEventItemProvider = new ShakeEventItemProvider(this);
		}

		return shakeEventItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MobileDevice} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MobileDeviceItemProvider mobileDeviceItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MobileDevice}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMobileDeviceAdapter() {
		if (mobileDeviceItemProvider == null) {
			mobileDeviceItemProvider = new MobileDeviceItemProvider(this);
		}

		return mobileDeviceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MobileDeviceScreen} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MobileDeviceScreenItemProvider mobileDeviceScreenItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MobileDeviceScreen}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMobileDeviceScreenAdapter() {
		if (mobileDeviceScreenItemProvider == null) {
			mobileDeviceScreenItemProvider = new MobileDeviceScreenItemProvider(this);
		}

		return mobileDeviceScreenItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Accelerometer} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccelerometerItemProvider accelerometerItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Accelerometer}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccelerometerAdapter() {
		if (accelerometerItemProvider == null) {
			accelerometerItemProvider = new AccelerometerItemProvider(this);
		}

		return accelerometerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.GPS} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GPSItemProvider gpsItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.GPS}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGPSAdapter() {
		if (gpsItemProvider == null) {
			gpsItemProvider = new GPSItemProvider(this);
		}

		return gpsItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Gyroscope} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GyroscopeItemProvider gyroscopeItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Gyroscope}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGyroscopeAdapter() {
		if (gyroscopeItemProvider == null) {
			gyroscopeItemProvider = new GyroscopeItemProvider(this);
		}

		return gyroscopeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Magnetometer} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MagnetometerItemProvider magnetometerItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Magnetometer}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMagnetometerAdapter() {
		if (magnetometerItemProvider == null) {
			magnetometerItemProvider = new MagnetometerItemProvider(this);
		}

		return magnetometerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Microphone} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MicrophoneItemProvider microphoneItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Microphone}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMicrophoneAdapter() {
		if (microphoneItemProvider == null) {
			microphoneItemProvider = new MicrophoneItemProvider(this);
		}

		return microphoneItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.ProximitySensor} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProximitySensorItemProvider proximitySensorItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.ProximitySensor}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createProximitySensorAdapter() {
		if (proximitySensorItemProvider == null) {
			proximitySensorItemProvider = new ProximitySensorItemProvider(this);
		}

		return proximitySensorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.StillCamera} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StillCameraItemProvider stillCameraItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.StillCamera}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStillCameraAdapter() {
		if (stillCameraItemProvider == null) {
			stillCameraItemProvider = new StillCameraItemProvider(this);
		}

		return stillCameraItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.VideoCamera} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VideoCameraItemProvider videoCameraItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.VideoCamera}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVideoCameraAdapter() {
		if (videoCameraItemProvider == null) {
			videoCameraItemProvider = new VideoCameraItemProvider(this);
		}

		return videoCameraItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.AccelerationX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccelerationXItemProvider accelerationXItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.AccelerationX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccelerationXAdapter() {
		if (accelerationXItemProvider == null) {
			accelerationXItemProvider = new AccelerationXItemProvider(this);
		}

		return accelerationXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.AccelerationY} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccelerationYItemProvider accelerationYItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.AccelerationY}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccelerationYAdapter() {
		if (accelerationYItemProvider == null) {
			accelerationYItemProvider = new AccelerationYItemProvider(this);
		}

		return accelerationYItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.AccelerationZ} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AccelerationZItemProvider accelerationZItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.AccelerationZ}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAccelerationZAdapter() {
		if (accelerationZItemProvider == null) {
			accelerationZItemProvider = new AccelerationZItemProvider(this);
		}

		return accelerationZItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Altitude} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AltitudeItemProvider altitudeItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Altitude}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAltitudeAdapter() {
		if (altitudeItemProvider == null) {
			altitudeItemProvider = new AltitudeItemProvider(this);
		}

		return altitudeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.HorizontalAccuracy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected HorizontalAccuracyItemProvider horizontalAccuracyItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.HorizontalAccuracy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createHorizontalAccuracyAdapter() {
		if (horizontalAccuracyItemProvider == null) {
			horizontalAccuracyItemProvider = new HorizontalAccuracyItemProvider(this);
		}

		return horizontalAccuracyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Latitude} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LatitudeItemProvider latitudeItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Latitude}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLatitudeAdapter() {
		if (latitudeItemProvider == null) {
			latitudeItemProvider = new LatitudeItemProvider(this);
		}

		return latitudeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Longitude} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LongitudeItemProvider longitudeItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Longitude}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLongitudeAdapter() {
		if (longitudeItemProvider == null) {
			longitudeItemProvider = new LongitudeItemProvider(this);
		}

		return longitudeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Speed} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SpeedItemProvider speedItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Speed}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSpeedAdapter() {
		if (speedItemProvider == null) {
			speedItemProvider = new SpeedItemProvider(this);
		}

		return speedItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.VerticalAccuracy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VerticalAccuracyItemProvider verticalAccuracyItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.VerticalAccuracy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVerticalAccuracyAdapter() {
		if (verticalAccuracyItemProvider == null) {
			verticalAccuracyItemProvider = new VerticalAccuracyItemProvider(this);
		}

		return verticalAccuracyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Pitch} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PitchItemProvider pitchItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Pitch}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPitchAdapter() {
		if (pitchItemProvider == null) {
			pitchItemProvider = new PitchItemProvider(this);
		}

		return pitchItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Roll} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RollItemProvider rollItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Roll}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRollAdapter() {
		if (rollItemProvider == null) {
			rollItemProvider = new RollItemProvider(this);
		}

		return rollItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Yaw} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected YawItemProvider yawItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Yaw}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createYawAdapter() {
		if (yawItemProvider == null) {
			yawItemProvider = new YawItemProvider(this);
		}

		return yawItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.BatteryLevel} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BatteryLevelItemProvider batteryLevelItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.BatteryLevel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBatteryLevelAdapter() {
		if (batteryLevelItemProvider == null) {
			batteryLevelItemProvider = new BatteryLevelItemProvider(this);
		}

		return batteryLevelItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.BatteryStatus} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BatteryStatusItemProvider batteryStatusItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.BatteryStatus}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBatteryStatusAdapter() {
		if (batteryStatusItemProvider == null) {
			batteryStatusItemProvider = new BatteryStatusItemProvider(this);
		}

		return batteryStatusItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Bluetooth} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BluetoothItemProvider bluetoothItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Bluetooth}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBluetoothAdapter() {
		if (bluetoothItemProvider == null) {
			bluetoothItemProvider = new BluetoothItemProvider(this);
		}

		return bluetoothItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.Cellular} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CellularItemProvider cellularItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.Cellular}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCellularAdapter() {
		if (cellularItemProvider == null) {
			cellularItemProvider = new CellularItemProvider(this);
		}

		return cellularItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.WiFi} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected WiFiItemProvider wiFiItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.WiFi}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createWiFiAdapter() {
		if (wiFiItemProvider == null) {
			wiFiItemProvider = new WiFiItemProvider(this);
		}

		return wiFiItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MagneticHeadingDirection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MagneticHeadingDirectionItemProvider magneticHeadingDirectionItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MagneticHeadingDirection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMagneticHeadingDirectionAdapter() {
		if (magneticHeadingDirectionItemProvider == null) {
			magneticHeadingDirectionItemProvider = new MagneticHeadingDirectionItemProvider(this);
		}

		return magneticHeadingDirectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.MagneticHeadingAccuracy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MagneticHeadingAccuracyItemProvider magneticHeadingAccuracyItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.MagneticHeadingAccuracy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMagneticHeadingAccuracyAdapter() {
		if (magneticHeadingAccuracyItemProvider == null) {
			magneticHeadingAccuracyItemProvider = new MagneticHeadingAccuracyItemProvider(this);
		}

		return magneticHeadingAccuracyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.TrueHeadingDirection} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TrueHeadingDirectionItemProvider trueHeadingDirectionItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.TrueHeadingDirection}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTrueHeadingDirectionAdapter() {
		if (trueHeadingDirectionItemProvider == null) {
			trueHeadingDirectionItemProvider = new TrueHeadingDirectionItemProvider(this);
		}

		return trueHeadingDirectionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.RotationX} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RotationXItemProvider rotationXItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.RotationX}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRotationXAdapter() {
		if (rotationXItemProvider == null) {
			rotationXItemProvider = new RotationXItemProvider(this);
		}

		return rotationXItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.RotationY} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RotationYItemProvider rotationYItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.RotationY}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRotationYAdapter() {
		if (rotationYItemProvider == null) {
			rotationYItemProvider = new RotationYItemProvider(this);
		}

		return rotationYItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link IFML.Mobile.RotationZ} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RotationZItemProvider rotationZItemProvider;

	/**
	 * This creates an adapter for a {@link IFML.Mobile.RotationZ}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRotationZAdapter() {
		if (rotationZItemProvider == null) {
			rotationZItemProvider = new RotationZItemProvider(this);
		}

		return rotationZItemProvider;
	}

	/**
	 * 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 (screenItemProvider != null) screenItemProvider.dispose();
		if (mobileViewComponentItemProvider != null) mobileViewComponentItemProvider.dispose();
		if (mobileMessageItemProvider != null) mobileMessageItemProvider.dispose();
		if (searchViewItemProvider != null) searchViewItemProvider.dispose();
		if (touchEventItemProvider != null) touchEventItemProvider.dispose();
		if (longPressEventItemProvider != null) longPressEventItemProvider.dispose();
		if (panEventItemProvider != null) panEventItemProvider.dispose();
		if (pinchEventItemProvider != null) pinchEventItemProvider.dispose();
		if (spreadEventItemProvider != null) spreadEventItemProvider.dispose();
		if (swipeEventItemProvider != null) swipeEventItemProvider.dispose();
		if (tapEventItemProvider != null) tapEventItemProvider.dispose();
		if (cameraActionItemProvider != null) cameraActionItemProvider.dispose();
		if (microphoneActionItemProvider != null) microphoneActionItemProvider.dispose();
		if (cameraActionEventItemProvider != null) cameraActionEventItemProvider.dispose();
		if (microphoneActionEventItemProvider != null) microphoneActionEventItemProvider.dispose();
		if (batteryEventItemProvider != null) batteryEventItemProvider.dispose();
		if (connectionEventItemProvider != null) connectionEventItemProvider.dispose();
		if (memoryEventItemProvider != null) memoryEventItemProvider.dispose();
		if (accelerometerEventItemProvider != null) accelerometerEventItemProvider.dispose();
		if (gyroscopeEventItemProvider != null) gyroscopeEventItemProvider.dispose();
		if (locationEventItemProvider != null) locationEventItemProvider.dispose();
		if (magnetometerEventItemProvider != null) magnetometerEventItemProvider.dispose();
		if (motionEventItemProvider != null) motionEventItemProvider.dispose();
		if (orientationEventItemProvider != null) orientationEventItemProvider.dispose();
		if (proximityEventItemProvider != null) proximityEventItemProvider.dispose();
		if (rotateEventItemProvider != null) rotateEventItemProvider.dispose();
		if (shakeEventItemProvider != null) shakeEventItemProvider.dispose();
		if (mobileDeviceItemProvider != null) mobileDeviceItemProvider.dispose();
		if (mobileDeviceScreenItemProvider != null) mobileDeviceScreenItemProvider.dispose();
		if (accelerometerItemProvider != null) accelerometerItemProvider.dispose();
		if (gpsItemProvider != null) gpsItemProvider.dispose();
		if (gyroscopeItemProvider != null) gyroscopeItemProvider.dispose();
		if (magnetometerItemProvider != null) magnetometerItemProvider.dispose();
		if (microphoneItemProvider != null) microphoneItemProvider.dispose();
		if (proximitySensorItemProvider != null) proximitySensorItemProvider.dispose();
		if (stillCameraItemProvider != null) stillCameraItemProvider.dispose();
		if (videoCameraItemProvider != null) videoCameraItemProvider.dispose();
		if (accelerationXItemProvider != null) accelerationXItemProvider.dispose();
		if (accelerationYItemProvider != null) accelerationYItemProvider.dispose();
		if (accelerationZItemProvider != null) accelerationZItemProvider.dispose();
		if (altitudeItemProvider != null) altitudeItemProvider.dispose();
		if (horizontalAccuracyItemProvider != null) horizontalAccuracyItemProvider.dispose();
		if (latitudeItemProvider != null) latitudeItemProvider.dispose();
		if (longitudeItemProvider != null) longitudeItemProvider.dispose();
		if (speedItemProvider != null) speedItemProvider.dispose();
		if (verticalAccuracyItemProvider != null) verticalAccuracyItemProvider.dispose();
		if (pitchItemProvider != null) pitchItemProvider.dispose();
		if (rollItemProvider != null) rollItemProvider.dispose();
		if (yawItemProvider != null) yawItemProvider.dispose();
		if (batteryLevelItemProvider != null) batteryLevelItemProvider.dispose();
		if (batteryStatusItemProvider != null) batteryStatusItemProvider.dispose();
		if (bluetoothItemProvider != null) bluetoothItemProvider.dispose();
		if (cellularItemProvider != null) cellularItemProvider.dispose();
		if (wiFiItemProvider != null) wiFiItemProvider.dispose();
		if (magneticHeadingDirectionItemProvider != null) magneticHeadingDirectionItemProvider.dispose();
		if (magneticHeadingAccuracyItemProvider != null) magneticHeadingAccuracyItemProvider.dispose();
		if (trueHeadingDirectionItemProvider != null) trueHeadingDirectionItemProvider.dispose();
		if (rotationXItemProvider != null) rotationXItemProvider.dispose();
		if (rotationYItemProvider != null) rotationYItemProvider.dispose();
		if (rotationZItemProvider != null) rotationZItemProvider.dispose();
	}

}
