/**
* MSPDI is copyright Microsoft, Inc.
* Implementation wrapper in ecore done by Kestrel Technology LLC
*/
package net.certware.planning.mspdi.impl;
import java.util.Collection;
import javax.xml.datatype.Duration;
import net.certware.planning.mspdi.BaselineType;
import net.certware.planning.mspdi.MspdiPackage;
import net.certware.planning.mspdi.TimephasedDataType;
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.EObjectImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Baseline Type</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getTimephasedData <em>Timephased Data</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getNumber <em>Number</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getStart <em>Start</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getFinish <em>Finish</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getWork <em>Work</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getCost <em>Cost</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getBCWS <em>BCWS</em>}</li>
* <li>{@link net.certware.planning.mspdi.impl.BaselineTypeImpl#getBCWP <em>BCWP</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class BaselineTypeImpl extends EObjectImpl implements BaselineType {
/**
* The cached value of the '{@link #getTimephasedData() <em>Timephased Data</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTimephasedData()
* @generated
* @ordered
*/
protected EList<TimephasedDataType> timephasedData;
/**
* The default value of the '{@link #getNumber() <em>Number</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNumber()
* @generated
* @ordered
*/
protected static final String NUMBER_EDEFAULT = null;
/**
* The cached value of the '{@link #getNumber() <em>Number</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNumber()
* @generated
* @ordered
*/
protected String number = NUMBER_EDEFAULT;
/**
* The default value of the '{@link #getStart() <em>Start</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getStart()
* @generated
* @ordered
*/
protected static final String START_EDEFAULT = null;
/**
* The cached value of the '{@link #getStart() <em>Start</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getStart()
* @generated
* @ordered
*/
protected String start = START_EDEFAULT;
/**
* The default value of the '{@link #getFinish() <em>Finish</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFinish()
* @generated
* @ordered
*/
protected static final String FINISH_EDEFAULT = null;
/**
* The cached value of the '{@link #getFinish() <em>Finish</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getFinish()
* @generated
* @ordered
*/
protected String finish = FINISH_EDEFAULT;
/**
* The default value of the '{@link #getWork() <em>Work</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getWork()
* @generated
* @ordered
*/
protected static final Duration WORK_EDEFAULT = null;
/**
* The cached value of the '{@link #getWork() <em>Work</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getWork()
* @generated
* @ordered
*/
protected Duration work = WORK_EDEFAULT;
/**
* The default value of the '{@link #getCost() <em>Cost</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCost()
* @generated
* @ordered
*/
protected static final String COST_EDEFAULT = null;
/**
* The cached value of the '{@link #getCost() <em>Cost</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCost()
* @generated
* @ordered
*/
protected String cost = COST_EDEFAULT;
/**
* The default value of the '{@link #getBCWS() <em>BCWS</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBCWS()
* @generated
* @ordered
*/
protected static final float BCWS_EDEFAULT = 0.0F;
/**
* The cached value of the '{@link #getBCWS() <em>BCWS</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBCWS()
* @generated
* @ordered
*/
protected float bCWS = BCWS_EDEFAULT;
/**
* This is true if the BCWS attribute has been set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
protected boolean bCWSESet;
/**
* The default value of the '{@link #getBCWP() <em>BCWP</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBCWP()
* @generated
* @ordered
*/
protected static final float BCWP_EDEFAULT = 0.0F;
/**
* The cached value of the '{@link #getBCWP() <em>BCWP</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBCWP()
* @generated
* @ordered
*/
protected float bCWP = BCWP_EDEFAULT;
/**
* This is true if the BCWP attribute has been set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
protected boolean bCWPESet;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected BaselineTypeImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return MspdiPackage.Literals.BASELINE_TYPE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<TimephasedDataType> getTimephasedData() {
if (timephasedData == null) {
timephasedData = new EObjectContainmentEList<TimephasedDataType>(TimephasedDataType.class, this, MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA);
}
return timephasedData;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getNumber() {
return number;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setNumber(String newNumber) {
String oldNumber = number;
number = newNumber;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__NUMBER, oldNumber, number));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getStart() {
return start;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setStart(String newStart) {
String oldStart = start;
start = newStart;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__START, oldStart, start));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getFinish() {
return finish;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setFinish(String newFinish) {
String oldFinish = finish;
finish = newFinish;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__FINISH, oldFinish, finish));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Duration getWork() {
return work;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setWork(Duration newWork) {
Duration oldWork = work;
work = newWork;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__WORK, oldWork, work));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getCost() {
return cost;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setCost(String newCost) {
String oldCost = cost;
cost = newCost;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__COST, oldCost, cost));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public float getBCWS() {
return bCWS;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setBCWS(float newBCWS) {
float oldBCWS = bCWS;
bCWS = newBCWS;
boolean oldBCWSESet = bCWSESet;
bCWSESet = true;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__BCWS, oldBCWS, bCWS, !oldBCWSESet));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void unsetBCWS() {
float oldBCWS = bCWS;
boolean oldBCWSESet = bCWSESet;
bCWS = BCWS_EDEFAULT;
bCWSESet = false;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.UNSET, MspdiPackage.BASELINE_TYPE__BCWS, oldBCWS, BCWS_EDEFAULT, oldBCWSESet));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isSetBCWS() {
return bCWSESet;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public float getBCWP() {
return bCWP;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setBCWP(float newBCWP) {
float oldBCWP = bCWP;
bCWP = newBCWP;
boolean oldBCWPESet = bCWPESet;
bCWPESet = true;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, MspdiPackage.BASELINE_TYPE__BCWP, oldBCWP, bCWP, !oldBCWPESet));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void unsetBCWP() {
float oldBCWP = bCWP;
boolean oldBCWPESet = bCWPESet;
bCWP = BCWP_EDEFAULT;
bCWPESet = false;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.UNSET, MspdiPackage.BASELINE_TYPE__BCWP, oldBCWP, BCWP_EDEFAULT, oldBCWPESet));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean isSetBCWP() {
return bCWPESet;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA:
return ((InternalEList<?>)getTimephasedData()).basicRemove(otherEnd, 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 MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA:
return getTimephasedData();
case MspdiPackage.BASELINE_TYPE__NUMBER:
return getNumber();
case MspdiPackage.BASELINE_TYPE__START:
return getStart();
case MspdiPackage.BASELINE_TYPE__FINISH:
return getFinish();
case MspdiPackage.BASELINE_TYPE__WORK:
return getWork();
case MspdiPackage.BASELINE_TYPE__COST:
return getCost();
case MspdiPackage.BASELINE_TYPE__BCWS:
return getBCWS();
case MspdiPackage.BASELINE_TYPE__BCWP:
return getBCWP();
}
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 MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA:
getTimephasedData().clear();
getTimephasedData().addAll((Collection<? extends TimephasedDataType>)newValue);
return;
case MspdiPackage.BASELINE_TYPE__NUMBER:
setNumber((String)newValue);
return;
case MspdiPackage.BASELINE_TYPE__START:
setStart((String)newValue);
return;
case MspdiPackage.BASELINE_TYPE__FINISH:
setFinish((String)newValue);
return;
case MspdiPackage.BASELINE_TYPE__WORK:
setWork((Duration)newValue);
return;
case MspdiPackage.BASELINE_TYPE__COST:
setCost((String)newValue);
return;
case MspdiPackage.BASELINE_TYPE__BCWS:
setBCWS((Float)newValue);
return;
case MspdiPackage.BASELINE_TYPE__BCWP:
setBCWP((Float)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA:
getTimephasedData().clear();
return;
case MspdiPackage.BASELINE_TYPE__NUMBER:
setNumber(NUMBER_EDEFAULT);
return;
case MspdiPackage.BASELINE_TYPE__START:
setStart(START_EDEFAULT);
return;
case MspdiPackage.BASELINE_TYPE__FINISH:
setFinish(FINISH_EDEFAULT);
return;
case MspdiPackage.BASELINE_TYPE__WORK:
setWork(WORK_EDEFAULT);
return;
case MspdiPackage.BASELINE_TYPE__COST:
setCost(COST_EDEFAULT);
return;
case MspdiPackage.BASELINE_TYPE__BCWS:
unsetBCWS();
return;
case MspdiPackage.BASELINE_TYPE__BCWP:
unsetBCWP();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case MspdiPackage.BASELINE_TYPE__TIMEPHASED_DATA:
return timephasedData != null && !timephasedData.isEmpty();
case MspdiPackage.BASELINE_TYPE__NUMBER:
return NUMBER_EDEFAULT == null ? number != null : !NUMBER_EDEFAULT.equals(number);
case MspdiPackage.BASELINE_TYPE__START:
return START_EDEFAULT == null ? start != null : !START_EDEFAULT.equals(start);
case MspdiPackage.BASELINE_TYPE__FINISH:
return FINISH_EDEFAULT == null ? finish != null : !FINISH_EDEFAULT.equals(finish);
case MspdiPackage.BASELINE_TYPE__WORK:
return WORK_EDEFAULT == null ? work != null : !WORK_EDEFAULT.equals(work);
case MspdiPackage.BASELINE_TYPE__COST:
return COST_EDEFAULT == null ? cost != null : !COST_EDEFAULT.equals(cost);
case MspdiPackage.BASELINE_TYPE__BCWS:
return isSetBCWS();
case MspdiPackage.BASELINE_TYPE__BCWP:
return isSetBCWP();
}
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(" (number: ");
result.append(number);
result.append(", start: ");
result.append(start);
result.append(", finish: ");
result.append(finish);
result.append(", work: ");
result.append(work);
result.append(", cost: ");
result.append(cost);
result.append(", bCWS: ");
if (bCWSESet) result.append(bCWS); else result.append("<unset>");
result.append(", bCWP: ");
if (bCWPESet) result.append(bCWP); else result.append("<unset>");
result.append(')');
return result.toString();
}
} //BaselineTypeImpl