/** * <copyright> * </copyright> * * $Id$ */ package uima.cas.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 uima.cas.util.CasAdapterFactory; /** * 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 CasItemProviderAdapterFactory extends CasAdapterFactory 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 CasItemProviderAdapterFactory() { 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 uima.cas.TOP} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected TOPItemProvider topItemProvider; /** * This creates an adapter for a {@link uima.cas.TOP}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createTOPAdapter() { if (topItemProvider == null) { topItemProvider = new TOPItemProvider(this); } return topItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.Sofa} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected SofaItemProvider sofaItemProvider; /** * This creates an adapter for a {@link uima.cas.Sofa}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createSofaAdapter() { if (sofaItemProvider == null) { sofaItemProvider = new SofaItemProvider(this); } return sofaItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.NonEmptyFSList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NonEmptyFSListItemProvider nonEmptyFSListItemProvider; /** * This creates an adapter for a {@link uima.cas.NonEmptyFSList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNonEmptyFSListAdapter() { if (nonEmptyFSListItemProvider == null) { nonEmptyFSListItemProvider = new NonEmptyFSListItemProvider(this); } return nonEmptyFSListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.EmptyFSList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected EmptyFSListItemProvider emptyFSListItemProvider; /** * This creates an adapter for a {@link uima.cas.EmptyFSList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createEmptyFSListAdapter() { if (emptyFSListItemProvider == null) { emptyFSListItemProvider = new EmptyFSListItemProvider(this); } return emptyFSListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.EmptyStringList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected EmptyStringListItemProvider emptyStringListItemProvider; /** * This creates an adapter for a {@link uima.cas.EmptyStringList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createEmptyStringListAdapter() { if (emptyStringListItemProvider == null) { emptyStringListItemProvider = new EmptyStringListItemProvider(this); } return emptyStringListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.NonEmptyStringList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NonEmptyStringListItemProvider nonEmptyStringListItemProvider; /** * This creates an adapter for a {@link uima.cas.NonEmptyStringList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNonEmptyStringListAdapter() { if (nonEmptyStringListItemProvider == null) { nonEmptyStringListItemProvider = new NonEmptyStringListItemProvider(this); } return nonEmptyStringListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.IntegerList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IntegerListItemProvider integerListItemProvider; /** * This creates an adapter for a {@link uima.cas.IntegerList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIntegerListAdapter() { if (integerListItemProvider == null) { integerListItemProvider = new IntegerListItemProvider(this); } return integerListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.EmptyIntegerList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected EmptyIntegerListItemProvider emptyIntegerListItemProvider; /** * This creates an adapter for a {@link uima.cas.EmptyIntegerList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createEmptyIntegerListAdapter() { if (emptyIntegerListItemProvider == null) { emptyIntegerListItemProvider = new EmptyIntegerListItemProvider(this); } return emptyIntegerListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.NonEmptyIntegerList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NonEmptyIntegerListItemProvider nonEmptyIntegerListItemProvider; /** * This creates an adapter for a {@link uima.cas.NonEmptyIntegerList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNonEmptyIntegerListAdapter() { if (nonEmptyIntegerListItemProvider == null) { nonEmptyIntegerListItemProvider = new NonEmptyIntegerListItemProvider(this); } return nonEmptyIntegerListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.FloatList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected FloatListItemProvider floatListItemProvider; /** * This creates an adapter for a {@link uima.cas.FloatList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createFloatListAdapter() { if (floatListItemProvider == null) { floatListItemProvider = new FloatListItemProvider(this); } return floatListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.EmptyFloatList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected EmptyFloatListItemProvider emptyFloatListItemProvider; /** * This creates an adapter for a {@link uima.cas.EmptyFloatList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createEmptyFloatListAdapter() { if (emptyFloatListItemProvider == null) { emptyFloatListItemProvider = new EmptyFloatListItemProvider(this); } return emptyFloatListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.NonEmptyFloatList} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NonEmptyFloatListItemProvider nonEmptyFloatListItemProvider; /** * This creates an adapter for a {@link uima.cas.NonEmptyFloatList}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNonEmptyFloatListAdapter() { if (nonEmptyFloatListItemProvider == null) { nonEmptyFloatListItemProvider = new NonEmptyFloatListItemProvider(this); } return nonEmptyFloatListItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.ArrayBase} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ArrayBaseItemProvider arrayBaseItemProvider; /** * This creates an adapter for a {@link uima.cas.ArrayBase}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createArrayBaseAdapter() { if (arrayBaseItemProvider == null) { arrayBaseItemProvider = new ArrayBaseItemProvider(this); } return arrayBaseItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.IntegerArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected IntegerArrayItemProvider integerArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.IntegerArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createIntegerArrayAdapter() { if (integerArrayItemProvider == null) { integerArrayItemProvider = new IntegerArrayItemProvider(this); } return integerArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.FloatArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected FloatArrayItemProvider floatArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.FloatArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createFloatArrayAdapter() { if (floatArrayItemProvider == null) { floatArrayItemProvider = new FloatArrayItemProvider(this); } return floatArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.StringArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected StringArrayItemProvider stringArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.StringArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createStringArrayAdapter() { if (stringArrayItemProvider == null) { stringArrayItemProvider = new StringArrayItemProvider(this); } return stringArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.FSArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected FSArrayItemProvider fsArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.FSArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createFSArrayAdapter() { if (fsArrayItemProvider == null) { fsArrayItemProvider = new FSArrayItemProvider(this); } return fsArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.NULL} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected NULLItemProvider nullItemProvider; /** * This creates an adapter for a {@link uima.cas.NULL}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createNULLAdapter() { if (nullItemProvider == null) { nullItemProvider = new NULLItemProvider(this); } return nullItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.View} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ViewItemProvider viewItemProvider; /** * This creates an adapter for a {@link uima.cas.View}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createViewAdapter() { if (viewItemProvider == null) { viewItemProvider = new ViewItemProvider(this); } return viewItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.AnnotationBase} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected AnnotationBaseItemProvider annotationBaseItemProvider; /** * This creates an adapter for a {@link uima.cas.AnnotationBase}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createAnnotationBaseAdapter() { if (annotationBaseItemProvider == null) { annotationBaseItemProvider = new AnnotationBaseItemProvider(this); } return annotationBaseItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.ShortArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ShortArrayItemProvider shortArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.ShortArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createShortArrayAdapter() { if (shortArrayItemProvider == null) { shortArrayItemProvider = new ShortArrayItemProvider(this); } return shortArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.LongArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected LongArrayItemProvider longArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.LongArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createLongArrayAdapter() { if (longArrayItemProvider == null) { longArrayItemProvider = new LongArrayItemProvider(this); } return longArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.DoubleArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected DoubleArrayItemProvider doubleArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.DoubleArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createDoubleArrayAdapter() { if (doubleArrayItemProvider == null) { doubleArrayItemProvider = new DoubleArrayItemProvider(this); } return doubleArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.BooleanArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected BooleanArrayItemProvider booleanArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.BooleanArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createBooleanArrayAdapter() { if (booleanArrayItemProvider == null) { booleanArrayItemProvider = new BooleanArrayItemProvider(this); } return booleanArrayItemProvider; } /** * This keeps track of the one adapter used for all {@link uima.cas.ByteArray} instances. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ByteArrayItemProvider byteArrayItemProvider; /** * This creates an adapter for a {@link uima.cas.ByteArray}. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Adapter createByteArrayAdapter() { if (byteArrayItemProvider == null) { byteArrayItemProvider = new ByteArrayItemProvider(this); } return byteArrayItemProvider; } /** * 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 (topItemProvider != null) topItemProvider.dispose(); if (sofaItemProvider != null) sofaItemProvider.dispose(); if (nonEmptyFSListItemProvider != null) nonEmptyFSListItemProvider.dispose(); if (emptyFSListItemProvider != null) emptyFSListItemProvider.dispose(); if (emptyStringListItemProvider != null) emptyStringListItemProvider.dispose(); if (nonEmptyStringListItemProvider != null) nonEmptyStringListItemProvider.dispose(); if (integerListItemProvider != null) integerListItemProvider.dispose(); if (emptyIntegerListItemProvider != null) emptyIntegerListItemProvider.dispose(); if (nonEmptyIntegerListItemProvider != null) nonEmptyIntegerListItemProvider.dispose(); if (floatListItemProvider != null) floatListItemProvider.dispose(); if (emptyFloatListItemProvider != null) emptyFloatListItemProvider.dispose(); if (nonEmptyFloatListItemProvider != null) nonEmptyFloatListItemProvider.dispose(); if (arrayBaseItemProvider != null) arrayBaseItemProvider.dispose(); if (integerArrayItemProvider != null) integerArrayItemProvider.dispose(); if (floatArrayItemProvider != null) floatArrayItemProvider.dispose(); if (stringArrayItemProvider != null) stringArrayItemProvider.dispose(); if (fsArrayItemProvider != null) fsArrayItemProvider.dispose(); if (nullItemProvider != null) nullItemProvider.dispose(); if (viewItemProvider != null) viewItemProvider.dispose(); if (annotationBaseItemProvider != null) annotationBaseItemProvider.dispose(); if (shortArrayItemProvider != null) shortArrayItemProvider.dispose(); if (longArrayItemProvider != null) longArrayItemProvider.dispose(); if (doubleArrayItemProvider != null) doubleArrayItemProvider.dispose(); if (booleanArrayItemProvider != null) booleanArrayItemProvider.dispose(); if (byteArrayItemProvider != null) byteArrayItemProvider.dispose(); } }