/** * <copyright> * </copyright> * * $Id$ */ package org.eclipse.gmf.codegen.gmfgen.impl; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; import org.eclipse.gmf.codegen.gmfgen.GenCustomPreferencePage; import org.eclipse.gmf.codegen.gmfgen.GenPreference; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Gen Preference</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenPreferenceImpl#getPage <em>Page</em>}</li> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenPreferenceImpl#getName <em>Name</em>}</li> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenPreferenceImpl#getKey <em>Key</em>}</li> * <li>{@link org.eclipse.gmf.codegen.gmfgen.impl.GenPreferenceImpl#getDefaultValue <em>Default Value</em>}</li> * </ul> * </p> * * @generated */ public class GenPreferenceImpl extends EObjectImpl implements GenPreference { /** * 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 default value of the '{@link #getKey() <em>Key</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getKey() * @generated * @ordered */ protected static final String KEY_EDEFAULT = null; /** * The cached value of the '{@link #getKey() <em>Key</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getKey() * @generated * @ordered */ protected String key = KEY_EDEFAULT; /** * The default value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDefaultValue() * @generated * @ordered */ protected static final String DEFAULT_VALUE_EDEFAULT = null; /** * The cached value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDefaultValue() * @generated * @ordered */ protected String defaultValue = DEFAULT_VALUE_EDEFAULT; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected GenPreferenceImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return GMFGenPackage.eINSTANCE.getGenPreference(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public GenCustomPreferencePage getPage() { if (eContainerFeatureID() != GMFGenPackage.GEN_PREFERENCE__PAGE) return null; return (GenCustomPreferencePage)eInternalContainer(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getName() { return name; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setName(String newName) { String oldName = name; name = newName; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_PREFERENCE__NAME, oldName, name)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getKeyGen() { return key; } public String getKey() { if (GenCommonBaseImpl.isEmpty(getKeyGen())) { StringBuilder key = new StringBuilder(); if (getPage() != null && getPage().getClassName() != null) { String cn = getPage().getClassName(); final String s1 = "PreferencePage"; //$NON-NLS-1$ final String s2 = "Page"; //$NON-NLS-1$ if (cn.length() > s1.length() && cn.endsWith(s1)) { key.append(cn.substring(0, cn.length() - s1.length())); key.append('.'); } else if (cn.length() > s2.length() && cn.endsWith(s2)) { key.append(cn.substring(0, cn.length() - s2.length())); key.append('.'); } } if (getName() != null) { String n = getName(); final String p1 = "PREF_"; //$NON-NLS-1$ if (n.length() > p1.length() && n.toUpperCase().startsWith(p1)) { n = n.substring(p1.length()); } key.append(n.replace('_', '.')); } return key.toString(); } return getKeyGen(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setKey(String newKey) { String oldKey = key; key = newKey; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_PREFERENCE__KEY, oldKey, key)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public String getDefaultValue() { return defaultValue; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setDefaultValue(String newDefaultValue) { String oldDefaultValue = defaultValue; defaultValue = newDefaultValue; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, GMFGenPackage.GEN_PREFERENCE__DEFAULT_VALUE, oldDefaultValue, defaultValue)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__PAGE: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return eBasicSetContainer(otherEnd, GMFGenPackage.GEN_PREFERENCE__PAGE, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__PAGE: return eBasicSetContainer(null, GMFGenPackage.GEN_PREFERENCE__PAGE, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { switch (eContainerFeatureID()) { case GMFGenPackage.GEN_PREFERENCE__PAGE: return eInternalContainer().eInverseRemove(this, GMFGenPackage.GEN_CUSTOM_PREFERENCE_PAGE__PREFERENCES, GenCustomPreferencePage.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__PAGE: return getPage(); case GMFGenPackage.GEN_PREFERENCE__NAME: return getName(); case GMFGenPackage.GEN_PREFERENCE__KEY: return getKey(); case GMFGenPackage.GEN_PREFERENCE__DEFAULT_VALUE: return getDefaultValue(); } return super.eGet(featureID, resolve, coreType); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__NAME: setName((String)newValue); return; case GMFGenPackage.GEN_PREFERENCE__KEY: setKey((String)newValue); return; case GMFGenPackage.GEN_PREFERENCE__DEFAULT_VALUE: setDefaultValue((String)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__NAME: setName(NAME_EDEFAULT); return; case GMFGenPackage.GEN_PREFERENCE__KEY: setKey(KEY_EDEFAULT); return; case GMFGenPackage.GEN_PREFERENCE__DEFAULT_VALUE: setDefaultValue(DEFAULT_VALUE_EDEFAULT); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case GMFGenPackage.GEN_PREFERENCE__PAGE: return getPage() != null; case GMFGenPackage.GEN_PREFERENCE__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); case GMFGenPackage.GEN_PREFERENCE__KEY: return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); case GMFGenPackage.GEN_PREFERENCE__DEFAULT_VALUE: return DEFAULT_VALUE_EDEFAULT == null ? defaultValue != null : !DEFAULT_VALUE_EDEFAULT.equals(defaultValue); } return super.eIsSet(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); result.append(name); result.append(", key: "); result.append(key); result.append(", defaultValue: "); result.append(defaultValue); result.append(')'); return result.toString(); } } //GenPreferenceImpl