/*******************************************************************************
* Copyright (c) 2006-2013 The RCP Company 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:
* The RCP Company - initial API and implementation
*******************************************************************************/
package com.rcpcompany.uibindings.navigator.internal;
import java.util.Collection;
import org.eclipse.core.expressions.Expression;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import com.rcpcompany.uibindings.navigator.IEditorPartDescriptor;
import com.rcpcompany.uibindings.navigator.IEditorPartFactory;
import com.rcpcompany.uibindings.navigator.INavigatorModelPackage;
import com.rcpcompany.utils.extensionpoints.CEObjectHolder;
import com.rcpcompany.utils.extensionpoints.CEResourceHolder;
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Editor Descriptor</b></em>
* '. <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getId <em>Id
* </em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getName <em>Name
* </em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getModelTypes
* <em>Model Types</em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getTreeItemIDs
* <em>Tree Item IDs</em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getPriority <em>
* Priority</em>}</li>
* <li>
* {@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#isFallbackEditor
* <em>Fallback Editor</em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getFactory <em>
* Factory</em>}</li>
* <li>{@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getImage <em>
* Image</em>}</li>
* <li>
* {@link com.rcpcompany.uibindings.navigator.internal.EditorPartDescriptorImpl#getEnabledWhenExpression
* <em>Enabled When Expression</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class EditorPartDescriptorImpl extends EObjectImpl implements IEditorPartDescriptor {
/**
* The default value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getId()
* @generated
* @ordered
*/
protected static final String ID_EDEFAULT = null;
/**
* The cached value of the '{@link #getId() <em>Id</em>}' attribute. <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getId()
* @generated
* @ordered
*/
protected String id = ID_EDEFAULT;
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc
* --> <!-- end-user-doc -->
*
* @see #getName()
* @generated
* @ordered
*/
protected static final String NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getName() <em>Name</em>}' attribute. <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
* @see #getName()
* @generated
* @ordered
*/
protected String name = NAME_EDEFAULT;
/**
* The cached value of the '{@link #getModelTypes() <em>Model Types</em>}' attribute list. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see #getModelTypes()
* @generated
* @ordered
*/
protected EList<String> modelTypes;
/**
* The cached value of the '{@link #getTreeItemIDs() <em>Tree Item IDs</em>}' attribute list.
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see #getTreeItemIDs()
* @generated
* @ordered
*/
protected EList<String> treeItemIDs;
/**
* The default value of the '{@link #getPriority() <em>Priority</em>}' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see #getPriority()
* @generated
* @ordered
*/
protected static final int PRIORITY_EDEFAULT = 0;
/**
* The cached value of the '{@link #getPriority() <em>Priority</em>}' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see #getPriority()
* @generated
* @ordered
*/
protected int priority = PRIORITY_EDEFAULT;
/**
* The default value of the '{@link #isFallbackEditor() <em>Fallback Editor</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see #isFallbackEditor()
* @generated
* @ordered
*/
protected static final boolean FALLBACK_EDITOR_EDEFAULT = false;
/**
* The cached value of the '{@link #isFallbackEditor() <em>Fallback Editor</em>}' attribute.
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see #isFallbackEditor()
* @generated
* @ordered
*/
protected boolean fallbackEditor = FALLBACK_EDITOR_EDEFAULT;
/**
* The cached value of the '{@link #getFactory() <em>Factory</em>}' attribute. <!--
* begin-user-doc --> <!-- end-user-doc -->
*
* @see #getFactory()
* @generated
* @ordered
*/
protected CEObjectHolder<IEditorPartFactory> factory;
/**
* The default value of the '{@link #getImage() <em>Image</em>}' attribute. <!-- begin-user-doc
* --> <!-- end-user-doc -->
*
* @see #getImage()
* @generated
* @ordered
*/
protected static final CEResourceHolder IMAGE_EDEFAULT = null;
/**
* The cached value of the '{@link #getImage() <em>Image</em>}' attribute. <!-- begin-user-doc
* --> <!-- end-user-doc -->
*
* @see #getImage()
* @generated
* @ordered
*/
protected CEResourceHolder image = IMAGE_EDEFAULT;
/**
* The default value of the '{@link #getEnabledWhenExpression()
* <em>Enabled When Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see #getEnabledWhenExpression()
* @generated
* @ordered
*/
protected static final Expression ENABLED_WHEN_EXPRESSION_EDEFAULT = null;
/**
* The cached value of the '{@link #getEnabledWhenExpression() <em>Enabled When Expression</em>}
* ' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @see #getEnabledWhenExpression()
* @generated
* @ordered
*/
protected Expression enabledWhenExpression = ENABLED_WHEN_EXPRESSION_EDEFAULT;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
protected EditorPartDescriptorImpl() {
super();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return INavigatorModelPackage.Literals.EDITOR_PART_DESCRIPTOR;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public String getId() {
return id;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setId(String newId) {
final String oldId = id;
id = newId;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ID,
oldId, id));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public String getName() {
return name;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setName(String newName) {
final String oldName = name;
name = newName;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__NAME,
oldName, name));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EList<String> getModelTypes() {
if (modelTypes == null) {
modelTypes = new EDataTypeUniqueEList<String>(String.class, this,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__MODEL_TYPES);
}
return modelTypes;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public EList<String> getTreeItemIDs() {
if (treeItemIDs == null) {
treeItemIDs = new EDataTypeUniqueEList<String>(String.class, this,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__TREE_ITEM_IDS);
}
return treeItemIDs;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public int getPriority() {
return priority;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setPriority(int newPriority) {
final int oldPriority = priority;
priority = newPriority;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__PRIORITY, oldPriority, priority));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean isFallbackEditor() {
return fallbackEditor;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setFallbackEditor(boolean newFallbackEditor) {
final boolean oldFallbackEditor = fallbackEditor;
fallbackEditor = newFallbackEditor;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FALLBACK_EDITOR, oldFallbackEditor, fallbackEditor));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public CEObjectHolder<IEditorPartFactory> getFactory() {
return factory;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setFactory(CEObjectHolder<IEditorPartFactory> newFactory) {
final CEObjectHolder<IEditorPartFactory> oldFactory = factory;
factory = newFactory;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FACTORY, oldFactory, factory));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public CEResourceHolder getImage() {
return image;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setImage(CEResourceHolder newImage) {
final CEResourceHolder oldImage = image;
image = newImage;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET, INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__IMAGE,
oldImage, image));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Expression getEnabledWhenExpression() {
return enabledWhenExpression;
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void setEnabledWhenExpression(Expression newEnabledWhenExpression) {
final Expression oldEnabledWhenExpression = enabledWhenExpression;
enabledWhenExpression = newEnabledWhenExpression;
if (eNotificationRequired()) {
eNotify(new ENotificationImpl(this, Notification.SET,
INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ENABLED_WHEN_EXPRESSION, oldEnabledWhenExpression,
enabledWhenExpression));
}
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ID:
return getId();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__NAME:
return getName();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__MODEL_TYPES:
return getModelTypes();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__TREE_ITEM_IDS:
return getTreeItemIDs();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__PRIORITY:
return getPriority();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FALLBACK_EDITOR:
return isFallbackEditor();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FACTORY:
return getFactory();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__IMAGE:
return getImage();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ENABLED_WHEN_EXPRESSION:
return getEnabledWhenExpression();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ID:
setId((String) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__NAME:
setName((String) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__MODEL_TYPES:
getModelTypes().clear();
getModelTypes().addAll((Collection<? extends String>) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__TREE_ITEM_IDS:
getTreeItemIDs().clear();
getTreeItemIDs().addAll((Collection<? extends String>) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__PRIORITY:
setPriority((Integer) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FALLBACK_EDITOR:
setFallbackEditor((Boolean) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FACTORY:
setFactory((CEObjectHolder<IEditorPartFactory>) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__IMAGE:
setImage((CEResourceHolder) newValue);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ENABLED_WHEN_EXPRESSION:
setEnabledWhenExpression((Expression) newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ID:
setId(ID_EDEFAULT);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__NAME:
setName(NAME_EDEFAULT);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__MODEL_TYPES:
getModelTypes().clear();
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__TREE_ITEM_IDS:
getTreeItemIDs().clear();
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__PRIORITY:
setPriority(PRIORITY_EDEFAULT);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FALLBACK_EDITOR:
setFallbackEditor(FALLBACK_EDITOR_EDEFAULT);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FACTORY:
setFactory((CEObjectHolder<IEditorPartFactory>) null);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__IMAGE:
setImage(IMAGE_EDEFAULT);
return;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ENABLED_WHEN_EXPRESSION:
setEnabledWhenExpression(ENABLED_WHEN_EXPRESSION_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ID:
return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__MODEL_TYPES:
return modelTypes != null && !modelTypes.isEmpty();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__TREE_ITEM_IDS:
return treeItemIDs != null && !treeItemIDs.isEmpty();
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__PRIORITY:
return priority != PRIORITY_EDEFAULT;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FALLBACK_EDITOR:
return fallbackEditor != FALLBACK_EDITOR_EDEFAULT;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__FACTORY:
return factory != null;
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__IMAGE:
return IMAGE_EDEFAULT == null ? image != null : !IMAGE_EDEFAULT.equals(image);
case INavigatorModelPackage.EDITOR_PART_DESCRIPTOR__ENABLED_WHEN_EXPRESSION:
return ENABLED_WHEN_EXPRESSION_EDEFAULT == null ? enabledWhenExpression != null
: !ENABLED_WHEN_EXPRESSION_EDEFAULT.equals(enabledWhenExpression);
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
final StringBuffer result = new StringBuffer(super.toString());
result.append(" (id: ");
result.append(id);
result.append(", name: ");
result.append(name);
result.append(", modelTypes: ");
result.append(modelTypes);
result.append(", treeItemIDs: ");
result.append(treeItemIDs);
result.append(", priority: ");
result.append(priority);
result.append(", fallbackEditor: ");
result.append(fallbackEditor);
result.append(", factory: ");
result.append(factory);
result.append(", image: ");
result.append(image);
result.append(", enabledWhenExpression: ");
result.append(enabledWhenExpression);
result.append(')');
return result.toString();
}
} // EditorDescriptorImpl