/**
* <copyright>
* </copyright>
*
* $Id$
*/
package FederationOffice.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.InternalEList;
import FederationOffice.FederationOfficePackage;
import FederationOffice.Office;
import FederationOffice.availabilityContract.ResourceServiceContract;
import FederationOffice.federationscenarios.RequestedFederationScenario;
import FederationOffice.services.OfferedService;
import FederationOffice.services.ServiceComposition;
import FederationOffice.services.Taxonomy;
import FederationOffice.slareservations.SLA;
import FederationOffice.users.OfficeUser;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Office</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link FederationOffice.impl.OfficeImpl#getRegisteredUsers <em>Registered Users</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getContributedTaxonomies <em>Contributed Taxonomies</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getOfferedServices <em>Offered Services</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getAvailableFederationScenarios <em>Available Federation Scenarios</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getOfferedServiceCompositions <em>Offered Service Compositions</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getResourceServiceContracts <em>Resource Service Contracts</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getSLAs <em>SL As</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getResourceURI <em>Resource URI</em>}</li>
* <li>{@link FederationOffice.impl.OfficeImpl#getAPIGateway <em>API Gateway</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class OfficeImpl extends NamedElementImpl implements Office {
/**
* The cached value of the '{@link #getRegisteredUsers() <em>Registered Users</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getRegisteredUsers()
* @generated
* @ordered
*/
protected EList<OfficeUser> registeredUsers;
/**
* The cached value of the '{@link #getContributedTaxonomies() <em>Contributed Taxonomies</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getContributedTaxonomies()
* @generated
* @ordered
*/
protected EList<Taxonomy> contributedTaxonomies;
/**
* The cached value of the '{@link #getOfferedServices() <em>Offered Services</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOfferedServices()
* @generated
* @ordered
*/
protected EList<OfferedService> offeredServices;
/**
* The cached value of the '{@link #getAvailableFederationScenarios() <em>Available Federation Scenarios</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAvailableFederationScenarios()
* @generated
* @ordered
*/
protected EList<RequestedFederationScenario> availableFederationScenarios;
/**
* The cached value of the '{@link #getOfferedServiceCompositions() <em>Offered Service Compositions</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getOfferedServiceCompositions()
* @generated
* @ordered
*/
protected EList<ServiceComposition> offeredServiceCompositions;
/**
* The cached value of the '{@link #getResourceServiceContracts() <em>Resource Service Contracts</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getResourceServiceContracts()
* @generated
* @ordered
*/
protected EList<ResourceServiceContract> resourceServiceContracts;
/**
* The cached value of the '{@link #getSLAs() <em>SL As</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSLAs()
* @generated
* @ordered
*/
protected EList<SLA> slAs;
/**
* The default value of the '{@link #getResourceURI() <em>Resource URI</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getResourceURI()
* @generated
* @ordered
*/
protected static final String RESOURCE_URI_EDEFAULT = null;
/**
* The cached value of the '{@link #getResourceURI() <em>Resource URI</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getResourceURI()
* @generated
* @ordered
*/
protected String resourceURI = RESOURCE_URI_EDEFAULT;
/**
* The default value of the '{@link #getAPIGateway() <em>API Gateway</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAPIGateway()
* @generated
* @ordered
*/
protected static final String API_GATEWAY_EDEFAULT = null;
/**
* The cached value of the '{@link #getAPIGateway() <em>API Gateway</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getAPIGateway()
* @generated
* @ordered
*/
protected String apiGateway = API_GATEWAY_EDEFAULT;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected OfficeImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass() {
return FederationOfficePackage.Literals.OFFICE;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<OfficeUser> getRegisteredUsers() {
if (registeredUsers == null) {
registeredUsers = new EObjectContainmentEList.Resolving<OfficeUser>(OfficeUser.class, this, FederationOfficePackage.OFFICE__REGISTERED_USERS);
}
return registeredUsers;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<Taxonomy> getContributedTaxonomies() {
if (contributedTaxonomies == null) {
contributedTaxonomies = new EObjectContainmentEList.Resolving<Taxonomy>(Taxonomy.class, this, FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES);
}
return contributedTaxonomies;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<OfferedService> getOfferedServices() {
if (offeredServices == null) {
offeredServices = new EObjectContainmentEList.Resolving<OfferedService>(OfferedService.class, this, FederationOfficePackage.OFFICE__OFFERED_SERVICES);
}
return offeredServices;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<RequestedFederationScenario> getAvailableFederationScenarios() {
if (availableFederationScenarios == null) {
availableFederationScenarios = new EObjectContainmentEList.Resolving<RequestedFederationScenario>(RequestedFederationScenario.class, this, FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS);
}
return availableFederationScenarios;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ServiceComposition> getOfferedServiceCompositions() {
if (offeredServiceCompositions == null) {
offeredServiceCompositions = new EObjectContainmentEList.Resolving<ServiceComposition>(ServiceComposition.class, this, FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS);
}
return offeredServiceCompositions;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<ResourceServiceContract> getResourceServiceContracts() {
if (resourceServiceContracts == null) {
resourceServiceContracts = new EObjectContainmentEList.Resolving<ResourceServiceContract>(ResourceServiceContract.class, this, FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS);
}
return resourceServiceContracts;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EList<SLA> getSLAs() {
if (slAs == null) {
slAs = new EObjectContainmentEList.Resolving<SLA>(SLA.class, this, FederationOfficePackage.OFFICE__SL_AS);
}
return slAs;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getResourceURI() {
return resourceURI;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setResourceURI(String newResourceURI) {
String oldResourceURI = resourceURI;
resourceURI = newResourceURI;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, FederationOfficePackage.OFFICE__RESOURCE_URI, oldResourceURI, resourceURI));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getAPIGateway() {
return apiGateway;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setAPIGateway(String newAPIGateway) {
String oldAPIGateway = apiGateway;
apiGateway = newAPIGateway;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, FederationOfficePackage.OFFICE__API_GATEWAY, oldAPIGateway, apiGateway));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case FederationOfficePackage.OFFICE__REGISTERED_USERS:
return ((InternalEList<?>)getRegisteredUsers()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES:
return ((InternalEList<?>)getContributedTaxonomies()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__OFFERED_SERVICES:
return ((InternalEList<?>)getOfferedServices()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS:
return ((InternalEList<?>)getAvailableFederationScenarios()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS:
return ((InternalEList<?>)getOfferedServiceCompositions()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS:
return ((InternalEList<?>)getResourceServiceContracts()).basicRemove(otherEnd, msgs);
case FederationOfficePackage.OFFICE__SL_AS:
return ((InternalEList<?>)getSLAs()).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 FederationOfficePackage.OFFICE__REGISTERED_USERS:
return getRegisteredUsers();
case FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES:
return getContributedTaxonomies();
case FederationOfficePackage.OFFICE__OFFERED_SERVICES:
return getOfferedServices();
case FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS:
return getAvailableFederationScenarios();
case FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS:
return getOfferedServiceCompositions();
case FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS:
return getResourceServiceContracts();
case FederationOfficePackage.OFFICE__SL_AS:
return getSLAs();
case FederationOfficePackage.OFFICE__RESOURCE_URI:
return getResourceURI();
case FederationOfficePackage.OFFICE__API_GATEWAY:
return getAPIGateway();
}
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 FederationOfficePackage.OFFICE__REGISTERED_USERS:
getRegisteredUsers().clear();
getRegisteredUsers().addAll((Collection<? extends OfficeUser>)newValue);
return;
case FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES:
getContributedTaxonomies().clear();
getContributedTaxonomies().addAll((Collection<? extends Taxonomy>)newValue);
return;
case FederationOfficePackage.OFFICE__OFFERED_SERVICES:
getOfferedServices().clear();
getOfferedServices().addAll((Collection<? extends OfferedService>)newValue);
return;
case FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS:
getAvailableFederationScenarios().clear();
getAvailableFederationScenarios().addAll((Collection<? extends RequestedFederationScenario>)newValue);
return;
case FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS:
getOfferedServiceCompositions().clear();
getOfferedServiceCompositions().addAll((Collection<? extends ServiceComposition>)newValue);
return;
case FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS:
getResourceServiceContracts().clear();
getResourceServiceContracts().addAll((Collection<? extends ResourceServiceContract>)newValue);
return;
case FederationOfficePackage.OFFICE__SL_AS:
getSLAs().clear();
getSLAs().addAll((Collection<? extends SLA>)newValue);
return;
case FederationOfficePackage.OFFICE__RESOURCE_URI:
setResourceURI((String)newValue);
return;
case FederationOfficePackage.OFFICE__API_GATEWAY:
setAPIGateway((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case FederationOfficePackage.OFFICE__REGISTERED_USERS:
getRegisteredUsers().clear();
return;
case FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES:
getContributedTaxonomies().clear();
return;
case FederationOfficePackage.OFFICE__OFFERED_SERVICES:
getOfferedServices().clear();
return;
case FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS:
getAvailableFederationScenarios().clear();
return;
case FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS:
getOfferedServiceCompositions().clear();
return;
case FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS:
getResourceServiceContracts().clear();
return;
case FederationOfficePackage.OFFICE__SL_AS:
getSLAs().clear();
return;
case FederationOfficePackage.OFFICE__RESOURCE_URI:
setResourceURI(RESOURCE_URI_EDEFAULT);
return;
case FederationOfficePackage.OFFICE__API_GATEWAY:
setAPIGateway(API_GATEWAY_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case FederationOfficePackage.OFFICE__REGISTERED_USERS:
return registeredUsers != null && !registeredUsers.isEmpty();
case FederationOfficePackage.OFFICE__CONTRIBUTED_TAXONOMIES:
return contributedTaxonomies != null && !contributedTaxonomies.isEmpty();
case FederationOfficePackage.OFFICE__OFFERED_SERVICES:
return offeredServices != null && !offeredServices.isEmpty();
case FederationOfficePackage.OFFICE__AVAILABLE_FEDERATION_SCENARIOS:
return availableFederationScenarios != null && !availableFederationScenarios.isEmpty();
case FederationOfficePackage.OFFICE__OFFERED_SERVICE_COMPOSITIONS:
return offeredServiceCompositions != null && !offeredServiceCompositions.isEmpty();
case FederationOfficePackage.OFFICE__RESOURCE_SERVICE_CONTRACTS:
return resourceServiceContracts != null && !resourceServiceContracts.isEmpty();
case FederationOfficePackage.OFFICE__SL_AS:
return slAs != null && !slAs.isEmpty();
case FederationOfficePackage.OFFICE__RESOURCE_URI:
return RESOURCE_URI_EDEFAULT == null ? resourceURI != null : !RESOURCE_URI_EDEFAULT.equals(resourceURI);
case FederationOfficePackage.OFFICE__API_GATEWAY:
return API_GATEWAY_EDEFAULT == null ? apiGateway != null : !API_GATEWAY_EDEFAULT.equals(apiGateway);
}
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(" (resourceURI: ");
result.append(resourceURI);
result.append(", APIGateway: ");
result.append(apiGateway);
result.append(')');
return result.toString();
}
} //OfficeImpl