/**
* <copyright>
* </copyright>
*
*/
package gr.upatras.ece.wcl.radl.impl;
import FederationOffice.services.OfferedService;
import gr.upatras.ece.wcl.radl.AllowedType;
import gr.upatras.ece.wcl.radl.BindingParam;
import gr.upatras.ece.wcl.radl.ConfigurationParam;
import gr.upatras.ece.wcl.radl.Protocol;
import gr.upatras.ece.wcl.radl.RadlPackage;
import gr.upatras.ece.wcl.radl.ResourceAdapter;
import gr.upatras.ece.wcl.radl.SupportedChildType;
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.impl.MinimalEObjectImpl;
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>Resource Adapter</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getName <em>Name</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getImplname <em>Implname</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getConfParams <em>Conf Params</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getBindParams <em>Bind Params</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getChildParams <em>Child Params</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getAllowParams <em>Allow Params</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getConfComplete <em>Conf Complete</em>}</li>
* <li>{@link gr.upatras.ece.wcl.radl.impl.ResourceAdapterImpl#getProtocol <em>Protocol</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class ResourceAdapterImpl extends MinimalEObjectImpl.Container implements ResourceAdapter
{
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
protected static final String NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
protected String name = NAME_EDEFAULT;
/**
* The cached value of the '{@link #getImplname() <em>Implname</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getImplname()
* @generated
* @ordered
*/
protected OfferedService implname;
/**
* The cached value of the '{@link #getConfParams() <em>Conf Params</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getConfParams()
* @generated
* @ordered
*/
protected EList<ConfigurationParam> confParams;
/**
* The cached value of the '{@link #getBindParams() <em>Bind Params</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getBindParams()
* @generated
* @ordered
*/
protected EList<BindingParam> bindParams;
/**
* The cached value of the '{@link #getChildParams() <em>Child Params</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getChildParams()
* @generated
* @ordered
*/
protected EList<SupportedChildType> childParams;
/**
* The cached value of the '{@link #getAllowParams() <em>Allow Params</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAllowParams()
* @generated
* @ordered
*/
protected EList<AllowedType> allowParams;
/**
* The default value of the '{@link #getConfComplete() <em>Conf Complete</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getConfComplete()
* @generated
* @ordered
*/
protected static final String CONF_COMPLETE_EDEFAULT = null;
/**
* The cached value of the '{@link #getConfComplete() <em>Conf Complete</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getConfComplete()
* @generated
* @ordered
*/
protected String confComplete = CONF_COMPLETE_EDEFAULT;
/**
* The cached value of the '{@link #getProtocol() <em>Protocol</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getProtocol()
* @generated
* @ordered
*/
protected Protocol protocol;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected ResourceAdapterImpl()
{
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass()
{
return RadlPackage.Literals.RESOURCE_ADAPTER;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getName()
{
return name;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setName(String newName)
{
String oldName = name;
name = newName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RadlPackage.RESOURCE_ADAPTER__NAME, oldName, name));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public OfferedService getImplname()
{
if (implname != null && implname.eIsProxy())
{
InternalEObject oldImplname = (InternalEObject)implname;
implname = (OfferedService)eResolveProxy(oldImplname);
if (implname != oldImplname)
{
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, RadlPackage.RESOURCE_ADAPTER__IMPLNAME, oldImplname, implname));
}
}
return implname;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public OfferedService basicGetImplname()
{
return implname;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setImplname(OfferedService newImplname)
{
OfferedService oldImplname = implname;
implname = newImplname;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RadlPackage.RESOURCE_ADAPTER__IMPLNAME, oldImplname, implname));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ConfigurationParam> getConfParams()
{
if (confParams == null)
{
confParams = new EObjectContainmentEList<ConfigurationParam>(ConfigurationParam.class, this, RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS);
}
return confParams;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<BindingParam> getBindParams()
{
if (bindParams == null)
{
bindParams = new EObjectContainmentEList<BindingParam>(BindingParam.class, this, RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS);
}
return bindParams;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<SupportedChildType> getChildParams()
{
if (childParams == null)
{
childParams = new EObjectContainmentEList<SupportedChildType>(SupportedChildType.class, this, RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS);
}
return childParams;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<AllowedType> getAllowParams()
{
if (allowParams == null)
{
allowParams = new EObjectContainmentEList<AllowedType>(AllowedType.class, this, RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS);
}
return allowParams;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getConfComplete()
{
return confComplete;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setConfComplete(String newConfComplete)
{
String oldConfComplete = confComplete;
confComplete = newConfComplete;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RadlPackage.RESOURCE_ADAPTER__CONF_COMPLETE, oldConfComplete, confComplete));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Protocol getProtocol()
{
return protocol;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetProtocol(Protocol newProtocol, NotificationChain msgs)
{
Protocol oldProtocol = protocol;
protocol = newProtocol;
if (eNotificationRequired())
{
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RadlPackage.RESOURCE_ADAPTER__PROTOCOL, oldProtocol, newProtocol);
if (msgs == null) msgs = notification; else msgs.add(notification);
}
return msgs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setProtocol(Protocol newProtocol)
{
if (newProtocol != protocol)
{
NotificationChain msgs = null;
if (protocol != null)
msgs = ((InternalEObject)protocol).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - RadlPackage.RESOURCE_ADAPTER__PROTOCOL, null, msgs);
if (newProtocol != null)
msgs = ((InternalEObject)newProtocol).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - RadlPackage.RESOURCE_ADAPTER__PROTOCOL, null, msgs);
msgs = basicSetProtocol(newProtocol, msgs);
if (msgs != null) msgs.dispatch();
}
else if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, RadlPackage.RESOURCE_ADAPTER__PROTOCOL, newProtocol, newProtocol));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
switch (featureID)
{
case RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS:
return ((InternalEList<?>)getConfParams()).basicRemove(otherEnd, msgs);
case RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS:
return ((InternalEList<?>)getBindParams()).basicRemove(otherEnd, msgs);
case RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS:
return ((InternalEList<?>)getChildParams()).basicRemove(otherEnd, msgs);
case RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS:
return ((InternalEList<?>)getAllowParams()).basicRemove(otherEnd, msgs);
case RadlPackage.RESOURCE_ADAPTER__PROTOCOL:
return basicSetProtocol(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 RadlPackage.RESOURCE_ADAPTER__NAME:
return getName();
case RadlPackage.RESOURCE_ADAPTER__IMPLNAME:
if (resolve) return getImplname();
return basicGetImplname();
case RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS:
return getConfParams();
case RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS:
return getBindParams();
case RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS:
return getChildParams();
case RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS:
return getAllowParams();
case RadlPackage.RESOURCE_ADAPTER__CONF_COMPLETE:
return getConfComplete();
case RadlPackage.RESOURCE_ADAPTER__PROTOCOL:
return getProtocol();
}
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 RadlPackage.RESOURCE_ADAPTER__NAME:
setName((String)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__IMPLNAME:
setImplname((OfferedService)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS:
getConfParams().clear();
getConfParams().addAll((Collection<? extends ConfigurationParam>)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS:
getBindParams().clear();
getBindParams().addAll((Collection<? extends BindingParam>)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS:
getChildParams().clear();
getChildParams().addAll((Collection<? extends SupportedChildType>)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS:
getAllowParams().clear();
getAllowParams().addAll((Collection<? extends AllowedType>)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__CONF_COMPLETE:
setConfComplete((String)newValue);
return;
case RadlPackage.RESOURCE_ADAPTER__PROTOCOL:
setProtocol((Protocol)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID)
{
switch (featureID)
{
case RadlPackage.RESOURCE_ADAPTER__NAME:
setName(NAME_EDEFAULT);
return;
case RadlPackage.RESOURCE_ADAPTER__IMPLNAME:
setImplname((OfferedService)null);
return;
case RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS:
getConfParams().clear();
return;
case RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS:
getBindParams().clear();
return;
case RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS:
getChildParams().clear();
return;
case RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS:
getAllowParams().clear();
return;
case RadlPackage.RESOURCE_ADAPTER__CONF_COMPLETE:
setConfComplete(CONF_COMPLETE_EDEFAULT);
return;
case RadlPackage.RESOURCE_ADAPTER__PROTOCOL:
setProtocol((Protocol)null);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID)
{
switch (featureID)
{
case RadlPackage.RESOURCE_ADAPTER__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case RadlPackage.RESOURCE_ADAPTER__IMPLNAME:
return implname != null;
case RadlPackage.RESOURCE_ADAPTER__CONF_PARAMS:
return confParams != null && !confParams.isEmpty();
case RadlPackage.RESOURCE_ADAPTER__BIND_PARAMS:
return bindParams != null && !bindParams.isEmpty();
case RadlPackage.RESOURCE_ADAPTER__CHILD_PARAMS:
return childParams != null && !childParams.isEmpty();
case RadlPackage.RESOURCE_ADAPTER__ALLOW_PARAMS:
return allowParams != null && !allowParams.isEmpty();
case RadlPackage.RESOURCE_ADAPTER__CONF_COMPLETE:
return CONF_COMPLETE_EDEFAULT == null ? confComplete != null : !CONF_COMPLETE_EDEFAULT.equals(confComplete);
case RadlPackage.RESOURCE_ADAPTER__PROTOCOL:
return protocol != null;
}
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(" (name: ");
result.append(name);
result.append(", ConfComplete: ");
result.append(confComplete);
result.append(')');
return result.toString();
}
} //ResourceAdapterImpl