/**
* <copyright>
* </copyright>
*
* $Id$
*/
package fr.inria.atlanmod.collaboro.history.provider;
import fr.inria.atlanmod.collaboro.history.util.HistoryAdapterFactory;
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 HistoryItemProviderAdapterFactory extends HistoryAdapterFactory 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 HistoryItemProviderAdapterFactory() {
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 fr.inria.atlanmod.collaboro.history.History} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected HistoryItemProvider historyItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.History}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createHistoryAdapter() {
if (historyItemProvider == null) {
historyItemProvider = new HistoryItemProvider(this);
}
return historyItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.VersionHistory} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected VersionHistoryItemProvider versionHistoryItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.VersionHistory}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createVersionHistoryAdapter() {
if (versionHistoryItemProvider == null) {
versionHistoryItemProvider = new VersionHistoryItemProvider(this);
}
return versionHistoryItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.User} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected UserItemProvider userItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.User}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createUserAdapter() {
if (userItemProvider == null) {
userItemProvider = new UserItemProvider(this);
}
return userItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Version} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected VersionItemProvider versionItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Version}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createVersionAdapter() {
if (versionItemProvider == null) {
versionItemProvider = new VersionItemProvider(this);
}
return versionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Vote} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected VoteItemProvider voteItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Vote}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createVoteAdapter() {
if (voteItemProvider == null) {
voteItemProvider = new VoteItemProvider(this);
}
return voteItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Collaboration} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CollaborationItemProvider collaborationItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Collaboration}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createCollaborationAdapter() {
if (collaborationItemProvider == null) {
collaborationItemProvider = new CollaborationItemProvider(this);
}
return collaborationItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Proposal} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ProposalItemProvider proposalItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Proposal}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createProposalAdapter() {
if (proposalItemProvider == null) {
proposalItemProvider = new ProposalItemProvider(this);
}
return proposalItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Solution} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected SolutionItemProvider solutionItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Solution}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createSolutionAdapter() {
if (solutionItemProvider == null) {
solutionItemProvider = new SolutionItemProvider(this);
}
return solutionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Comment} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected CommentItemProvider commentItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Comment}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createCommentAdapter() {
if (commentItemProvider == null) {
commentItemProvider = new CommentItemProvider(this);
}
return commentItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Add} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected AddItemProvider addItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Add}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createAddAdapter() {
if (addItemProvider == null) {
addItemProvider = new AddItemProvider(this);
}
return addItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Update} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected UpdateItemProvider updateItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Update}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createUpdateAdapter() {
if (updateItemProvider == null) {
updateItemProvider = new UpdateItemProvider(this);
}
return updateItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Delete} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected DeleteItemProvider deleteItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Delete}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createDeleteAdapter() {
if (deleteItemProvider == null) {
deleteItemProvider = new DeleteItemProvider(this);
}
return deleteItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.ExistingAbstractSyntaxElement} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ExistingAbstractSyntaxElementItemProvider existingAbstractSyntaxElementItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.ExistingAbstractSyntaxElement}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createExistingAbstractSyntaxElementAdapter() {
if (existingAbstractSyntaxElementItemProvider == null) {
existingAbstractSyntaxElementItemProvider = new ExistingAbstractSyntaxElementItemProvider(this);
}
return existingAbstractSyntaxElementItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.NewAbstractSyntaxElement} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected NewAbstractSyntaxElementItemProvider newAbstractSyntaxElementItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.NewAbstractSyntaxElement}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createNewAbstractSyntaxElementAdapter() {
if (newAbstractSyntaxElementItemProvider == null) {
newAbstractSyntaxElementItemProvider = new NewAbstractSyntaxElementItemProvider(this);
}
return newAbstractSyntaxElementItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.ConcreteSyntaxElement} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ConcreteSyntaxElementItemProvider concreteSyntaxElementItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.ConcreteSyntaxElement}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createConcreteSyntaxElementAdapter() {
if (concreteSyntaxElementItemProvider == null) {
concreteSyntaxElementItemProvider = new ConcreteSyntaxElementItemProvider(this);
}
return concreteSyntaxElementItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Priority} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PriorityItemProvider priorityItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Priority}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createPriorityAdapter() {
if (priorityItemProvider == null) {
priorityItemProvider = new PriorityItemProvider(this);
}
return priorityItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.TagBased} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected TagBasedItemProvider tagBasedItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.TagBased}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createTagBasedAdapter() {
if (tagBasedItemProvider == null) {
tagBasedItemProvider = new TagBasedItemProvider(this);
}
return tagBasedItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link fr.inria.atlanmod.collaboro.history.Tag} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected TagItemProvider tagItemProvider;
/**
* This creates an adapter for a {@link fr.inria.atlanmod.collaboro.history.Tag}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createTagAdapter() {
if (tagItemProvider == null) {
tagItemProvider = new TagItemProvider(this);
}
return tagItemProvider;
}
/**
* 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 (historyItemProvider != null) historyItemProvider.dispose();
if (versionHistoryItemProvider != null) versionHistoryItemProvider.dispose();
if (userItemProvider != null) userItemProvider.dispose();
if (versionItemProvider != null) versionItemProvider.dispose();
if (voteItemProvider != null) voteItemProvider.dispose();
if (collaborationItemProvider != null) collaborationItemProvider.dispose();
if (proposalItemProvider != null) proposalItemProvider.dispose();
if (solutionItemProvider != null) solutionItemProvider.dispose();
if (commentItemProvider != null) commentItemProvider.dispose();
if (addItemProvider != null) addItemProvider.dispose();
if (updateItemProvider != null) updateItemProvider.dispose();
if (deleteItemProvider != null) deleteItemProvider.dispose();
if (existingAbstractSyntaxElementItemProvider != null) existingAbstractSyntaxElementItemProvider.dispose();
if (newAbstractSyntaxElementItemProvider != null) newAbstractSyntaxElementItemProvider.dispose();
if (concreteSyntaxElementItemProvider != null) concreteSyntaxElementItemProvider.dispose();
if (priorityItemProvider != null) priorityItemProvider.dispose();
if (tagBasedItemProvider != null) tagBasedItemProvider.dispose();
if (tagItemProvider != null) tagItemProvider.dispose();
}
}