/**
* <copyright>
* </copyright>
*
* $Id$
*/
package es.tid.cim.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.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
import es.tid.cim.CimPackage;
import es.tid.cim.EnumNameFormat;
import es.tid.cim.LogicalDevice;
import es.tid.cim.ManagedElement;
import es.tid.cim.NextHopRoute;
import es.tid.cim.Role;
import es.tid.cim.Service;
import es.tid.cim.ServiceAccessPoint;
import es.tid.cim.SystemSpecificCollection;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>System</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link es.tid.cim.impl.SystemImpl#getCreationClassName <em>Creation Class Name</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getSystemDevices <em>System Devices</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getSystemComponents <em>System Components</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getNameFormat <em>Name Format</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getPrimaryOwnerName <em>Primary Owner Name</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getPrimaryOwnerContact <em>Primary Owner Contact</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getRoles <em>Roles</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getHostedServices <em>Hosted Services</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getHostedRoute <em>Hosted Route</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getHostedAccessPoint <em>Hosted Access Point</em>}</li>
* <li>{@link es.tid.cim.impl.SystemImpl#getHostedCollection <em>Hosted Collection</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public abstract class SystemImpl extends EnabledLogicalElementImpl implements es.tid.cim.System {
/**
* The default value of the '{@link #getCreationClassName() <em>Creation Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCreationClassName()
* @generated
* @ordered
*/
protected static final String CREATION_CLASS_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getCreationClassName() <em>Creation Class Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getCreationClassName()
* @generated
* @ordered
*/
protected String creationClassName = CREATION_CLASS_NAME_EDEFAULT;
/**
* The cached value of the '{@link #getSystemDevices() <em>System Devices</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSystemDevices()
* @generated
* @ordered
*/
protected EList<LogicalDevice> systemDevices;
/**
* The cached value of the '{@link #getSystemComponents() <em>System Components</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSystemComponents()
* @generated
* @ordered
*/
protected EList<ManagedElement> systemComponents;
/**
* The default value of the '{@link #getNameFormat() <em>Name Format</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNameFormat()
* @generated
* @ordered
*/
protected static final EnumNameFormat NAME_FORMAT_EDEFAULT = EnumNameFormat.OTHER;
/**
* The cached value of the '{@link #getNameFormat() <em>Name Format</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getNameFormat()
* @generated
* @ordered
*/
protected EnumNameFormat nameFormat = NAME_FORMAT_EDEFAULT;
/**
* The default value of the '{@link #getPrimaryOwnerName() <em>Primary Owner Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPrimaryOwnerName()
* @generated
* @ordered
*/
protected static final String PRIMARY_OWNER_NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getPrimaryOwnerName() <em>Primary Owner Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPrimaryOwnerName()
* @generated
* @ordered
*/
protected String primaryOwnerName = PRIMARY_OWNER_NAME_EDEFAULT;
/**
* The default value of the '{@link #getPrimaryOwnerContact() <em>Primary Owner Contact</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPrimaryOwnerContact()
* @generated
* @ordered
*/
protected static final String PRIMARY_OWNER_CONTACT_EDEFAULT = null;
/**
* The cached value of the '{@link #getPrimaryOwnerContact() <em>Primary Owner Contact</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPrimaryOwnerContact()
* @generated
* @ordered
*/
protected String primaryOwnerContact = PRIMARY_OWNER_CONTACT_EDEFAULT;
/**
* The cached value of the '{@link #getRoles() <em>Roles</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRoles()
* @generated
* @ordered
*/
protected EList<Role> roles;
/**
* The cached value of the '{@link #getHostedServices() <em>Hosted Services</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHostedServices()
* @generated
* @ordered
*/
protected EList<Service> hostedServices;
/**
* The cached value of the '{@link #getHostedRoute() <em>Hosted Route</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHostedRoute()
* @generated
* @ordered
*/
protected EList<NextHopRoute> hostedRoute;
/**
* The cached value of the '{@link #getHostedAccessPoint() <em>Hosted Access Point</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHostedAccessPoint()
* @generated
* @ordered
*/
protected EList<ServiceAccessPoint> hostedAccessPoint;
/**
* The cached value of the '{@link #getHostedCollection() <em>Hosted Collection</em>}' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHostedCollection()
* @generated
* @ordered
*/
protected EList<SystemSpecificCollection> hostedCollection;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected SystemImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return CimPackage.eINSTANCE.getSystem();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getCreationClassName() {
return creationClassName;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setCreationClassName(String newCreationClassName) {
String oldCreationClassName = creationClassName;
creationClassName = newCreationClassName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.SYSTEM__CREATION_CLASS_NAME, oldCreationClassName, creationClassName));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<LogicalDevice> getSystemDevices() {
if (systemDevices == null) {
systemDevices = new EObjectResolvingEList<LogicalDevice>(LogicalDevice.class, this, CimPackage.SYSTEM__SYSTEM_DEVICES);
}
return systemDevices;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ManagedElement> getSystemComponents() {
if (systemComponents == null) {
systemComponents = new EObjectContainmentEList<ManagedElement>(ManagedElement.class, this, CimPackage.SYSTEM__SYSTEM_COMPONENTS);
}
return systemComponents;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EnumNameFormat getNameFormat() {
return nameFormat;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setNameFormat(EnumNameFormat newNameFormat) {
EnumNameFormat oldNameFormat = nameFormat;
nameFormat = newNameFormat == null ? NAME_FORMAT_EDEFAULT : newNameFormat;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.SYSTEM__NAME_FORMAT, oldNameFormat, nameFormat));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getPrimaryOwnerName() {
return primaryOwnerName;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setPrimaryOwnerName(String newPrimaryOwnerName) {
String oldPrimaryOwnerName = primaryOwnerName;
primaryOwnerName = newPrimaryOwnerName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.SYSTEM__PRIMARY_OWNER_NAME, oldPrimaryOwnerName, primaryOwnerName));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getPrimaryOwnerContact() {
return primaryOwnerContact;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setPrimaryOwnerContact(String newPrimaryOwnerContact) {
String oldPrimaryOwnerContact = primaryOwnerContact;
primaryOwnerContact = newPrimaryOwnerContact;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CimPackage.SYSTEM__PRIMARY_OWNER_CONTACT, oldPrimaryOwnerContact, primaryOwnerContact));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Role> getRoles() {
if (roles == null) {
roles = new EObjectContainmentEList<Role>(Role.class, this, CimPackage.SYSTEM__ROLES);
}
return roles;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Service> getHostedServices() {
if (hostedServices == null) {
hostedServices = new EObjectResolvingEList<Service>(Service.class, this, CimPackage.SYSTEM__HOSTED_SERVICES);
}
return hostedServices;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<NextHopRoute> getHostedRoute() {
if (hostedRoute == null) {
hostedRoute = new EObjectResolvingEList<NextHopRoute>(NextHopRoute.class, this, CimPackage.SYSTEM__HOSTED_ROUTE);
}
return hostedRoute;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ServiceAccessPoint> getHostedAccessPoint() {
if (hostedAccessPoint == null) {
hostedAccessPoint = new EObjectResolvingEList<ServiceAccessPoint>(ServiceAccessPoint.class, this, CimPackage.SYSTEM__HOSTED_ACCESS_POINT);
}
return hostedAccessPoint;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<SystemSpecificCollection> getHostedCollection() {
if (hostedCollection == null) {
hostedCollection = new EObjectResolvingEList<SystemSpecificCollection>(SystemSpecificCollection.class, this, CimPackage.SYSTEM__HOSTED_COLLECTION);
}
return hostedCollection;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case CimPackage.SYSTEM__SYSTEM_COMPONENTS:
return ((InternalEList<?>)getSystemComponents()).basicRemove(otherEnd, msgs);
case CimPackage.SYSTEM__ROLES:
return ((InternalEList<?>)getRoles()).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 CimPackage.SYSTEM__CREATION_CLASS_NAME:
return getCreationClassName();
case CimPackage.SYSTEM__SYSTEM_DEVICES:
return getSystemDevices();
case CimPackage.SYSTEM__SYSTEM_COMPONENTS:
return getSystemComponents();
case CimPackage.SYSTEM__NAME_FORMAT:
return getNameFormat();
case CimPackage.SYSTEM__PRIMARY_OWNER_NAME:
return getPrimaryOwnerName();
case CimPackage.SYSTEM__PRIMARY_OWNER_CONTACT:
return getPrimaryOwnerContact();
case CimPackage.SYSTEM__ROLES:
return getRoles();
case CimPackage.SYSTEM__HOSTED_SERVICES:
return getHostedServices();
case CimPackage.SYSTEM__HOSTED_ROUTE:
return getHostedRoute();
case CimPackage.SYSTEM__HOSTED_ACCESS_POINT:
return getHostedAccessPoint();
case CimPackage.SYSTEM__HOSTED_COLLECTION:
return getHostedCollection();
}
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.SYSTEM__CREATION_CLASS_NAME:
setCreationClassName((String)newValue);
return;
case CimPackage.SYSTEM__SYSTEM_DEVICES:
getSystemDevices().clear();
getSystemDevices().addAll((Collection<? extends LogicalDevice>)newValue);
return;
case CimPackage.SYSTEM__SYSTEM_COMPONENTS:
getSystemComponents().clear();
getSystemComponents().addAll((Collection<? extends ManagedElement>)newValue);
return;
case CimPackage.SYSTEM__NAME_FORMAT:
setNameFormat((EnumNameFormat)newValue);
return;
case CimPackage.SYSTEM__PRIMARY_OWNER_NAME:
setPrimaryOwnerName((String)newValue);
return;
case CimPackage.SYSTEM__PRIMARY_OWNER_CONTACT:
setPrimaryOwnerContact((String)newValue);
return;
case CimPackage.SYSTEM__ROLES:
getRoles().clear();
getRoles().addAll((Collection<? extends Role>)newValue);
return;
case CimPackage.SYSTEM__HOSTED_SERVICES:
getHostedServices().clear();
getHostedServices().addAll((Collection<? extends Service>)newValue);
return;
case CimPackage.SYSTEM__HOSTED_ROUTE:
getHostedRoute().clear();
getHostedRoute().addAll((Collection<? extends NextHopRoute>)newValue);
return;
case CimPackage.SYSTEM__HOSTED_ACCESS_POINT:
getHostedAccessPoint().clear();
getHostedAccessPoint().addAll((Collection<? extends ServiceAccessPoint>)newValue);
return;
case CimPackage.SYSTEM__HOSTED_COLLECTION:
getHostedCollection().clear();
getHostedCollection().addAll((Collection<? extends SystemSpecificCollection>)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case CimPackage.SYSTEM__CREATION_CLASS_NAME:
setCreationClassName(CREATION_CLASS_NAME_EDEFAULT);
return;
case CimPackage.SYSTEM__SYSTEM_DEVICES:
getSystemDevices().clear();
return;
case CimPackage.SYSTEM__SYSTEM_COMPONENTS:
getSystemComponents().clear();
return;
case CimPackage.SYSTEM__NAME_FORMAT:
setNameFormat(NAME_FORMAT_EDEFAULT);
return;
case CimPackage.SYSTEM__PRIMARY_OWNER_NAME:
setPrimaryOwnerName(PRIMARY_OWNER_NAME_EDEFAULT);
return;
case CimPackage.SYSTEM__PRIMARY_OWNER_CONTACT:
setPrimaryOwnerContact(PRIMARY_OWNER_CONTACT_EDEFAULT);
return;
case CimPackage.SYSTEM__ROLES:
getRoles().clear();
return;
case CimPackage.SYSTEM__HOSTED_SERVICES:
getHostedServices().clear();
return;
case CimPackage.SYSTEM__HOSTED_ROUTE:
getHostedRoute().clear();
return;
case CimPackage.SYSTEM__HOSTED_ACCESS_POINT:
getHostedAccessPoint().clear();
return;
case CimPackage.SYSTEM__HOSTED_COLLECTION:
getHostedCollection().clear();
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case CimPackage.SYSTEM__CREATION_CLASS_NAME:
return CREATION_CLASS_NAME_EDEFAULT == null ? creationClassName != null : !CREATION_CLASS_NAME_EDEFAULT.equals(creationClassName);
case CimPackage.SYSTEM__SYSTEM_DEVICES:
return systemDevices != null && !systemDevices.isEmpty();
case CimPackage.SYSTEM__SYSTEM_COMPONENTS:
return systemComponents != null && !systemComponents.isEmpty();
case CimPackage.SYSTEM__NAME_FORMAT:
return nameFormat != NAME_FORMAT_EDEFAULT;
case CimPackage.SYSTEM__PRIMARY_OWNER_NAME:
return PRIMARY_OWNER_NAME_EDEFAULT == null ? primaryOwnerName != null : !PRIMARY_OWNER_NAME_EDEFAULT.equals(primaryOwnerName);
case CimPackage.SYSTEM__PRIMARY_OWNER_CONTACT:
return PRIMARY_OWNER_CONTACT_EDEFAULT == null ? primaryOwnerContact != null : !PRIMARY_OWNER_CONTACT_EDEFAULT.equals(primaryOwnerContact);
case CimPackage.SYSTEM__ROLES:
return roles != null && !roles.isEmpty();
case CimPackage.SYSTEM__HOSTED_SERVICES:
return hostedServices != null && !hostedServices.isEmpty();
case CimPackage.SYSTEM__HOSTED_ROUTE:
return hostedRoute != null && !hostedRoute.isEmpty();
case CimPackage.SYSTEM__HOSTED_ACCESS_POINT:
return hostedAccessPoint != null && !hostedAccessPoint.isEmpty();
case CimPackage.SYSTEM__HOSTED_COLLECTION:
return hostedCollection != null && !hostedCollection.isEmpty();
}
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(" (creationClassName: ");
result.append(creationClassName);
result.append(", nameFormat: ");
result.append(nameFormat);
result.append(", primaryOwnerName: ");
result.append(primaryOwnerName);
result.append(", primaryOwnerContact: ");
result.append(primaryOwnerContact);
result.append(')');
return result.toString();
}
} //SystemImpl