/******************************************************************************* * Copyright (c) 2009, 2011 Willink Transformations and others. * 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: * IBM - Initial API and implementation *******************************************************************************/ package org.eclipse.ocl.expressions.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.eclipse.ocl.expressions.util.ExpressionsAdapterFactory; /** * 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 ExpressionsItemProviderAdapterFactory extends ExpressionsAdapterFactory 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 ExpressionsItemProviderAdapterFactory() { 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.eclipse.ocl.expressions.AssociationClassCallExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected AssociationClassCallExpItemProvider associationClassCallExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.AssociationClassCallExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createAssociationClassCallExpAdapter() { if (associationClassCallExpItemProvider == null) { associationClassCallExpItemProvider = new AssociationClassCallExpItemProvider( this); } return associationClassCallExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.BooleanLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected BooleanLiteralExpItemProvider booleanLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.BooleanLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createBooleanLiteralExpAdapter() { if (booleanLiteralExpItemProvider == null) { booleanLiteralExpItemProvider = new BooleanLiteralExpItemProvider( this); } return booleanLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.CollectionItem} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected CollectionItemItemProvider collectionItemItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.CollectionItem}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createCollectionItemAdapter() { if (collectionItemItemProvider == null) { collectionItemItemProvider = new CollectionItemItemProvider(this); } return collectionItemItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.CollectionLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected CollectionLiteralExpItemProvider collectionLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.CollectionLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createCollectionLiteralExpAdapter() { if (collectionLiteralExpItemProvider == null) { collectionLiteralExpItemProvider = new CollectionLiteralExpItemProvider( this); } return collectionLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.CollectionRange} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected CollectionRangeItemProvider collectionRangeItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.CollectionRange}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createCollectionRangeAdapter() { if (collectionRangeItemProvider == null) { collectionRangeItemProvider = new CollectionRangeItemProvider(this); } return collectionRangeItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.EnumLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected EnumLiteralExpItemProvider enumLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.EnumLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createEnumLiteralExpAdapter() { if (enumLiteralExpItemProvider == null) { enumLiteralExpItemProvider = new EnumLiteralExpItemProvider(this); } return enumLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.IfExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IfExpItemProvider ifExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.IfExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIfExpAdapter() { if (ifExpItemProvider == null) { ifExpItemProvider = new IfExpItemProvider(this); } return ifExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.IntegerLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IntegerLiteralExpItemProvider integerLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.IntegerLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIntegerLiteralExpAdapter() { if (integerLiteralExpItemProvider == null) { integerLiteralExpItemProvider = new IntegerLiteralExpItemProvider( this); } return integerLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected UnlimitedNaturalLiteralExpItemProvider unlimitedNaturalLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.UnlimitedNaturalLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createUnlimitedNaturalLiteralExpAdapter() { if (unlimitedNaturalLiteralExpItemProvider == null) { unlimitedNaturalLiteralExpItemProvider = new UnlimitedNaturalLiteralExpItemProvider( this); } return unlimitedNaturalLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.InvalidLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected InvalidLiteralExpItemProvider invalidLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.InvalidLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createInvalidLiteralExpAdapter() { if (invalidLiteralExpItemProvider == null) { invalidLiteralExpItemProvider = new InvalidLiteralExpItemProvider( this); } return invalidLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.IterateExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IterateExpItemProvider iterateExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.IterateExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIterateExpAdapter() { if (iterateExpItemProvider == null) { iterateExpItemProvider = new IterateExpItemProvider(this); } return iterateExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.Variable} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected VariableItemProvider variableItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.Variable}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createVariableAdapter() { if (variableItemProvider == null) { variableItemProvider = new VariableItemProvider(this); } return variableItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.IteratorExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IteratorExpItemProvider iteratorExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.IteratorExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIteratorExpAdapter() { if (iteratorExpItemProvider == null) { iteratorExpItemProvider = new IteratorExpItemProvider(this); } return iteratorExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.LetExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected LetExpItemProvider letExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.LetExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createLetExpAdapter() { if (letExpItemProvider == null) { letExpItemProvider = new LetExpItemProvider(this); } return letExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.MessageExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected MessageExpItemProvider messageExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.MessageExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createMessageExpAdapter() { if (messageExpItemProvider == null) { messageExpItemProvider = new MessageExpItemProvider(this); } return messageExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.NullLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NullLiteralExpItemProvider nullLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.NullLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNullLiteralExpAdapter() { if (nullLiteralExpItemProvider == null) { nullLiteralExpItemProvider = new NullLiteralExpItemProvider(this); } return nullLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.OperationCallExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected OperationCallExpItemProvider operationCallExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.OperationCallExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createOperationCallExpAdapter() { if (operationCallExpItemProvider == null) { operationCallExpItemProvider = new OperationCallExpItemProvider( this); } return operationCallExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.PropertyCallExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected PropertyCallExpItemProvider propertyCallExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.PropertyCallExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createPropertyCallExpAdapter() { if (propertyCallExpItemProvider == null) { propertyCallExpItemProvider = new PropertyCallExpItemProvider(this); } return propertyCallExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.RealLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected RealLiteralExpItemProvider realLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.RealLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createRealLiteralExpAdapter() { if (realLiteralExpItemProvider == null) { realLiteralExpItemProvider = new RealLiteralExpItemProvider(this); } return realLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.StateExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected StateExpItemProvider stateExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.StateExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createStateExpAdapter() { if (stateExpItemProvider == null) { stateExpItemProvider = new StateExpItemProvider(this); } return stateExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.StringLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected StringLiteralExpItemProvider stringLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.StringLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createStringLiteralExpAdapter() { if (stringLiteralExpItemProvider == null) { stringLiteralExpItemProvider = new StringLiteralExpItemProvider( this); } return stringLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.TupleLiteralExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TupleLiteralExpItemProvider tupleLiteralExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.TupleLiteralExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createTupleLiteralExpAdapter() { if (tupleLiteralExpItemProvider == null) { tupleLiteralExpItemProvider = new TupleLiteralExpItemProvider(this); } return tupleLiteralExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.TupleLiteralPart} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TupleLiteralPartItemProvider tupleLiteralPartItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.TupleLiteralPart}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createTupleLiteralPartAdapter() { if (tupleLiteralPartItemProvider == null) { tupleLiteralPartItemProvider = new TupleLiteralPartItemProvider( this); } return tupleLiteralPartItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.TypeExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TypeExpItemProvider typeExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.TypeExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createTypeExpAdapter() { if (typeExpItemProvider == null) { typeExpItemProvider = new TypeExpItemProvider(this); } return typeExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.UnspecifiedValueExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected UnspecifiedValueExpItemProvider unspecifiedValueExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.UnspecifiedValueExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createUnspecifiedValueExpAdapter() { if (unspecifiedValueExpItemProvider == null) { unspecifiedValueExpItemProvider = new UnspecifiedValueExpItemProvider( this); } return unspecifiedValueExpItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.ocl.expressions.VariableExp} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected VariableExpItemProvider variableExpItemProvider; /** * This creates an adapter for a {@link org.eclipse.ocl.expressions.VariableExp}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createVariableExpAdapter() { if (variableExpItemProvider == null) { variableExpItemProvider = new VariableExpItemProvider(this); } return variableExpItemProvider; } /** * 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 (associationClassCallExpItemProvider != null) associationClassCallExpItemProvider.dispose(); if (booleanLiteralExpItemProvider != null) booleanLiteralExpItemProvider.dispose(); if (collectionItemItemProvider != null) collectionItemItemProvider.dispose(); if (collectionLiteralExpItemProvider != null) collectionLiteralExpItemProvider.dispose(); if (collectionRangeItemProvider != null) collectionRangeItemProvider.dispose(); if (enumLiteralExpItemProvider != null) enumLiteralExpItemProvider.dispose(); if (ifExpItemProvider != null) ifExpItemProvider.dispose(); if (integerLiteralExpItemProvider != null) integerLiteralExpItemProvider.dispose(); if (unlimitedNaturalLiteralExpItemProvider != null) unlimitedNaturalLiteralExpItemProvider.dispose(); if (invalidLiteralExpItemProvider != null) invalidLiteralExpItemProvider.dispose(); if (iterateExpItemProvider != null) iterateExpItemProvider.dispose(); if (variableItemProvider != null) variableItemProvider.dispose(); if (iteratorExpItemProvider != null) iteratorExpItemProvider.dispose(); if (letExpItemProvider != null) letExpItemProvider.dispose(); if (messageExpItemProvider != null) messageExpItemProvider.dispose(); if (nullLiteralExpItemProvider != null) nullLiteralExpItemProvider.dispose(); if (operationCallExpItemProvider != null) operationCallExpItemProvider.dispose(); if (propertyCallExpItemProvider != null) propertyCallExpItemProvider.dispose(); if (realLiteralExpItemProvider != null) realLiteralExpItemProvider.dispose(); if (stateExpItemProvider != null) stateExpItemProvider.dispose(); if (stringLiteralExpItemProvider != null) stringLiteralExpItemProvider.dispose(); if (tupleLiteralExpItemProvider != null) tupleLiteralExpItemProvider.dispose(); if (tupleLiteralPartItemProvider != null) tupleLiteralPartItemProvider.dispose(); if (typeExpItemProvider != null) typeExpItemProvider.dispose(); if (unspecifiedValueExpItemProvider != null) unspecifiedValueExpItemProvider.dispose(); if (variableExpItemProvider != null) variableExpItemProvider.dispose(); } }