/*******************************************************************************
* Copyright (c) 2006-2012
* Software Technology Group, Dresden University of Technology
* DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026
*
* 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:
* Software Technology Group - TU Dresden, Germany;
* DevBoost GmbH - Berlin, Germany
* - initial API and implementation
******************************************************************************/
/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.reuseware.coconut.reuseextension.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.reuseware.coconut.reuseextension.util.ReuseextensionAdapterFactory;
/**
* 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 ReuseextensionItemProviderAdapterFactory extends ReuseextensionAdapterFactory 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 ReuseextensionItemProviderAdapterFactory() {
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.reuseware.coconut.reuseextension.AnchorDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected AnchorDerivationRuleItemProvider anchorDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.AnchorDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createAnchorDerivationRuleAdapter() {
if (anchorDerivationRuleItemProvider == null) {
anchorDerivationRuleItemProvider = new AnchorDerivationRuleItemProvider(this);
}
return anchorDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.ComponentModelSpecification} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ComponentModelSpecificationItemProvider componentModelSpecificationItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.ComponentModelSpecification}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createComponentModelSpecificationAdapter() {
if (componentModelSpecificationItemProvider == null) {
componentModelSpecificationItemProvider = new ComponentModelSpecificationItemProvider(this);
}
return componentModelSpecificationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.CompositionAssociation2CompositionLinkBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CompositionAssociation2CompositionLinkBindingItemProvider compositionAssociation2CompositionLinkBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.CompositionAssociation2CompositionLinkBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createCompositionAssociation2CompositionLinkBindingAdapter() {
if (compositionAssociation2CompositionLinkBindingItemProvider == null) {
compositionAssociation2CompositionLinkBindingItemProvider = new CompositionAssociation2CompositionLinkBindingItemProvider(this);
}
return compositionAssociation2CompositionLinkBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.CompositionLanguageSpecification} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CompositionLanguageSpecificationItemProvider compositionLanguageSpecificationItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.CompositionLanguageSpecification}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createCompositionLanguageSpecificationAdapter() {
if (compositionLanguageSpecificationItemProvider == null) {
compositionLanguageSpecificationItemProvider = new CompositionLanguageSpecificationItemProvider(this);
}
return compositionLanguageSpecificationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.CompositionLanguageSyntaxSpecification} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CompositionLanguageSyntaxSpecificationItemProvider compositionLanguageSyntaxSpecificationItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.CompositionLanguageSyntaxSpecification}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createCompositionLanguageSyntaxSpecificationAdapter() {
if (compositionLanguageSyntaxSpecificationItemProvider == null) {
compositionLanguageSyntaxSpecificationItemProvider = new CompositionLanguageSyntaxSpecificationItemProvider(this);
}
return compositionLanguageSyntaxSpecificationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FragmentRole2FragmentBindingItemProvider fragmentRole2FragmentBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createFragmentRole2FragmentBindingAdapter() {
if (fragmentRole2FragmentBindingItemProvider == null) {
fragmentRole2FragmentBindingItemProvider = new FragmentRole2FragmentBindingItemProvider(this);
}
return fragmentRole2FragmentBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentInstanceBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FragmentRole2FragmentInstanceBindingItemProvider fragmentRole2FragmentInstanceBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentInstanceBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createFragmentRole2FragmentInstanceBindingAdapter() {
if (fragmentRole2FragmentInstanceBindingItemProvider == null) {
fragmentRole2FragmentInstanceBindingItemProvider = new FragmentRole2FragmentInstanceBindingItemProvider(this);
}
return fragmentRole2FragmentInstanceBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentReferenceBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FragmentRole2FragmentReferenceBindingItemProvider fragmentRole2FragmentReferenceBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.FragmentRole2FragmentReferenceBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createFragmentRole2FragmentReferenceBindingAdapter() {
if (fragmentRole2FragmentReferenceBindingItemProvider == null) {
fragmentRole2FragmentReferenceBindingItemProvider = new FragmentRole2FragmentReferenceBindingItemProvider(this);
}
return fragmentRole2FragmentReferenceBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.FragmentRole2SyntaxBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected FragmentRole2SyntaxBindingItemProvider fragmentRole2SyntaxBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.FragmentRole2SyntaxBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createFragmentRole2SyntaxBindingAdapter() {
if (fragmentRole2SyntaxBindingItemProvider == null) {
fragmentRole2SyntaxBindingItemProvider = new FragmentRole2SyntaxBindingItemProvider(this);
}
return fragmentRole2SyntaxBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.HookDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected HookDerivationRuleItemProvider hookDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.HookDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createHookDerivationRuleAdapter() {
if (hookDerivationRuleItemProvider == null) {
hookDerivationRuleItemProvider = new HookDerivationRuleItemProvider(this);
}
return hookDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.PortType2HeterogeneousPortBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PortType2HeterogeneousPortBindingItemProvider portType2HeterogeneousPortBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.PortType2HeterogeneousPortBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPortType2HeterogeneousPortBindingAdapter() {
if (portType2HeterogeneousPortBindingItemProvider == null) {
portType2HeterogeneousPortBindingItemProvider = new PortType2HeterogeneousPortBindingItemProvider(this);
}
return portType2HeterogeneousPortBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.PortType2HomogenousPortBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PortType2HomogenousPortBindingItemProvider portType2HomogenousPortBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.PortType2HomogenousPortBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPortType2HomogenousPortBindingAdapter() {
if (portType2HomogenousPortBindingItemProvider == null) {
portType2HomogenousPortBindingItemProvider = new PortType2HomogenousPortBindingItemProvider(this);
}
return portType2HomogenousPortBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.PortType2SettingBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PortType2SettingBindingItemProvider portType2SettingBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.PortType2SettingBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPortType2SettingBindingAdapter() {
if (portType2SettingBindingItemProvider == null) {
portType2SettingBindingItemProvider = new PortType2SettingBindingItemProvider(this);
}
return portType2SettingBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.PortType2SyntaxBinding} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PortType2SyntaxBindingItemProvider portType2SyntaxBindingItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.PortType2SyntaxBinding}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPortType2SyntaxBindingAdapter() {
if (portType2SyntaxBindingItemProvider == null) {
portType2SyntaxBindingItemProvider = new PortType2SyntaxBindingItemProvider(this);
}
return portType2SyntaxBindingItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.PrototypeDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PrototypeDerivationRuleItemProvider prototypeDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.PrototypeDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPrototypeDerivationRuleAdapter() {
if (prototypeDerivationRuleItemProvider == null) {
prototypeDerivationRuleItemProvider = new PrototypeDerivationRuleItemProvider(this);
}
return prototypeDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.RootElementContext} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected RootElementContextItemProvider rootElementContextItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.RootElementContext}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createRootElementContextAdapter() {
if (rootElementContextItemProvider == null) {
rootElementContextItemProvider = new RootElementContextItemProvider(this);
}
return rootElementContextItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.SettingDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected SettingDerivationRuleItemProvider settingDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.SettingDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createSettingDerivationRuleAdapter() {
if (settingDerivationRuleItemProvider == null) {
settingDerivationRuleItemProvider = new SettingDerivationRuleItemProvider(this);
}
return settingDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.SlotDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected SlotDerivationRuleItemProvider slotDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.SlotDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createSlotDerivationRuleAdapter() {
if (slotDerivationRuleItemProvider == null) {
slotDerivationRuleItemProvider = new SlotDerivationRuleItemProvider(this);
}
return slotDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.ValueHookDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ValueHookDerivationRuleItemProvider valueHookDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.ValueHookDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createValueHookDerivationRuleAdapter() {
if (valueHookDerivationRuleItemProvider == null) {
valueHookDerivationRuleItemProvider = new ValueHookDerivationRuleItemProvider(this);
}
return valueHookDerivationRuleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link org.reuseware.coconut.reuseextension.ValuePrototypeDerivationRule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ValuePrototypeDerivationRuleItemProvider valuePrototypeDerivationRuleItemProvider;
/**
* This creates an adapter for a {@link org.reuseware.coconut.reuseextension.ValuePrototypeDerivationRule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createValuePrototypeDerivationRuleAdapter() {
if (valuePrototypeDerivationRuleItemProvider == null) {
valuePrototypeDerivationRuleItemProvider = new ValuePrototypeDerivationRuleItemProvider(this);
}
return valuePrototypeDerivationRuleItemProvider;
}
/**
* 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 (anchorDerivationRuleItemProvider != null) anchorDerivationRuleItemProvider.dispose();
if (componentModelSpecificationItemProvider != null) componentModelSpecificationItemProvider.dispose();
if (compositionAssociation2CompositionLinkBindingItemProvider != null) compositionAssociation2CompositionLinkBindingItemProvider.dispose();
if (compositionLanguageSpecificationItemProvider != null) compositionLanguageSpecificationItemProvider.dispose();
if (compositionLanguageSyntaxSpecificationItemProvider != null) compositionLanguageSyntaxSpecificationItemProvider.dispose();
if (fragmentRole2FragmentBindingItemProvider != null) fragmentRole2FragmentBindingItemProvider.dispose();
if (fragmentRole2FragmentInstanceBindingItemProvider != null) fragmentRole2FragmentInstanceBindingItemProvider.dispose();
if (fragmentRole2FragmentReferenceBindingItemProvider != null) fragmentRole2FragmentReferenceBindingItemProvider.dispose();
if (fragmentRole2SyntaxBindingItemProvider != null) fragmentRole2SyntaxBindingItemProvider.dispose();
if (hookDerivationRuleItemProvider != null) hookDerivationRuleItemProvider.dispose();
if (portType2HeterogeneousPortBindingItemProvider != null) portType2HeterogeneousPortBindingItemProvider.dispose();
if (portType2HomogenousPortBindingItemProvider != null) portType2HomogenousPortBindingItemProvider.dispose();
if (portType2SettingBindingItemProvider != null) portType2SettingBindingItemProvider.dispose();
if (portType2SyntaxBindingItemProvider != null) portType2SyntaxBindingItemProvider.dispose();
if (prototypeDerivationRuleItemProvider != null) prototypeDerivationRuleItemProvider.dispose();
if (rootElementContextItemProvider != null) rootElementContextItemProvider.dispose();
if (settingDerivationRuleItemProvider != null) settingDerivationRuleItemProvider.dispose();
if (slotDerivationRuleItemProvider != null) slotDerivationRuleItemProvider.dispose();
if (valueHookDerivationRuleItemProvider != null) valueHookDerivationRuleItemProvider.dispose();
if (valuePrototypeDerivationRuleItemProvider != null) valuePrototypeDerivationRuleItemProvider.dispose();
}
}