/**
*/
package hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.CftPackage;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.ComponentDefinition;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDeclaration;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.EventDefinition;
import hu.bme.mit.inf.dslreasoner.faulttree.model.cft.InputEvent;
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.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
*
* An implementation of the model object 'Component Definition'.
*
*
* The following features are implemented:
*
*
* - {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentDefinitionImpl#getInputEvents Input Events}
* - {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentDefinitionImpl#getEventDefinitions Event Definitions}
* - {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentDefinitionImpl#getOutputEvents Output Events}
* - {@link hu.bme.mit.inf.dslreasoner.faulttree.model.cft.impl.ComponentDefinitionImpl#getName Name}
*
*
* @generated
*/
public class ComponentDefinitionImpl extends MinimalEObjectImpl.Container implements ComponentDefinition {
/**
* The cached value of the '{@link #getInputEvents() Input Events}' containment reference list.
*
*
* @see #getInputEvents()
* @generated
* @ordered
*/
protected EList inputEvents;
/**
* The cached value of the '{@link #getEventDefinitions() Event Definitions}' containment reference list.
*
*
* @see #getEventDefinitions()
* @generated
* @ordered
*/
protected EList eventDefinitions;
/**
* The cached value of the '{@link #getOutputEvents() Output Events}' reference list.
*
*
* @see #getOutputEvents()
* @generated
* @ordered
*/
protected EList outputEvents;
/**
* The default value of the '{@link #getName() Name}' attribute.
*
*
* @see #getName()
* @generated
* @ordered
*/
protected static final String NAME_EDEFAULT = null;
/**
* The cached value of the '{@link #getName() Name}' attribute.
*
*
* @see #getName()
* @generated
* @ordered
*/
protected String name = NAME_EDEFAULT;
/**
*
*
* @generated
*/
protected ComponentDefinitionImpl() {
super();
}
/**
*
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return CftPackage.Literals.COMPONENT_DEFINITION;
}
/**
*
*
* @generated
*/
@Override
public EList getInputEvents() {
if (inputEvents == null) {
inputEvents = new EObjectContainmentEList(InputEvent.class, this, CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS);
}
return inputEvents;
}
/**
*
*
* @generated
*/
@Override
public EList getEventDefinitions() {
if (eventDefinitions == null) {
eventDefinitions = new EObjectContainmentEList(EventDefinition.class, this, CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS);
}
return eventDefinitions;
}
/**
*
*
* @generated
*/
@Override
public EList getOutputEvents() {
if (outputEvents == null) {
outputEvents = new EObjectResolvingEList(EventDeclaration.class, this, CftPackage.COMPONENT_DEFINITION__OUTPUT_EVENTS);
}
return outputEvents;
}
/**
*
*
* @generated
*/
@Override
public String getName() {
return name;
}
/**
*
*
* @generated
*/
@Override
public void setName(String newName) {
String oldName = name;
name = newName;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, CftPackage.COMPONENT_DEFINITION__NAME, oldName, name));
}
/**
*
*
* @generated
*/
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS:
return ((InternalEList>)getInputEvents()).basicRemove(otherEnd, msgs);
case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS:
return ((InternalEList>)getEventDefinitions()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
*
*
* @generated
*/
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS:
return getInputEvents();
case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS:
return getEventDefinitions();
case CftPackage.COMPONENT_DEFINITION__OUTPUT_EVENTS:
return getOutputEvents();
case CftPackage.COMPONENT_DEFINITION__NAME:
return getName();
}
return super.eGet(featureID, resolve, coreType);
}
/**
*
*
* @generated
*/
@SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS:
getInputEvents().clear();
getInputEvents().addAll((Collection extends InputEvent>)newValue);
return;
case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS:
getEventDefinitions().clear();
getEventDefinitions().addAll((Collection extends EventDefinition>)newValue);
return;
case CftPackage.COMPONENT_DEFINITION__OUTPUT_EVENTS:
getOutputEvents().clear();
getOutputEvents().addAll((Collection extends EventDeclaration>)newValue);
return;
case CftPackage.COMPONENT_DEFINITION__NAME:
setName((String)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
*
*
* @generated
*/
@Override
public void eUnset(int featureID) {
switch (featureID) {
case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS:
getInputEvents().clear();
return;
case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS:
getEventDefinitions().clear();
return;
case CftPackage.COMPONENT_DEFINITION__OUTPUT_EVENTS:
getOutputEvents().clear();
return;
case CftPackage.COMPONENT_DEFINITION__NAME:
setName(NAME_EDEFAULT);
return;
}
super.eUnset(featureID);
}
/**
*
*
* @generated
*/
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
case CftPackage.COMPONENT_DEFINITION__INPUT_EVENTS:
return inputEvents != null && !inputEvents.isEmpty();
case CftPackage.COMPONENT_DEFINITION__EVENT_DEFINITIONS:
return eventDefinitions != null && !eventDefinitions.isEmpty();
case CftPackage.COMPONENT_DEFINITION__OUTPUT_EVENTS:
return outputEvents != null && !outputEvents.isEmpty();
case CftPackage.COMPONENT_DEFINITION__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
}
return super.eIsSet(featureID);
}
/**
*
*
* @generated
*/
@Override
public String toString() {
if (eIsProxy()) return super.toString();
StringBuilder result = new StringBuilder(super.toString());
result.append(" (name: ");
result.append(name);
result.append(')');
return result.toString();
}
} //ComponentDefinitionImpl