/* * Copyright (c) 2012, 2013, 2015, 2016 Eike Stepper (Berlin, Germany) 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: * Eike Stepper - initial API and implementation */ package org.eclipse.emf.cdo.security.provider; import org.eclipse.emf.cdo.security.SecurityPackage; import org.eclipse.emf.cdo.security.util.SecurityAdapterFactory; 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.common.util.ResourceLocator; import org.eclipse.emf.edit.domain.EditingDomain; import org.eclipse.emf.edit.provider.ChangeNotifier; import org.eclipse.emf.edit.provider.ChildCreationExtenderManager; 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.IChildCreationExtender; import org.eclipse.emf.edit.provider.IDisposable; import org.eclipse.emf.edit.provider.IEditingDomainItemProvider; import org.eclipse.emf.edit.provider.IItemColorProvider; import org.eclipse.emf.edit.provider.IItemFontProvider; 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.ITableItemColorProvider; import org.eclipse.emf.edit.provider.ITableItemFontProvider; import org.eclipse.emf.edit.provider.ITableItemLabelProvider; import org.eclipse.emf.edit.provider.ITreeItemContentProvider; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * 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 SecurityItemProviderAdapterFactory extends SecurityAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender { /** * 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 helps manage the child creation extenders. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(SecurityEditPlugin.INSTANCE, SecurityPackage.eNS_URI); /** * 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 SecurityItemProviderAdapterFactory() { supportedTypes.add(IEditingDomainItemProvider.class); supportedTypes.add(IStructuredItemContentProvider.class); supportedTypes.add(ITreeItemContentProvider.class); supportedTypes.add(IItemLabelProvider.class); supportedTypes.add(IItemPropertySource.class); supportedTypes.add(ITableItemLabelProvider.class); supportedTypes.add(ITableItemColorProvider.class); supportedTypes.add(ITableItemFontProvider.class); supportedTypes.add(IItemColorProvider.class); supportedTypes.add(IItemFontProvider.class); } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.Realm} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected RealmItemProvider realmItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.Realm}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createRealmAdapter() { if (realmItemProvider == null) { realmItemProvider = new RealmItemProvider(this); } return realmItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.Directory} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected DirectoryItemProvider directoryItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.Directory}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createDirectoryAdapter() { if (directoryItemProvider == null) { directoryItemProvider = new DirectoryItemProvider(this); } return directoryItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.Role} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected RoleItemProvider roleItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.Role}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createRoleAdapter() { if (roleItemProvider == null) { roleItemProvider = new RoleItemProvider(this); } return roleItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.Group} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected GroupItemProvider groupItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.Group}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createGroupAdapter() { if (groupItemProvider == null) { groupItemProvider = new GroupItemProvider(this); } return groupItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.User} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected UserItemProvider userItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.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 org.eclipse.emf.cdo.security.UserPassword} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected UserPasswordItemProvider userPasswordItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.UserPassword}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createUserPasswordAdapter() { if (userPasswordItemProvider == null) { userPasswordItemProvider = new UserPasswordItemProvider(this); } return userPasswordItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ClassPermission} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated protected ClassPermissionItemProvider classPermissionItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ClassPermission}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated @Override public Adapter createClassPermissionAdapter() { if (classPermissionItemProvider == null) { classPermissionItemProvider = new ClassPermissionItemProvider(this); } return classPermissionItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.PackagePermission} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated protected PackagePermissionItemProvider packagePermissionItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.PackagePermission}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated @Override public Adapter createPackagePermissionAdapter() { if (packagePermissionItemProvider == null) { packagePermissionItemProvider = new PackagePermissionItemProvider(this); } return packagePermissionItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ResourcePermission} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated protected ResourcePermissionItemProvider resourcePermissionItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ResourcePermission}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Deprecated @Override public Adapter createResourcePermissionAdapter() { if (resourcePermissionItemProvider == null) { resourcePermissionItemProvider = new ResourcePermissionItemProvider(this); } return resourcePermissionItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.FilterPermission} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected FilterPermissionItemProvider filterPermissionItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.FilterPermission}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createFilterPermissionAdapter() { if (filterPermissionItemProvider == null) { filterPermissionItemProvider = new FilterPermissionItemProvider(this); } return filterPermissionItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.LinkedFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected LinkedFilterItemProvider linkedFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.LinkedFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createLinkedFilterAdapter() { if (linkedFilterItemProvider == null) { linkedFilterItemProvider = new LinkedFilterItemProvider(this); } return linkedFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.PackageFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected PackageFilterItemProvider packageFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.PackageFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createPackageFilterAdapter() { if (packageFilterItemProvider == null) { packageFilterItemProvider = new PackageFilterItemProvider(this); } return packageFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ClassFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected ClassFilterItemProvider classFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ClassFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createClassFilterAdapter() { if (classFilterItemProvider == null) { classFilterItemProvider = new ClassFilterItemProvider(this); } return classFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ResourceFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected ResourceFilterItemProvider resourceFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ResourceFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createResourceFilterAdapter() { if (resourceFilterItemProvider == null) { resourceFilterItemProvider = new ResourceFilterItemProvider(this); } return resourceFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.ExpressionFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected ExpressionFilterItemProvider expressionFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.ExpressionFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createExpressionFilterAdapter() { if (expressionFilterItemProvider == null) { expressionFilterItemProvider = new ExpressionFilterItemProvider(this); } return expressionFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.NotFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected NotFilterItemProvider notFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.NotFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createNotFilterAdapter() { if (notFilterItemProvider == null) { notFilterItemProvider = new NotFilterItemProvider(this); } return notFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.AndFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected AndFilterItemProvider andFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.AndFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createAndFilterAdapter() { if (andFilterItemProvider == null) { andFilterItemProvider = new AndFilterItemProvider(this); } return andFilterItemProvider; } /** * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.security.OrFilter} instances. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ protected OrFilterItemProvider orFilterItemProvider; /** * This creates an adapter for a {@link org.eclipse.emf.cdo.security.OrFilter}. * <!-- begin-user-doc --> * @since 4.3 * <!-- end-user-doc --> * @generated */ @Override public Adapter createOrFilterAdapter() { if (orFilterItemProvider == null) { orFilterItemProvider = new OrFilterItemProvider(this); } return orFilterItemProvider; } /** * 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; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public List<IChildCreationExtender> getChildCreationExtenders() { return childCreationExtenderManager.getChildCreationExtenders(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) { return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ResourceLocator getResourceLocator() { return childCreationExtenderManager; } /** * 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 (realmItemProvider != null) { realmItemProvider.dispose(); } if (directoryItemProvider != null) { directoryItemProvider.dispose(); } if (roleItemProvider != null) { roleItemProvider.dispose(); } if (groupItemProvider != null) { groupItemProvider.dispose(); } if (userItemProvider != null) { userItemProvider.dispose(); } if (userPasswordItemProvider != null) { userPasswordItemProvider.dispose(); } if (classPermissionItemProvider != null) { classPermissionItemProvider.dispose(); } if (packagePermissionItemProvider != null) { packagePermissionItemProvider.dispose(); } if (resourcePermissionItemProvider != null) { resourcePermissionItemProvider.dispose(); } if (filterPermissionItemProvider != null) { filterPermissionItemProvider.dispose(); } if (linkedFilterItemProvider != null) { linkedFilterItemProvider.dispose(); } if (packageFilterItemProvider != null) { packageFilterItemProvider.dispose(); } if (classFilterItemProvider != null) { classFilterItemProvider.dispose(); } if (resourceFilterItemProvider != null) { resourceFilterItemProvider.dispose(); } if (expressionFilterItemProvider != null) { expressionFilterItemProvider.dispose(); } if (notFilterItemProvider != null) { notFilterItemProvider.dispose(); } if (andFilterItemProvider != null) { andFilterItemProvider.dispose(); } if (orFilterItemProvider != null) { orFilterItemProvider.dispose(); } } }