gt: 		if (eIsProxy()) return super.toString();
context: /* 
   * TURNUS - www.turnus.co
   * 
   * Copyright (C) 2010-2016 EPFL SCI STI MM
   *
   * This file is part of TURNUS.
   *
   * TURNUS is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * TURNUS is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with TURNUS.  If not, see <http://www.gnu.org/licenses/>.
   * 
   * Additional permission under GNU GPL version 3 section 7
   * 
   * If you modify this Program, or any covered work, by linking or combining it
   * with Eclipse (or a modified version of Eclipse or an Eclipse plugin or 
   * an Eclipse library), containing parts covered by the terms of the 
   * Eclipse Public License (EPL), the licensors of this Program grant you 
   * additional permission to convey the resulting work.  Corresponding Source 
   * for a non-source form of such a combination shall include the source code 
   * for the parts of Eclipse libraries used as well as that of the  covered work.
   * 
   */
  package turnus.model.analysis.bottlenecks.impl;
  
  import org.eclipse.emf.common.notify.Notification;
  import org.eclipse.emf.common.notify.NotificationChain;
  
  import org.eclipse.emf.common.util.BasicEMap;
  import org.eclipse.emf.common.util.EMap;
  
  import org.eclipse.emf.ecore.EClass;
  import org.eclipse.emf.ecore.EObject;
  import org.eclipse.emf.ecore.InternalEObject;
  
  import org.eclipse.emf.ecore.impl.ENotificationImpl;
  import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
  
  import turnus.model.analysis.bottlenecks.BottlenecksPackage;
  import turnus.model.analysis.bottlenecks.BottlenecksReport;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model object '<em><b>Double To Bottlenecks Report Map</b></em>'.
   * <!-- end-user-doc -->
   * <p>
   * The following features are implemented:
   * </p>
   * <ul>
   *   <li>{@link turnus.model.analysis.bottlenecks.impl.DoubleToBottlenecksReportMapImpl#getTypedKey <em>Key</em>}</li>
   *   <li>{@link turnus.model.analysis.bottlenecks.impl.DoubleToBottlenecksReportMapImpl#getTypedValue <em>Value</em>}</li>
   * </ul>
   *
   * @generated
   */
  public class DoubleToBottlenecksReportMapImpl extends MinimalEObjectImpl.Container implements BasicEMap.Entry<Double,BottlenecksReport> {
  	/**
  	 * The default value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @see #getTypedKey()
  	 * @generated
  	 * @ordered
  	 */
  	protected static final Double KEY_EDEFAULT = null;
  
  	/**
  	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' attribute.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @see #getTypedKey()
  	 * @generated
  	 * @ordered
  	 */
  	protected Double key = KEY_EDEFAULT;
  
  	/**
  	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' containment reference.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @see #getTypedValue()
  	 * @generated
  	 * @ordered
  	 */
  	protected BottlenecksReport value;
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	protected DoubleToBottlenecksReportMapImpl() {
  		super();
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	protected EClass eStaticClass() {
  		return BottlenecksPackage.Literals.DOUBLE_TO_BOTTLENECKS_REPORT_MAP;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Double getTypedKey() {
  		return key;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public void setTypedKey(Double newKey) {
  		Double oldKey = key;
  		key = newKey;
  		if (eNotificationRequired())
  			eNotify(new ENotificationImpl(this, Notification.SET, BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__KEY, oldKey, key));
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public BottlenecksReport getTypedValue() {
  		return value;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public NotificationChain basicSetTypedValue(BottlenecksReport newValue, NotificationChain msgs) {
  		BottlenecksReport oldValue = value;
  		value = newValue;
  		if (eNotificationRequired()) {
  			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE, oldValue, newValue);
  			if (msgs == null) msgs = notification; else msgs.add(notification);
  		}
  		return msgs;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public void setTypedValue(BottlenecksReport newValue) {
  		if (newValue != value) {
  			NotificationChain msgs = null;
  			if (value != null)
  				msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE, null, msgs);
  			if (newValue != null)
  				msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE, null, msgs);
  			msgs = basicSetTypedValue(newValue, msgs);
  			if (msgs != null) msgs.dispatch();
  		}
  		else if (eNotificationRequired())
  			eNotify(new ENotificationImpl(this, Notification.SET, BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE, newValue, newValue));
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
  		switch (featureID) {
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE:
  				return basicSetTypedValue(null, msgs);
  		}
  		return super.eInverseRemove(otherEnd, featureID, msgs);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public Object eGet(int featureID, boolean resolve, boolean coreType) {
  		switch (featureID) {
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__KEY:
  				return getTypedKey();
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE:
  				return getTypedValue();
  		}
  		return super.eGet(featureID, resolve, coreType);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public void eSet(int featureID, Object newValue) {
  		switch (featureID) {
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__KEY:
  				setTypedKey((Double)newValue);
  				return;
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE:
  				setTypedValue((BottlenecksReport)newValue);
  				return;
  		}
  		super.eSet(featureID, newValue);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public void eUnset(int featureID) {
  		switch (featureID) {
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__KEY:
  				setTypedKey(KEY_EDEFAULT);
  				return;
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE:
  				setTypedValue((BottlenecksReport)null);
  				return;
  		}
  		super.eUnset(featureID);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public boolean eIsSet(int featureID) {
  		switch (featureID) {
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__KEY:
  				return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
  			case BottlenecksPackage.DOUBLE_TO_BOTTLENECKS_REPORT_MAP__VALUE:
  				return value != null;
  		}
  		return super.eIsSet(featureID);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public String toString() {
  