/**
*/
package de.urszeidler.eclipse.shr5.runtime.impl;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import de.urszeidler.eclipse.shr5.Fahrzeug;
import de.urszeidler.eclipse.shr5.InterfaceModus;
import de.urszeidler.eclipse.shr5.runtime.RuntimePackage;
import de.urszeidler.eclipse.shr5.runtime.Vehicle;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Vehicle</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link de.urszeidler.eclipse.shr5.runtime.impl.VehicleImpl#getVehicle <em>Vehicle</em>}</li>
* <li>{@link de.urszeidler.eclipse.shr5.runtime.impl.VehicleImpl#getVehicleCondition <em>Vehicle Condition</em>}</li>
* <li>{@link de.urszeidler.eclipse.shr5.runtime.impl.VehicleImpl#getModus <em>Modus</em>}</li>
* <li>{@link de.urszeidler.eclipse.shr5.runtime.impl.VehicleImpl#getCurrentSpeed <em>Current Speed</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class VehicleImpl<V extends Fahrzeug> extends AbstractExtendetDataAwareImpl implements Vehicle<V> {
/**
* The cached value of the '{@link #getVehicle() <em>Vehicle</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVehicle()
* @generated
* @ordered
*/
protected V vehicle;
/**
* The default value of the '{@link #getVehicleCondition() <em>Vehicle Condition</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVehicleCondition()
* @generated
* @ordered
*/
protected static final int VEHICLE_CONDITION_EDEFAULT = 0;
/**
* The cached value of the '{@link #getVehicleCondition() <em>Vehicle Condition</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getVehicleCondition()
* @generated
* @ordered
*/
protected int vehicleCondition = VEHICLE_CONDITION_EDEFAULT;
/**
* The default value of the '{@link #getModus() <em>Modus</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getModus()
* @generated
* @ordered
*/
protected static final InterfaceModus MODUS_EDEFAULT = InterfaceModus.AUGMENTED_REALITY;
/**
* The cached value of the '{@link #getModus() <em>Modus</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getModus()
* @generated
* @ordered
*/
protected InterfaceModus modus = MODUS_EDEFAULT;
/**
* The default value of the '{@link #getCurrentSpeed() <em>Current Speed</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCurrentSpeed()
* @generated
* @ordered
*/
protected static final int CURRENT_SPEED_EDEFAULT = 0;
/**
* The cached value of the '{@link #getCurrentSpeed() <em>Current Speed</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCurrentSpeed()
* @generated
* @ordered
*/
protected int currentSpeed = CURRENT_SPEED_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected VehicleImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return RuntimePackage.Literals.VEHICLE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
public V getVehicle() {
if (vehicle != null && vehicle.eIsProxy()) {
InternalEObject oldVehicle = (InternalEObject)vehicle;
vehicle = (V)eResolveProxy(oldVehicle);
if (vehicle != oldVehicle) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, RuntimePackage.VEHICLE__VEHICLE, oldVehicle, vehicle));
}
}
return vehicle;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public V basicGetVehicle() {
return vehicle;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setVehicle(V newVehicle) {
V oldVehicle = vehicle;
vehicle = newVehicle;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RuntimePackage.VEHICLE__VEHICLE, oldVehicle, vehicle));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getVehicleCondition() {
return vehicleCondition;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setVehicleCondition(int newVehicleCondition) {
int oldVehicleCondition = vehicleCondition;
vehicleCondition = newVehicleCondition;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RuntimePackage.VEHICLE__VEHICLE_CONDITION, oldVehicleCondition, vehicleCondition));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public InterfaceModus getModus() {
return modus;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setModus(InterfaceModus newModus) {
InterfaceModus oldModus = modus;
modus = newModus == null ? MODUS_EDEFAULT : newModus;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RuntimePackage.VEHICLE__MODUS, oldModus, modus));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public int getCurrentSpeed() {
return currentSpeed;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setCurrentSpeed(int newCurrentSpeed) {
int oldCurrentSpeed = currentSpeed;
currentSpeed = newCurrentSpeed;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RuntimePackage.VEHICLE__CURRENT_SPEED, oldCurrentSpeed, currentSpeed));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case RuntimePackage.VEHICLE__VEHICLE:
if (resolve) return getVehicle();
return basicGetVehicle();
case RuntimePackage.VEHICLE__VEHICLE_CONDITION:
return getVehicleCondition();
case RuntimePackage.VEHICLE__MODUS:
return getModus();
case RuntimePackage.VEHICLE__CURRENT_SPEED:
return getCurrentSpeed();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case RuntimePackage.VEHICLE__VEHICLE:
setVehicle((V)newValue);
return;
case RuntimePackage.VEHICLE__VEHICLE_CONDITION:
setVehicleCondition((Integer)newValue);
return;
case RuntimePackage.VEHICLE__MODUS:
setModus((InterfaceModus)newValue);
return;
case RuntimePackage.VEHICLE__CURRENT_SPEED:
setCurrentSpeed((Integer)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case RuntimePackage.VEHICLE__VEHICLE:
setVehicle((V)null);
return;
case RuntimePackage.VEHICLE__VEHICLE_CONDITION:
setVehicleCondition(VEHICLE_CONDITION_EDEFAULT);
return;
case RuntimePackage.VEHICLE__MODUS:
setModus(MODUS_EDEFAULT);
return;
case RuntimePackage.VEHICLE__CURRENT_SPEED:
setCurrentSpeed(CURRENT_SPEED_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case RuntimePackage.VEHICLE__VEHICLE:
return vehicle != null;
case RuntimePackage.VEHICLE__VEHICLE_CONDITION:
return vehicleCondition != VEHICLE_CONDITION_EDEFAULT;
case RuntimePackage.VEHICLE__MODUS:
return modus != MODUS_EDEFAULT;
case RuntimePackage.VEHICLE__CURRENT_SPEED:
return currentSpeed != CURRENT_SPEED_EDEFAULT;
}
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(" (vehicleCondition: ");
result.append(vehicleCondition);
result.append(", modus: ");
result.append(modus);
result.append(", currentSpeed: ");
result.append(currentSpeed);
result.append(')');
return result.toString();
}
} //VehicleImpl