/**
*/
package core.provider;
import core.util.CoreAdapterFactory;
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 CoreItemProviderAdapterFactory extends CoreAdapterFactory 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 CoreItemProviderAdapterFactory() {
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 core.Rule} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected RuleItemProvider ruleItemProvider;
/**
* This creates an adapter for a {@link core.Rule}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createRuleAdapter() {
if (ruleItemProvider == null) {
ruleItemProvider = new RuleItemProvider(this);
}
return ruleItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Add} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected AddItemProvider addItemProvider;
/**
* This creates an adapter for a {@link core.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 core.UnaryExpression} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected UnaryExpressionItemProvider unaryExpressionItemProvider;
/**
* This creates an adapter for a {@link core.UnaryExpression}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createUnaryExpressionAdapter() {
if (unaryExpressionItemProvider == null) {
unaryExpressionItemProvider = new UnaryExpressionItemProvider(this);
}
return unaryExpressionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.And} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected AndItemProvider andItemProvider;
/**
* This creates an adapter for a {@link core.And}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createAndAdapter() {
if (andItemProvider == null) {
andItemProvider = new AndItemProvider(this);
}
return andItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Or} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected OrItemProvider orItemProvider;
/**
* This creates an adapter for a {@link core.Or}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createOrAdapter() {
if (orItemProvider == null) {
orItemProvider = new OrItemProvider(this);
}
return orItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Not} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected NotItemProvider notItemProvider;
/**
* This creates an adapter for a {@link core.Not}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createNotAdapter() {
if (notItemProvider == null) {
notItemProvider = new NotItemProvider(this);
}
return notItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Greater} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected GreaterItemProvider greaterItemProvider;
/**
* This creates an adapter for a {@link core.Greater}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createGreaterAdapter() {
if (greaterItemProvider == null) {
greaterItemProvider = new GreaterItemProvider(this);
}
return greaterItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Lower} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected LowerItemProvider lowerItemProvider;
/**
* This creates an adapter for a {@link core.Lower}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createLowerAdapter() {
if (lowerItemProvider == null) {
lowerItemProvider = new LowerItemProvider(this);
}
return lowerItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.IntegerLiteral} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected IntegerLiteralItemProvider integerLiteralItemProvider;
/**
* This creates an adapter for a {@link core.IntegerLiteral}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createIntegerLiteralAdapter() {
if (integerLiteralItemProvider == null) {
integerLiteralItemProvider = new IntegerLiteralItemProvider(this);
}
return integerLiteralItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Conditional} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ConditionalItemProvider conditionalItemProvider;
/**
* This creates an adapter for a {@link core.Conditional}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createConditionalAdapter() {
if (conditionalItemProvider == null) {
conditionalItemProvider = new ConditionalItemProvider(this);
}
return conditionalItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.BinaryExpression} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected BinaryExpressionItemProvider binaryExpressionItemProvider;
/**
* This creates an adapter for a {@link core.BinaryExpression}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createBinaryExpressionAdapter() {
if (binaryExpressionItemProvider == null) {
binaryExpressionItemProvider = new BinaryExpressionItemProvider(this);
}
return binaryExpressionItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Mult} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected MultItemProvider multItemProvider;
/**
* This creates an adapter for a {@link core.Mult}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createMultAdapter() {
if (multItemProvider == null) {
multItemProvider = new MultItemProvider(this);
}
return multItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Div} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected DivItemProvider divItemProvider;
/**
* This creates an adapter for a {@link core.Div}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createDivAdapter() {
if (divItemProvider == null) {
divItemProvider = new DivItemProvider(this);
}
return divItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Mod} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ModItemProvider modItemProvider;
/**
* This creates an adapter for a {@link core.Mod}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createModAdapter() {
if (modItemProvider == null) {
modItemProvider = new ModItemProvider(this);
}
return modItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.UMinus} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected UMinusItemProvider uMinusItemProvider;
/**
* This creates an adapter for a {@link core.UMinus}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createUMinusAdapter() {
if (uMinusItemProvider == null) {
uMinusItemProvider = new UMinusItemProvider(this);
}
return uMinusItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Minus} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected MinusItemProvider minusItemProvider;
/**
* This creates an adapter for a {@link core.Minus}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createMinusAdapter() {
if (minusItemProvider == null) {
minusItemProvider = new MinusItemProvider(this);
}
return minusItemProvider;
}
/**
* This keeps track of the one adapter used for all {@link core.Equal} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EqualItemProvider equalItemProvider;
/**
* This creates an adapter for a {@link core.Equal}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Adapter createEqualAdapter() {
if (equalItemProvider == null) {
equalItemProvider = new EqualItemProvider(this);
}
return equalItemProvider;
}
/**
* 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 (ruleItemProvider != null) ruleItemProvider.dispose();
if (addItemProvider != null) addItemProvider.dispose();
if (unaryExpressionItemProvider != null) unaryExpressionItemProvider.dispose();
if (andItemProvider != null) andItemProvider.dispose();
if (orItemProvider != null) orItemProvider.dispose();
if (notItemProvider != null) notItemProvider.dispose();
if (greaterItemProvider != null) greaterItemProvider.dispose();
if (lowerItemProvider != null) lowerItemProvider.dispose();
if (integerLiteralItemProvider != null) integerLiteralItemProvider.dispose();
if (conditionalItemProvider != null) conditionalItemProvider.dispose();
if (binaryExpressionItemProvider != null) binaryExpressionItemProvider.dispose();
if (multItemProvider != null) multItemProvider.dispose();
if (divItemProvider != null) divItemProvider.dispose();
if (modItemProvider != null) modItemProvider.dispose();
if (uMinusItemProvider != null) uMinusItemProvider.dispose();
if (minusItemProvider != null) minusItemProvider.dispose();
if (equalItemProvider != null) equalItemProvider.dispose();
}
}