/**
* <copyright>
* </copyright>
*
* $Id$
*/
package es.tid.cim.impl;
import java.util.Collection;
import java.util.Date;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import es.tid.cim.CimPackage;
import es.tid.cim.EnabledLogicalElement;
import es.tid.cim.EnumEnabledDefault;
import es.tid.cim.EnumEnabledState;
import es.tid.cim.EnumRequestedState;
import es.tid.cim.RemoteServiceAccessPoint;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Enabled Logical Element</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getEnabledDefault <em>Enabled Default</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getEnabledState <em>Enabled State</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getOtherEnabledState <em>Other Enabled State</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getOverwritePolicy <em>Overwrite Policy</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getRemoteAccessAvailableToElement <em>Remote Access Available To Element</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getRequestedState <em>Requested State</em>}</li>
* <li>{@link es.tid.cim.impl.EnabledLogicalElementImpl#getTimeOfLastStateChange <em>Time Of Last State Change</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class EnabledLogicalElementImpl extends LogicalElementImpl implements EnabledLogicalElement {
/**
* The default value of the '{@link #getEnabledDefault() <em>Enabled Default</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEnabledDefault()
* @generated
* @ordered
*/
protected static final EnumEnabledDefault ENABLED_DEFAULT_EDEFAULT = EnumEnabledDefault.ENABLED;
/**
* The cached value of the '{@link #getEnabledDefault() <em>Enabled Default</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEnabledDefault()
* @generated
* @ordered
*/
protected EnumEnabledDefault enabledDefault = ENABLED_DEFAULT_EDEFAULT;
/**
* The default value of the '{@link #getEnabledState() <em>Enabled State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEnabledState()
* @generated
* @ordered
*/
protected static final EnumEnabledState ENABLED_STATE_EDEFAULT = EnumEnabledState.ENABLED;
/**
* The cached value of the '{@link #getEnabledState() <em>Enabled State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getEnabledState()
* @generated
* @ordered
*/
protected EnumEnabledState enabledState = ENABLED_STATE_EDEFAULT;
/**
* The default value of the '{@link #getOtherEnabledState() <em>Other Enabled State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOtherEnabledState()
* @generated
* @ordered
*/
protected static final String OTHER_ENABLED_STATE_EDEFAULT = null;
/**
* The cached value of the '{@link #getOtherEnabledState() <em>Other Enabled State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOtherEnabledState()
* @generated
* @ordered
*/
protected String otherEnabledState = OTHER_ENABLED_STATE_EDEFAULT;
/**
* The default value of the '{@link #getOverwritePolicy() <em>Overwrite Policy</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOverwritePolicy()
* @generated
* @ordered
*/
protected static final String OVERWRITE_POLICY_EDEFAULT = null;
/**
* The cached value of the '{@link #getOverwritePolicy() <em>Overwrite Policy</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOverwritePolicy()
* @generated
* @ordered
*/
protected String overwritePolicy = OVERWRITE_POLICY_EDEFAULT;
/**
* The cached value of the '{@link #getRemoteAccessAvailableToElement() <em>Remote Access Available To Element</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRemoteAccessAvailableToElement()
* @generated
* @ordered
*/
protected EList<RemoteServiceAccessPoint> remoteAccessAvailableToElement;
/**
* The default value of the '{@link #getRequestedState() <em>Requested State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequestedState()
* @generated
* @ordered
*/
protected static final EnumRequestedState REQUESTED_STATE_EDEFAULT = EnumRequestedState.UNKNOWN;
/**
* The cached value of the '{@link #getRequestedState() <em>Requested State</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRequestedState()
* @generated
* @ordered
*/
protected EnumRequestedState requestedState = REQUESTED_STATE_EDEFAULT;
/**
* The default value of the '{@link #getTimeOfLastStateChange() <em>Time Of Last State Change</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTimeOfLastStateChange()
* @generated
* @ordered
*/
protected static final Date TIME_OF_LAST_STATE_CHANGE_EDEFAULT = null;
/**
* The cached value of the '{@link #getTimeOfLastStateChange() <em>Time Of Last State Change</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTimeOfLastStateChange()
* @generated
* @ordered
*/
protected Date timeOfLastStateChange = TIME_OF_LAST_STATE_CHANGE_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EnabledLogicalElementImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return CimPackage.eINSTANCE.getEnabledLogicalElement();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EnumEnabledDefault getEnabledDefault() {
return enabledDefault;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setEnabledDefault(EnumEnabledDefault newEnabledDefault) {
EnumEnabledDefault oldEnabledDefault = enabledDefault;
enabledDefault = newEnabledDefault == null ? ENABLED_DEFAULT_EDEFAULT : newEnabledDefault;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_DEFAULT, oldEnabledDefault, enabledDefault));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EnumEnabledState getEnabledState() {
return enabledState;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setEnabledState(EnumEnabledState newEnabledState) {
EnumEnabledState oldEnabledState = enabledState;
enabledState = newEnabledState == null ? ENABLED_STATE_EDEFAULT : newEnabledState;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_STATE, oldEnabledState, enabledState));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getOtherEnabledState() {
return otherEnabledState;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOtherEnabledState(String newOtherEnabledState) {
String oldOtherEnabledState = otherEnabledState;
otherEnabledState = newOtherEnabledState;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__OTHER_ENABLED_STATE, oldOtherEnabledState, otherEnabledState));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getOverwritePolicy() {
return overwritePolicy;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setOverwritePolicy(String newOverwritePolicy) {
String oldOverwritePolicy = overwritePolicy;
overwritePolicy = newOverwritePolicy;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__OVERWRITE_POLICY, oldOverwritePolicy, overwritePolicy));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<RemoteServiceAccessPoint> getRemoteAccessAvailableToElement() {
if (remoteAccessAvailableToElement == null) {
remoteAccessAvailableToElement = new EObjectResolvingEList<RemoteServiceAccessPoint>(RemoteServiceAccessPoint.class, this, CimPackage.ENABLED_LOGICAL_ELEMENT__REMOTE_ACCESS_AVAILABLE_TO_ELEMENT);
}
return remoteAccessAvailableToElement;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EnumRequestedState getRequestedState() {
return requestedState;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setRequestedState(EnumRequestedState newRequestedState) {
EnumRequestedState oldRequestedState = requestedState;
requestedState = newRequestedState == null ? REQUESTED_STATE_EDEFAULT : newRequestedState;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__REQUESTED_STATE, oldRequestedState, requestedState));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Date getTimeOfLastStateChange() {
return timeOfLastStateChange;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTimeOfLastStateChange(Date newTimeOfLastStateChange) {
Date oldTimeOfLastStateChange = timeOfLastStateChange;
timeOfLastStateChange = newTimeOfLastStateChange;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.ENABLED_LOGICAL_ELEMENT__TIME_OF_LAST_STATE_CHANGE, oldTimeOfLastStateChange, timeOfLastStateChange));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_DEFAULT:
return getEnabledDefault();
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_STATE:
return getEnabledState();
case CimPackage.ENABLED_LOGICAL_ELEMENT__OTHER_ENABLED_STATE:
return getOtherEnabledState();
case CimPackage.ENABLED_LOGICAL_ELEMENT__OVERWRITE_POLICY:
return getOverwritePolicy();
case CimPackage.ENABLED_LOGICAL_ELEMENT__REMOTE_ACCESS_AVAILABLE_TO_ELEMENT:
return getRemoteAccessAvailableToElement();
case CimPackage.ENABLED_LOGICAL_ELEMENT__REQUESTED_STATE:
return getRequestedState();
case CimPackage.ENABLED_LOGICAL_ELEMENT__TIME_OF_LAST_STATE_CHANGE:
return getTimeOfLastStateChange();
}
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 CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_DEFAULT:
setEnabledDefault((EnumEnabledDefault)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_STATE:
setEnabledState((EnumEnabledState)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__OTHER_ENABLED_STATE:
setOtherEnabledState((String)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__OVERWRITE_POLICY:
setOverwritePolicy((String)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__REMOTE_ACCESS_AVAILABLE_TO_ELEMENT:
getRemoteAccessAvailableToElement().clear();
getRemoteAccessAvailableToElement().addAll((Collection<? extends RemoteServiceAccessPoint>)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__REQUESTED_STATE:
setRequestedState((EnumRequestedState)newValue);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__TIME_OF_LAST_STATE_CHANGE:
setTimeOfLastStateChange((Date)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_DEFAULT:
setEnabledDefault(ENABLED_DEFAULT_EDEFAULT);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_STATE:
setEnabledState(ENABLED_STATE_EDEFAULT);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__OTHER_ENABLED_STATE:
setOtherEnabledState(OTHER_ENABLED_STATE_EDEFAULT);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__OVERWRITE_POLICY:
setOverwritePolicy(OVERWRITE_POLICY_EDEFAULT);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__REMOTE_ACCESS_AVAILABLE_TO_ELEMENT:
getRemoteAccessAvailableToElement().clear();
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__REQUESTED_STATE:
setRequestedState(REQUESTED_STATE_EDEFAULT);
return;
case CimPackage.ENABLED_LOGICAL_ELEMENT__TIME_OF_LAST_STATE_CHANGE:
setTimeOfLastStateChange(TIME_OF_LAST_STATE_CHANGE_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_DEFAULT:
return enabledDefault != ENABLED_DEFAULT_EDEFAULT;
case CimPackage.ENABLED_LOGICAL_ELEMENT__ENABLED_STATE:
return enabledState != ENABLED_STATE_EDEFAULT;
case CimPackage.ENABLED_LOGICAL_ELEMENT__OTHER_ENABLED_STATE:
return OTHER_ENABLED_STATE_EDEFAULT == null ? otherEnabledState != null : !OTHER_ENABLED_STATE_EDEFAULT.equals(otherEnabledState);
case CimPackage.ENABLED_LOGICAL_ELEMENT__OVERWRITE_POLICY:
return OVERWRITE_POLICY_EDEFAULT == null ? overwritePolicy != null : !OVERWRITE_POLICY_EDEFAULT.equals(overwritePolicy);
case CimPackage.ENABLED_LOGICAL_ELEMENT__REMOTE_ACCESS_AVAILABLE_TO_ELEMENT:
return remoteAccessAvailableToElement != null && !remoteAccessAvailableToElement.isEmpty();
case CimPackage.ENABLED_LOGICAL_ELEMENT__REQUESTED_STATE:
return requestedState != REQUESTED_STATE_EDEFAULT;
case CimPackage.ENABLED_LOGICAL_ELEMENT__TIME_OF_LAST_STATE_CHANGE:
return TIME_OF_LAST_STATE_CHANGE_EDEFAULT == null ? timeOfLastStateChange != null : !TIME_OF_LAST_STATE_CHANGE_EDEFAULT.equals(timeOfLastStateChange);
}
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(" (enabledDefault: ");
result.append(enabledDefault);
result.append(", enabledState: ");
result.append(enabledState);
result.append(", otherEnabledState: ");
result.append(otherEnabledState);
result.append(", overwritePolicy: ");
result.append(overwritePolicy);
result.append(", requestedState: ");
result.append(requestedState);
result.append(", timeOfLastStateChange: ");
result.append(timeOfLastStateChange);
result.append(')');
return result.toString();
}
} //EnabledLogicalElementImpl