/** * Copyright (c) 2015-2016 Obeo, Inria * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * - William Piers <william.piers@obeo.fr> * - Philippe Merle <philippe.merle@inria.fr> */ package org.occiware.clouddesigner.occi.docker.provider; import java.util.ArrayList; import java.util.Collection; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.edit.provider.ChangeNotifier; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.emf.edit.provider.IChangeNotifier; import org.eclipse.emf.edit.provider.IDisposable; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemLabelProvider; import org.eclipse.emf.edit.provider.IItemPropertySource; import org.eclipse.emf.edit.provider.INotifyChangedListener; import org.eclipse.emf.edit.provider.IStructuredItemContentProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import org.occiware.clouddesigner.occi.docker.util.DockerAdapterFactory; /** * 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 DockerItemProviderAdapterFactory extends DockerAdapterFactory 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 DockerItemProviderAdapterFactory() { supportedTypes.add(IEditingDomainItemProvider.class); supportedTypes.add(IStructuredItemContentProvider.class); supportedTypes.add(ITreeItemContentProvider.class); supportedTypes.add(IItemLabelProvider.class); supportedTypes.add(IItemPropertySource.class); } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Container} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ContainerItemProvider containerItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Container}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createContainerAdapter() { if (containerItemProvider == null) { containerItemProvider = new ContainerItemProvider(this); } return containerItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Link} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected LinkItemProvider linkItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Link}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createLinkAdapter() { if (linkItemProvider == null) { linkItemProvider = new LinkItemProvider(this); } return linkItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.NetworkLink} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NetworkLinkItemProvider networkLinkItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.NetworkLink}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNetworkLinkAdapter() { if (networkLinkItemProvider == null) { networkLinkItemProvider = new NetworkLinkItemProvider(this); } return networkLinkItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Volumesfrom} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected VolumesfromItemProvider volumesfromItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Volumesfrom}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createVolumesfromAdapter() { if (volumesfromItemProvider == null) { volumesfromItemProvider = new VolumesfromItemProvider(this); } return volumesfromItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Contains} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ContainsItemProvider containsItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Contains}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createContainsAdapter() { if (containsItemProvider == null) { containsItemProvider = new ContainsItemProvider(this); } return containsItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected MachineItemProvider machineItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachineAdapter() { if (machineItemProvider == null) { machineItemProvider = new MachineItemProvider(this); } return machineItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Volume} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected VolumeItemProvider volumeItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Volume}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createVolumeAdapter() { if (volumeItemProvider == null) { volumeItemProvider = new VolumeItemProvider(this); } return volumeItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Network} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NetworkItemProvider networkItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Network}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNetworkAdapter() { if (networkItemProvider == null) { networkItemProvider = new NetworkItemProvider(this); } return networkItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Generic} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_GenericItemProvider machine_GenericItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Generic}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_GenericAdapter() { if (machine_GenericItemProvider == null) { machine_GenericItemProvider = new Machine_GenericItemProvider(this); } return machine_GenericItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Amazon_EC2} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Amazon_EC2ItemProvider machine_Amazon_EC2ItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Amazon_EC2}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Amazon_EC2Adapter() { if (machine_Amazon_EC2ItemProvider == null) { machine_Amazon_EC2ItemProvider = new Machine_Amazon_EC2ItemProvider(this); } return machine_Amazon_EC2ItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Digital_Ocean} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Digital_OceanItemProvider machine_Digital_OceanItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Digital_Ocean}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Digital_OceanAdapter() { if (machine_Digital_OceanItemProvider == null) { machine_Digital_OceanItemProvider = new Machine_Digital_OceanItemProvider(this); } return machine_Digital_OceanItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Google_Compute_Engine} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Google_Compute_EngineItemProvider machine_Google_Compute_EngineItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Google_Compute_Engine}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Google_Compute_EngineAdapter() { if (machine_Google_Compute_EngineItemProvider == null) { machine_Google_Compute_EngineItemProvider = new Machine_Google_Compute_EngineItemProvider(this); } return machine_Google_Compute_EngineItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_IBM_SoftLayer} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_IBM_SoftLayerItemProvider machine_IBM_SoftLayerItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_IBM_SoftLayer}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_IBM_SoftLayerAdapter() { if (machine_IBM_SoftLayerItemProvider == null) { machine_IBM_SoftLayerItemProvider = new Machine_IBM_SoftLayerItemProvider(this); } return machine_IBM_SoftLayerItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Microsoft_Azure} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Microsoft_AzureItemProvider machine_Microsoft_AzureItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Microsoft_Azure}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Microsoft_AzureAdapter() { if (machine_Microsoft_AzureItemProvider == null) { machine_Microsoft_AzureItemProvider = new Machine_Microsoft_AzureItemProvider(this); } return machine_Microsoft_AzureItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Microsoft_Hyper_V} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Microsoft_Hyper_VItemProvider machine_Microsoft_Hyper_VItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Microsoft_Hyper_V}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Microsoft_Hyper_VAdapter() { if (machine_Microsoft_Hyper_VItemProvider == null) { machine_Microsoft_Hyper_VItemProvider = new Machine_Microsoft_Hyper_VItemProvider(this); } return machine_Microsoft_Hyper_VItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_OpenStack} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_OpenStackItemProvider machine_OpenStackItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_OpenStack}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_OpenStackAdapter() { if (machine_OpenStackItemProvider == null) { machine_OpenStackItemProvider = new Machine_OpenStackItemProvider(this); } return machine_OpenStackItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Rackspace} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_RackspaceItemProvider machine_RackspaceItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Rackspace}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_RackspaceAdapter() { if (machine_RackspaceItemProvider == null) { machine_RackspaceItemProvider = new Machine_RackspaceItemProvider(this); } return machine_RackspaceItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_VirtualBox} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_VirtualBoxItemProvider machine_VirtualBoxItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_VirtualBox}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_VirtualBoxAdapter() { if (machine_VirtualBoxItemProvider == null) { machine_VirtualBoxItemProvider = new Machine_VirtualBoxItemProvider(this); } return machine_VirtualBoxItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_Fusion} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_VMware_FusionItemProvider machine_VMware_FusionItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_Fusion}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_VMware_FusionAdapter() { if (machine_VMware_FusionItemProvider == null) { machine_VMware_FusionItemProvider = new Machine_VMware_FusionItemProvider(this); } return machine_VMware_FusionItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_vCloud_Air} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_VMware_vCloud_AirItemProvider machine_VMware_vCloud_AirItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_vCloud_Air}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_VMware_vCloud_AirAdapter() { if (machine_VMware_vCloud_AirItemProvider == null) { machine_VMware_vCloud_AirItemProvider = new Machine_VMware_vCloud_AirItemProvider(this); } return machine_VMware_vCloud_AirItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_vSphere} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_VMware_vSphereItemProvider machine_VMware_vSphereItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_VMware_vSphere}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_VMware_vSphereAdapter() { if (machine_VMware_vSphereItemProvider == null) { machine_VMware_vSphereItemProvider = new Machine_VMware_vSphereItemProvider(this); } return machine_VMware_vSphereItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Exoscale} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_ExoscaleItemProvider machine_ExoscaleItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Exoscale}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_ExoscaleAdapter() { if (machine_ExoscaleItemProvider == null) { machine_ExoscaleItemProvider = new Machine_ExoscaleItemProvider(this); } return machine_ExoscaleItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Machine_Grid5000} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected Machine_Grid5000ItemProvider machine_Grid5000ItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Machine_Grid5000}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMachine_Grid5000Adapter() { if (machine_Grid5000ItemProvider == null) { machine_Grid5000ItemProvider = new Machine_Grid5000ItemProvider(this); } return machine_Grid5000ItemProvider; } /** * This keeps track of the one adapter used for all {@link org.occiware.clouddesigner.occi.docker.Cluster} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ClusterItemProvider clusterItemProvider; /** * This creates an adapter for a {@link org.occiware.clouddesigner.occi.docker.Cluster}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createClusterAdapter() { if (clusterItemProvider == null) { clusterItemProvider = new ClusterItemProvider(this); } return clusterItemProvider; } /** * 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 (containerItemProvider != null) containerItemProvider.dispose(); if (linkItemProvider != null) linkItemProvider.dispose(); if (networkLinkItemProvider != null) networkLinkItemProvider.dispose(); if (volumesfromItemProvider != null) volumesfromItemProvider.dispose(); if (containsItemProvider != null) containsItemProvider.dispose(); if (machineItemProvider != null) machineItemProvider.dispose(); if (volumeItemProvider != null) volumeItemProvider.dispose(); if (networkItemProvider != null) networkItemProvider.dispose(); if (machine_GenericItemProvider != null) machine_GenericItemProvider.dispose(); if (machine_Amazon_EC2ItemProvider != null) machine_Amazon_EC2ItemProvider.dispose(); if (machine_Digital_OceanItemProvider != null) machine_Digital_OceanItemProvider.dispose(); if (machine_Google_Compute_EngineItemProvider != null) machine_Google_Compute_EngineItemProvider.dispose(); if (machine_IBM_SoftLayerItemProvider != null) machine_IBM_SoftLayerItemProvider.dispose(); if (machine_Microsoft_AzureItemProvider != null) machine_Microsoft_AzureItemProvider.dispose(); if (machine_Microsoft_Hyper_VItemProvider != null) machine_Microsoft_Hyper_VItemProvider.dispose(); if (machine_OpenStackItemProvider != null) machine_OpenStackItemProvider.dispose(); if (machine_RackspaceItemProvider != null) machine_RackspaceItemProvider.dispose(); if (machine_VirtualBoxItemProvider != null) machine_VirtualBoxItemProvider.dispose(); if (machine_VMware_FusionItemProvider != null) machine_VMware_FusionItemProvider.dispose(); if (machine_VMware_vCloud_AirItemProvider != null) machine_VMware_vCloud_AirItemProvider.dispose(); if (machine_VMware_vSphereItemProvider != null) machine_VMware_vSphereItemProvider.dispose(); if (machine_ExoscaleItemProvider != null) machine_ExoscaleItemProvider.dispose(); if (machine_Grid5000ItemProvider != null) machine_Grid5000ItemProvider.dispose(); if (clusterItemProvider != null) clusterItemProvider.dispose(); } }