/** */ package simpleScenario.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.EObjectResolvingEList; import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; import simpleScenario.Actor; import simpleScenario.Lane; import simpleScenario.Orientation; import simpleScenario.SimpleScenarioPackage; import simpleScenario.Size; /** * * An implementation of the model object 'Lane'. * *

* The following features are implemented: *

* * * @generated */ public class LaneImpl extends MinimalEObjectImpl.Container implements Lane { /** * The default value of the '{@link #getOrientation() Orientation}' attribute. * * * @see #getOrientation() * @generated * @ordered */ protected static final Orientation ORIENTATION_EDEFAULT = Orientation.VERTICAL; /** * The cached value of the '{@link #getOrientation() Orientation}' attribute. * * * @see #getOrientation() * @generated * @ordered */ protected Orientation orientation = ORIENTATION_EDEFAULT; /** * The default value of the '{@link #getWidth() Width}' attribute. * * * @see #getWidth() * @generated * @ordered */ protected static final Size WIDTH_EDEFAULT = Size.SMALL; /** * The cached value of the '{@link #getWidth() Width}' attribute. * * * @see #getWidth() * @generated * @ordered */ protected Size width = WIDTH_EDEFAULT; /** * The default value of the '{@link #getReferenceCoord() Reference Coord}' attribute. * * * @see #getReferenceCoord() * @generated * @ordered */ protected static final double REFERENCE_COORD_EDEFAULT = 0.0; /** * The cached value of the '{@link #getReferenceCoord() Reference Coord}' attribute. * * * @see #getReferenceCoord() * @generated * @ordered */ protected double referenceCoord = REFERENCE_COORD_EDEFAULT; /** * The cached value of the '{@link #getAdjacent() Adjacent}' reference list. * * * @see #getAdjacent() * @generated * @ordered */ protected EList adjacent; /** * The cached value of the '{@link #getActors() Actors}' reference list. * * * @see #getActors() * @generated * @ordered */ protected EList actors; /** * The default value of the '{@link #getNumWidth() Num Width}' attribute. * * * @see #getNumWidth() * @generated * @ordered */ protected static final double NUM_WIDTH_EDEFAULT = 0.0; /** * The cached value of the '{@link #getNumWidth() Num Width}' attribute. * * * @see #getNumWidth() * @generated * @ordered */ protected double numWidth = NUM_WIDTH_EDEFAULT; /** * * * @generated */ protected LaneImpl() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return SimpleScenarioPackage.Literals.LANE; } /** * * * @generated */ @Override public Orientation getOrientation() { return orientation; } /** * * * @generated */ @Override public void setOrientation(Orientation newOrientation) { Orientation oldOrientation = orientation; orientation = newOrientation == null ? ORIENTATION_EDEFAULT : newOrientation; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimpleScenarioPackage.LANE__ORIENTATION, oldOrientation, orientation)); } /** * * * @generated */ @Override public Size getWidth() { return width; } /** * * * @generated */ @Override public void setWidth(Size newWidth) { Size oldWidth = width; width = newWidth == null ? WIDTH_EDEFAULT : newWidth; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimpleScenarioPackage.LANE__WIDTH, oldWidth, width)); } /** * * * @generated */ @Override public double getReferenceCoord() { return referenceCoord; } /** * * * @generated */ @Override public void setReferenceCoord(double newReferenceCoord) { double oldReferenceCoord = referenceCoord; referenceCoord = newReferenceCoord; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimpleScenarioPackage.LANE__REFERENCE_COORD, oldReferenceCoord, referenceCoord)); } /** * * * @generated */ @Override public EList getAdjacent() { if (adjacent == null) { adjacent = new EObjectResolvingEList(Lane.class, this, SimpleScenarioPackage.LANE__ADJACENT); } return adjacent; } /** * * * @generated */ @Override public EList getActors() { if (actors == null) { actors = new EObjectWithInverseResolvingEList(Actor.class, this, SimpleScenarioPackage.LANE__ACTORS, SimpleScenarioPackage.ACTOR__PLACED_ON); } return actors; } /** * * * @generated */ @Override public double getNumWidth() { return numWidth; } /** * * * @generated */ @Override public void setNumWidth(double newNumWidth) { double oldNumWidth = numWidth; numWidth = newNumWidth; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, SimpleScenarioPackage.LANE__NUM_WIDTH, oldNumWidth, numWidth)); } /** * * * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case SimpleScenarioPackage.LANE__ACTORS: return ((InternalEList)(InternalEList)getActors()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * * * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case SimpleScenarioPackage.LANE__ACTORS: return ((InternalEList)getActors()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case SimpleScenarioPackage.LANE__ORIENTATION: return getOrientation(); case SimpleScenarioPackage.LANE__WIDTH: return getWidth(); case SimpleScenarioPackage.LANE__REFERENCE_COORD: return getReferenceCoord(); case SimpleScenarioPackage.LANE__ADJACENT: return getAdjacent(); case SimpleScenarioPackage.LANE__ACTORS: return getActors(); case SimpleScenarioPackage.LANE__NUM_WIDTH: return getNumWidth(); } return super.eGet(featureID, resolve, coreType); } /** * * * @generated */ @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case SimpleScenarioPackage.LANE__ORIENTATION: setOrientation((Orientation)newValue); return; case SimpleScenarioPackage.LANE__WIDTH: setWidth((Size)newValue); return; case SimpleScenarioPackage.LANE__REFERENCE_COORD: setReferenceCoord((Double)newValue); return; case SimpleScenarioPackage.LANE__ADJACENT: getAdjacent().clear(); getAdjacent().addAll((Collection)newValue); return; case SimpleScenarioPackage.LANE__ACTORS: getActors().clear(); getActors().addAll((Collection)newValue); return; case SimpleScenarioPackage.LANE__NUM_WIDTH: setNumWidth((Double)newValue); return; } super.eSet(featureID, newValue); } /** * * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case SimpleScenarioPackage.LANE__ORIENTATION: setOrientation(ORIENTATION_EDEFAULT); return; case SimpleScenarioPackage.LANE__WIDTH: setWidth(WIDTH_EDEFAULT); return; case SimpleScenarioPackage.LANE__REFERENCE_COORD: setReferenceCoord(REFERENCE_COORD_EDEFAULT); return; case SimpleScenarioPackage.LANE__ADJACENT: getAdjacent().clear(); return; case SimpleScenarioPackage.LANE__ACTORS: getActors().clear(); return; case SimpleScenarioPackage.LANE__NUM_WIDTH: setNumWidth(NUM_WIDTH_EDEFAULT); return; } super.eUnset(featureID); } /** * * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case SimpleScenarioPackage.LANE__ORIENTATION: return orientation != ORIENTATION_EDEFAULT; case SimpleScenarioPackage.LANE__WIDTH: return width != WIDTH_EDEFAULT; case SimpleScenarioPackage.LANE__REFERENCE_COORD: return referenceCoord != REFERENCE_COORD_EDEFAULT; case SimpleScenarioPackage.LANE__ADJACENT: return adjacent != null && !adjacent.isEmpty(); case SimpleScenarioPackage.LANE__ACTORS: return actors != null && !actors.isEmpty(); case SimpleScenarioPackage.LANE__NUM_WIDTH: return numWidth != NUM_WIDTH_EDEFAULT; } return super.eIsSet(featureID); } /** * * * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuilder result = new StringBuilder(super.toString()); result.append(" (orientation: "); result.append(orientation); result.append(", width: "); result.append(width); result.append(", referenceCoord: "); result.append(referenceCoord); result.append(", numWidth: "); result.append(numWidth); result.append(')'); return result.toString(); } } //LaneImpl