/**
* generated by Xtext 2.23.0
*/
package xtext.game.impl;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
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;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
import xtext.game.Condition;
import xtext.game.GamePackage;
import xtext.game.Interaction;
import xtext.game.Personne;
/**
*
* An implementation of the model object 'Personne'.
*
*
* The following features are implemented:
*
*
* - {@link xtext.game.impl.PersonneImpl#getNom Nom}
* - {@link xtext.game.impl.PersonneImpl#getVisible Visible}
* - {@link xtext.game.impl.PersonneImpl#getObligatoire Obligatoire}
* - {@link xtext.game.impl.PersonneImpl#getInteractions Interactions}
*
*
* @generated
*/
public class PersonneImpl extends MinimalEObjectImpl.Container implements Personne
{
/**
* The default value of the '{@link #getNom() Nom}' attribute.
*
*
* @see #getNom()
* @generated
* @ordered
*/
protected static final String NOM_EDEFAULT = null;
/**
* The cached value of the '{@link #getNom() Nom}' attribute.
*
*
* @see #getNom()
* @generated
* @ordered
*/
protected String nom = NOM_EDEFAULT;
/**
* The cached value of the '{@link #getVisible() Visible}' containment reference.
*
*
* @see #getVisible()
* @generated
* @ordered
*/
protected Condition visible;
/**
* The cached value of the '{@link #getObligatoire() Obligatoire}' containment reference.
*
*
* @see #getObligatoire()
* @generated
* @ordered
*/
protected Condition obligatoire;
/**
* The cached value of the '{@link #getInteractions() Interactions}' containment reference list.
*
*
* @see #getInteractions()
* @generated
* @ordered
*/
protected EList interactions;
/**
*
*
* @generated
*/
protected PersonneImpl()
{
super();
}
/**
*
*
* @generated
*/
@Override
protected EClass eStaticClass()
{
return GamePackage.Literals.PERSONNE;
}
/**
*
*
* @generated
*/
@Override
public String getNom()
{
return nom;
}
/**
*
*
* @generated
*/
@Override
public void setNom(String newNom)
{
String oldNom = nom;
nom = newNom;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GamePackage.PERSONNE__NOM, oldNom, nom));
}
/**
*
*
* @generated
*/
@Override
public Condition getVisible()
{
return visible;
}
/**
*
*
* @generated
*/
public NotificationChain basicSetVisible(Condition newVisible, NotificationChain msgs)
{
Condition oldVisible = visible;
visible = newVisible;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GamePackage.PERSONNE__VISIBLE, oldVisible, newVisible);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
*
*
* @generated
*/
@Override
public void setVisible(Condition newVisible)
{
if (newVisible != visible)
{
NotificationChain msgs = null;
if (visible != null)
msgs = ((InternalEObject)visible).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GamePackage.PERSONNE__VISIBLE, null, msgs);
if (newVisible != null)
msgs = ((InternalEObject)newVisible).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GamePackage.PERSONNE__VISIBLE, null, msgs);
msgs = basicSetVisible(newVisible, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GamePackage.PERSONNE__VISIBLE, newVisible, newVisible));
}
/**
*
*
* @generated
*/
@Override
public Condition getObligatoire()
{
return obligatoire;
}
/**
*
*
* @generated
*/
public NotificationChain basicSetObligatoire(Condition newObligatoire, NotificationChain msgs)
{
Condition oldObligatoire = obligatoire;
obligatoire = newObligatoire;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, GamePackage.PERSONNE__OBLIGATOIRE, oldObligatoire, newObligatoire);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
*
*
* @generated
*/
@Override
public void setObligatoire(Condition newObligatoire)
{
if (newObligatoire != obligatoire)
{
NotificationChain msgs = null;
if (obligatoire != null)
msgs = ((InternalEObject)obligatoire).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - GamePackage.PERSONNE__OBLIGATOIRE, null, msgs);
if (newObligatoire != null)
msgs = ((InternalEObject)newObligatoire).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - GamePackage.PERSONNE__OBLIGATOIRE, null, msgs);
msgs = basicSetObligatoire(newObligatoire, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, GamePackage.PERSONNE__OBLIGATOIRE, newObligatoire, newObligatoire));
}
/**
*
*
* @generated
*/
@Override
public EList getInteractions()
{
if (interactions == null)
{
interactions = new EObjectContainmentEList(Interaction.class, this, GamePackage.PERSONNE__INTERACTIONS);
}
return interactions;
}
/**
*
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
switch (featureID)
{
case GamePackage.PERSONNE__VISIBLE:
return basicSetVisible(null, msgs);
case GamePackage.PERSONNE__OBLIGATOIRE:
return basicSetObligatoire(null, msgs);
case GamePackage.PERSONNE__INTERACTIONS:
return ((InternalEList>)getInteractions()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
*
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
switch (featureID)
{
case GamePackage.PERSONNE__NOM:
return getNom();
case GamePackage.PERSONNE__VISIBLE:
return getVisible();
case GamePackage.PERSONNE__OBLIGATOIRE:
return getObligatoire();
case GamePackage.PERSONNE__INTERACTIONS:
return getInteractions();
}
return super.eGet(featureID, resolve, coreType);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
switch (featureID)
{
case GamePackage.PERSONNE__NOM:
setNom((String)newValue);
return;
case GamePackage.PERSONNE__VISIBLE:
setVisible((Condition)newValue);
return;
case GamePackage.PERSONNE__OBLIGATOIRE:
setObligatoire((Condition)newValue);
return;
case GamePackage.PERSONNE__INTERACTIONS:
getInteractions().clear();
getInteractions().addAll((Collection extends Interaction>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
*
*
* @generated
*/
@Override
public void eUnset(int featureID)
{
switch (featureID)
{
case GamePackage.PERSONNE__NOM:
setNom(NOM_EDEFAULT);
return;
case GamePackage.PERSONNE__VISIBLE:
setVisible((Condition)null);
return;
case GamePackage.PERSONNE__OBLIGATOIRE:
setObligatoire((Condition)null);
return;
case GamePackage.PERSONNE__INTERACTIONS:
getInteractions().clear();
return;
}
super.eUnset(featureID);
}
/**
*
*
* @generated
*/
@Override
public boolean eIsSet(int featureID)
{
switch (featureID)
{
case GamePackage.PERSONNE__NOM:
return NOM_EDEFAULT == null ? nom != null : !NOM_EDEFAULT.equals(nom);
case GamePackage.PERSONNE__VISIBLE:
return visible != null;
case GamePackage.PERSONNE__OBLIGATOIRE:
return obligatoire != null;
case GamePackage.PERSONNE__INTERACTIONS:
return interactions != null && !interactions.isEmpty();
}
return super.eIsSet(featureID);
}
/**
*
*
* @generated
*/
@Override
public String toString()
{
if (eIsProxy()) return super.toString();
StringBuilder result = new StringBuilder(super.toString());
result.append(" (nom: ");
result.append(nom);
result.append(')');
return result.toString();
}
} //PersonneImpl