/******************************************************************************
* Copyright (c) 2009-2013, Linagora
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Linagora - initial API and implementation
*******************************************************************************/
package com.sun.java.xml.ns.jbi.impl;
import com.sun.java.xml.ns.jbi.Connections;
import com.sun.java.xml.ns.jbi.Identification;
import com.sun.java.xml.ns.jbi.JbiPackage;
import com.sun.java.xml.ns.jbi.ServiceAssembly;
import com.sun.java.xml.ns.jbi.ServiceUnit;
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.InternalEList;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Service Assembly</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link com.sun.java.xml.ns.jbi.impl.ServiceAssemblyImpl#getIdentification <em>Identification</em>}</li>
* <li>{@link com.sun.java.xml.ns.jbi.impl.ServiceAssemblyImpl#getServiceUnit <em>Service Unit</em>}</li>
* <li>{@link com.sun.java.xml.ns.jbi.impl.ServiceAssemblyImpl#getConnections <em>Connections</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ServiceAssemblyImpl extends AbstractExtensibleElementImpl implements ServiceAssembly {
/**
* The cached value of the '{@link #getIdentification() <em>Identification</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getIdentification()
* @generated
* @ordered
*/
protected Identification identification;
/**
* The cached value of the '{@link #getServiceUnit() <em>Service Unit</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getServiceUnit()
* @generated
* @ordered
*/
protected EList<ServiceUnit> serviceUnit;
/**
* The cached value of the '{@link #getConnections() <em>Connections</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getConnections()
* @generated
* @ordered
*/
protected Connections connections;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ServiceAssemblyImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return JbiPackage.Literals.SERVICE_ASSEMBLY;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Identification getIdentification() {
return identification;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetIdentification(Identification newIdentification, NotificationChain msgs) {
Identification oldIdentification = identification;
identification = newIdentification;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION, oldIdentification, newIdentification);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setIdentification(Identification newIdentification) {
if (newIdentification != identification) {
NotificationChain msgs = null;
if (identification != null)
msgs = ((InternalEObject)identification).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION, null, msgs);
if (newIdentification != null)
msgs = ((InternalEObject)newIdentification).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION, null, msgs);
msgs = basicSetIdentification(newIdentification, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION, newIdentification, newIdentification));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ServiceUnit> getServiceUnit() {
if (serviceUnit == null) {
serviceUnit = new EObjectContainmentEList<ServiceUnit>(ServiceUnit.class, this, JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT);
}
return serviceUnit;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Connections getConnections() {
return connections;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetConnections(Connections newConnections, NotificationChain msgs) {
Connections oldConnections = connections;
connections = newConnections;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS, oldConnections, newConnections);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setConnections(Connections newConnections) {
if (newConnections != connections) {
NotificationChain msgs = null;
if (connections != null)
msgs = ((InternalEObject)connections).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS, null, msgs);
if (newConnections != null)
msgs = ((InternalEObject)newConnections).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS, null, msgs);
msgs = basicSetConnections(newConnections, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS, newConnections, newConnections));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION:
return basicSetIdentification(null, msgs);
case JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT:
return ((InternalEList<?>)getServiceUnit()).basicRemove(otherEnd, msgs);
case JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS:
return basicSetConnections(null, 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 JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION:
return getIdentification();
case JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT:
return getServiceUnit();
case JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS:
return getConnections();
}
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 JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION:
setIdentification((Identification)newValue);
return;
case JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT:
getServiceUnit().clear();
getServiceUnit().addAll((Collection<? extends ServiceUnit>)newValue);
return;
case JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS:
setConnections((Connections)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION:
setIdentification((Identification)null);
return;
case JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT:
getServiceUnit().clear();
return;
case JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS:
setConnections((Connections)null);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case JbiPackage.SERVICE_ASSEMBLY__IDENTIFICATION:
return identification != null;
case JbiPackage.SERVICE_ASSEMBLY__SERVICE_UNIT:
return serviceUnit != null && !serviceUnit.isEmpty();
case JbiPackage.SERVICE_ASSEMBLY__CONNECTIONS:
return connections != null;
}
return super.eIsSet(featureID);
}
} //ServiceAssemblyImpl