gt:     if (newProject != project)
context: /**
   * generated by Xtext 2.9.2
   */
  package com.ifpen.manager.xtext.projectDsl.impl;
  
  import com.ifpen.manager.xtext.projectDsl.Company;
  import com.ifpen.manager.xtext.projectDsl.Employees;
  import com.ifpen.manager.xtext.projectDsl.Project;
  import com.ifpen.manager.xtext.projectDsl.ProjectDslPackage;
  
  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.MinimalEObjectImpl;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model object '<em><b>Company</b></em>'.
   * <!-- end-user-doc -->
   * <p>
   * The following features are implemented:
   * </p>
   * <ul>
   *   <li>{@link com.ifpen.manager.xtext.projectDsl.impl.CompanyImpl#getName <em>Name</em>}</li>
   *   <li>{@link com.ifpen.manager.xtext.projectDsl.impl.CompanyImpl#getEmployees <em>Employees</em>}</li>
   *   <li>{@link com.ifpen.manager.xtext.projectDsl.impl.CompanyImpl#getProject <em>Project</em>}</li>
   * </ul>
   *
   * @generated
   */
  public class CompanyImpl extends MinimalEObjectImpl.Container implements Company
  {
    /**
     * 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 #getEmployees() <em>Employees</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #getEmployees()
     * @generated
     * @ordered
     */
    protected Employees employees;
  
    /**
     * The cached value of the '{@link #getProject() <em>Project</em>}' containment reference.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #getProject()
     * @generated
     * @ordered
     */
    protected Project project;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected CompanyImpl()
    {
      super();
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    @Override
    protected EClass eStaticClass()
    {
      return ProjectDslPackage.Literals.COMPANY;
    }
  
    /**
     * <!-- 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, ProjectDslPackage.COMPANY__NAME, oldName, name));
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Employees getEmployees()
    {
      return employees;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetEmployees(Employees newEmployees, NotificationChain msgs)
    {
      Employees oldEmployees = employees;
      employees = newEmployees;
      if (eNotificationRequired())
      {
        ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ProjectDslPackage.COMPANY__EMPLOYEES, oldEmployees, newEmployees);
        if (msgs == null) msgs = notification; else msgs.add(notification);
      }
      return msgs;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setEmployees(Employees newEmployees)
    {
      if (newEmployees != employees)
      {
        NotificationChain msgs = null;
        if (employees != null)
          msgs = ((InternalEObject)employees).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ProjectDslPackage.COMPANY__EMPLOYEES, null, msgs);
        if (newEmployees != null)
          msgs = ((InternalEObject)newEmployees).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ProjectDslPackage.COMPANY__EMPLOYEES, null, msgs);
        msgs = basicSetEmployees(newEmployees, msgs);
        if (msgs != null) msgs.dispatch();
      }
      else if (eNotificationRequired())
        eNotify(new ENotificationImpl(this, Notification.SET, ProjectDslPackage.COMPANY__EMPLOYEES, newEmployees, newEmployees));
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public Project getProject()
    {
      return project;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public NotificationChain basicSetProject(Project newProject, NotificationChain msgs)
    {
      Project oldProject = project;
      project = newProject;
      if (eNotificationRequired())
      {
        ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ProjectDslPackage.COMPANY__PROJECT, oldProject, newProject);
        if (msgs == null) msgs = notification; else msgs.add(notification);
      }
      return msgs;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public void setProject(Project newProject)
    {
  