/**
* <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();
}
}