/** */ package IFML.Core.impl; import IFML.Core.ConditionalExpression; import IFML.Core.CorePackage; import IFML.Core.DataBinding; import IFML.Core.DataContextVariable; import IFML.Core.DomainConcept; import IFML.Core.VisualizationAttribute; 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.EObjectWithInverseResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Data Binding</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> * <li>{@link IFML.Core.impl.DataBindingImpl#getConditionalExpression <em>Conditional Expression</em>}</li> * <li>{@link IFML.Core.impl.DataBindingImpl#getVisualizationAttribute <em>Visualization Attribute</em>}</li> * <li>{@link IFML.Core.impl.DataBindingImpl#getDataContextVariables <em>Data Context Variables</em>}</li> * <li>{@link IFML.Core.impl.DataBindingImpl#getDomainConcept <em>Domain Concept</em>}</li> * </ul> * </p> * * @generated */ public class DataBindingImpl extends ContentBindingImpl implements DataBinding { /** * The cached value of the '{@link #getConditionalExpression() <em>Conditional Expression</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getConditionalExpression() * @generated * @ordered */ protected EList<ConditionalExpression> conditionalExpression; /** * The cached value of the '{@link #getVisualizationAttribute() <em>Visualization Attribute</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getVisualizationAttribute() * @generated * @ordered */ protected EList<VisualizationAttribute> visualizationAttribute; /** * The cached value of the '{@link #getDataContextVariables() <em>Data Context Variables</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDataContextVariables() * @generated * @ordered */ protected EList<DataContextVariable> dataContextVariables; /** * The cached value of the '{@link #getDomainConcept() <em>Domain Concept</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getDomainConcept() * @generated * @ordered */ protected DomainConcept domainConcept; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected DataBindingImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return CorePackage.Literals.DATA_BINDING; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<ConditionalExpression> getConditionalExpression() { if (conditionalExpression == null) { conditionalExpression = new EObjectContainmentEList<ConditionalExpression>(ConditionalExpression.class, this, CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION); } return conditionalExpression; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<VisualizationAttribute> getVisualizationAttribute() { if (visualizationAttribute == null) { visualizationAttribute = new EObjectContainmentEList<VisualizationAttribute>(VisualizationAttribute.class, this, CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE); } return visualizationAttribute; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<DataContextVariable> getDataContextVariables() { if (dataContextVariables == null) { dataContextVariables = new EObjectWithInverseResolvingEList<DataContextVariable>(DataContextVariable.class, this, CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES, CorePackage.DATA_CONTEXT_VARIABLE__DATA_BINDING); } return dataContextVariables; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public DomainConcept getDomainConcept() { if (domainConcept != null && domainConcept.eIsProxy()) { InternalEObject oldDomainConcept = (InternalEObject)domainConcept; domainConcept = (DomainConcept)eResolveProxy(oldDomainConcept); if (domainConcept != oldDomainConcept) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, CorePackage.DATA_BINDING__DOMAIN_CONCEPT, oldDomainConcept, domainConcept)); } } return domainConcept; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public DomainConcept basicGetDomainConcept() { return domainConcept; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetDomainConcept(DomainConcept newDomainConcept, NotificationChain msgs) { DomainConcept oldDomainConcept = domainConcept; domainConcept = newDomainConcept; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CorePackage.DATA_BINDING__DOMAIN_CONCEPT, oldDomainConcept, newDomainConcept); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setDomainConcept(DomainConcept newDomainConcept) { if (newDomainConcept != domainConcept) { NotificationChain msgs = null; if (domainConcept != null) msgs = ((InternalEObject)domainConcept).eInverseRemove(this, CorePackage.DOMAIN_CONCEPT__DATA_BINDING, DomainConcept.class, msgs); if (newDomainConcept != null) msgs = ((InternalEObject)newDomainConcept).eInverseAdd(this, CorePackage.DOMAIN_CONCEPT__DATA_BINDING, DomainConcept.class, msgs); msgs = basicSetDomainConcept(newDomainConcept, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, CorePackage.DATA_BINDING__DOMAIN_CONCEPT, newDomainConcept, newDomainConcept)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: return ((InternalEList<InternalEObject>)(InternalEList<?>)getDataContextVariables()).basicAdd(otherEnd, msgs); case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: if (domainConcept != null) msgs = ((InternalEObject)domainConcept).eInverseRemove(this, CorePackage.DOMAIN_CONCEPT__DATA_BINDING, DomainConcept.class, msgs); return basicSetDomainConcept((DomainConcept)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION: return ((InternalEList<?>)getConditionalExpression()).basicRemove(otherEnd, msgs); case CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE: return ((InternalEList<?>)getVisualizationAttribute()).basicRemove(otherEnd, msgs); case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: return ((InternalEList<?>)getDataContextVariables()).basicRemove(otherEnd, msgs); case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: return basicSetDomainConcept(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 CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION: return getConditionalExpression(); case CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE: return getVisualizationAttribute(); case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: return getDataContextVariables(); case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: if (resolve) return getDomainConcept(); return basicGetDomainConcept(); } 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 CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION: getConditionalExpression().clear(); getConditionalExpression().addAll((Collection<? extends ConditionalExpression>)newValue); return; case CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE: getVisualizationAttribute().clear(); getVisualizationAttribute().addAll((Collection<? extends VisualizationAttribute>)newValue); return; case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: getDataContextVariables().clear(); getDataContextVariables().addAll((Collection<? extends DataContextVariable>)newValue); return; case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: setDomainConcept((DomainConcept)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION: getConditionalExpression().clear(); return; case CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE: getVisualizationAttribute().clear(); return; case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: getDataContextVariables().clear(); return; case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: setDomainConcept((DomainConcept)null); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case CorePackage.DATA_BINDING__CONDITIONAL_EXPRESSION: return conditionalExpression != null && !conditionalExpression.isEmpty(); case CorePackage.DATA_BINDING__VISUALIZATION_ATTRIBUTE: return visualizationAttribute != null && !visualizationAttribute.isEmpty(); case CorePackage.DATA_BINDING__DATA_CONTEXT_VARIABLES: return dataContextVariables != null && !dataContextVariables.isEmpty(); case CorePackage.DATA_BINDING__DOMAIN_CONCEPT: return domainConcept != null; } return super.eIsSet(featureID); } } //DataBindingImpl