/** * <copyright> * * Copyright (c) 2010-2016 Thales Global Services S.A.S. * 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: * Thales Global Services S.A.S. - initial API and implementation * * </copyright> */ package org.eclipse.emf.diffmerge.tests.elements.Elements.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.diffmerge.tests.elements.Elements.Element; import org.eclipse.emf.diffmerge.tests.elements.Elements.ElementsPackage; 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.EDataTypeUniqueEList; import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.EObjectResolvingEList; import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Element</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * </p> * <ul> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getValue <em>Value</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getValues <em>Values</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyContent <em>Many Content</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleContent <em>Single Content</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyContentWithUp <em>Many Content With Up</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getUpFromManyContent <em>Up From Many Content</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleContentWithUp <em>Single Content With Up</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getUpFromSingleContent <em>Up From Single Content</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyRef <em>Many Ref</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleRef <em>Single Ref</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleFromSingleRef1 <em>Single From Single Ref1</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleFromSingleRef2 <em>Single From Single Ref2</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyFromSingleRef <em>Many From Single Ref</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getSingleFromManyRef <em>Single From Many Ref</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyFromManyRef1 <em>Many From Many Ref1</em>}</li> * <li>{@link org.eclipse.emf.diffmerge.tests.elements.Elements.impl.ElementImpl#getManyFromManyRef2 <em>Many From Many Ref2</em>}</li> * </ul> * * @generated */ public class ElementImpl extends NamedElementImpl implements Element { /** * The default value of the '{@link #getValue() <em>Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getValue() * @generated * @ordered */ protected static final int VALUE_EDEFAULT = 0; /** * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getValue() * @generated * @ordered */ protected int value = VALUE_EDEFAULT; /** * The cached value of the '{@link #getValues() <em>Values</em>}' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getValues() * @generated * @ordered */ protected EList<Integer> values; /** * The cached value of the '{@link #getManyContent() <em>Many Content</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyContent() * @generated * @ordered */ protected EList<Element> manyContent; /** * The cached value of the '{@link #getSingleContent() <em>Single Content</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleContent() * @generated * @ordered */ protected Element singleContent; /** * The cached value of the '{@link #getManyContentWithUp() <em>Many Content With Up</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyContentWithUp() * @generated * @ordered */ protected EList<Element> manyContentWithUp; /** * The cached value of the '{@link #getSingleContentWithUp() <em>Single Content With Up</em>}' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleContentWithUp() * @generated * @ordered */ protected Element singleContentWithUp; /** * The cached value of the '{@link #getManyRef() <em>Many Ref</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyRef() * @generated * @ordered */ protected EList<Element> manyRef; /** * The cached value of the '{@link #getSingleRef() <em>Single Ref</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleRef() * @generated * @ordered */ protected Element singleRef; /** * The cached value of the '{@link #getSingleFromSingleRef1() <em>Single From Single Ref1</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleFromSingleRef1() * @generated * @ordered */ protected Element singleFromSingleRef1; /** * The cached value of the '{@link #getSingleFromSingleRef2() <em>Single From Single Ref2</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleFromSingleRef2() * @generated * @ordered */ protected Element singleFromSingleRef2; /** * The cached value of the '{@link #getManyFromSingleRef() <em>Many From Single Ref</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyFromSingleRef() * @generated * @ordered */ protected EList<Element> manyFromSingleRef; /** * The cached value of the '{@link #getSingleFromManyRef() <em>Single From Many Ref</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getSingleFromManyRef() * @generated * @ordered */ protected Element singleFromManyRef; /** * The cached value of the '{@link #getManyFromManyRef1() <em>Many From Many Ref1</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyFromManyRef1() * @generated * @ordered */ protected EList<Element> manyFromManyRef1; /** * The cached value of the '{@link #getManyFromManyRef2() <em>Many From Many Ref2</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getManyFromManyRef2() * @generated * @ordered */ protected EList<Element> manyFromManyRef2; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ElementImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return ElementsPackage.Literals.ELEMENT; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public int getValue() { return value; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setValue(int newValue) { int oldValue = value; value = newValue; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__VALUE, oldValue, value)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Integer> getValues() { if (values == null) { values = new EDataTypeUniqueEList<Integer>(Integer.class, this, ElementsPackage.ELEMENT__VALUES); } return values; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyContent() { if (manyContent == null) { manyContent = new EObjectContainmentEList<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_CONTENT); } return manyContent; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleContent() { return singleContent; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetSingleContent(Element newSingleContent, NotificationChain msgs) { Element oldSingleContent = singleContent; singleContent = newSingleContent; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_CONTENT, oldSingleContent, newSingleContent); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleContent(Element newSingleContent) { if (newSingleContent != singleContent) { NotificationChain msgs = null; if (singleContent != null) msgs = ((InternalEObject)singleContent).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ElementsPackage.ELEMENT__SINGLE_CONTENT, null, msgs); if (newSingleContent != null) msgs = ((InternalEObject)newSingleContent).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ElementsPackage.ELEMENT__SINGLE_CONTENT, null, msgs); msgs = basicSetSingleContent(newSingleContent, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_CONTENT, newSingleContent, newSingleContent)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyContentWithUp() { if (manyContentWithUp == null) { manyContentWithUp = new EObjectContainmentWithInverseEList<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP, ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT); } return manyContentWithUp; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getUpFromManyContent() { if (eContainerFeatureID() != ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT) return null; return (Element)eInternalContainer(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetUpFromManyContent(Element newUpFromManyContent, NotificationChain msgs) { msgs = eBasicSetContainer((InternalEObject)newUpFromManyContent, ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT, msgs); return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setUpFromManyContent(Element newUpFromManyContent) { if (newUpFromManyContent != eInternalContainer() || (eContainerFeatureID() != ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT && newUpFromManyContent != null)) { if (EcoreUtil.isAncestor(this, newUpFromManyContent)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); if (newUpFromManyContent != null) msgs = ((InternalEObject)newUpFromManyContent).eInverseAdd(this, ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP, Element.class, msgs); msgs = basicSetUpFromManyContent(newUpFromManyContent, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT, newUpFromManyContent, newUpFromManyContent)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleContentWithUp() { return singleContentWithUp; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetSingleContentWithUp(Element newSingleContentWithUp, NotificationChain msgs) { Element oldSingleContentWithUp = singleContentWithUp; singleContentWithUp = newSingleContentWithUp; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP, oldSingleContentWithUp, newSingleContentWithUp); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleContentWithUp(Element newSingleContentWithUp) { if (newSingleContentWithUp != singleContentWithUp) { NotificationChain msgs = null; if (singleContentWithUp != null) msgs = ((InternalEObject)singleContentWithUp).eInverseRemove(this, ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT, Element.class, msgs); if (newSingleContentWithUp != null) msgs = ((InternalEObject)newSingleContentWithUp).eInverseAdd(this, ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT, Element.class, msgs); msgs = basicSetSingleContentWithUp(newSingleContentWithUp, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP, newSingleContentWithUp, newSingleContentWithUp)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getUpFromSingleContent() { if (eContainerFeatureID() != ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT) return null; return (Element)eInternalContainer(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetUpFromSingleContent(Element newUpFromSingleContent, NotificationChain msgs) { msgs = eBasicSetContainer((InternalEObject)newUpFromSingleContent, ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT, msgs); return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setUpFromSingleContent(Element newUpFromSingleContent) { if (newUpFromSingleContent != eInternalContainer() || (eContainerFeatureID() != ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT && newUpFromSingleContent != null)) { if (EcoreUtil.isAncestor(this, newUpFromSingleContent)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); if (newUpFromSingleContent != null) msgs = ((InternalEObject)newUpFromSingleContent).eInverseAdd(this, ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP, Element.class, msgs); msgs = basicSetUpFromSingleContent(newUpFromSingleContent, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT, newUpFromSingleContent, newUpFromSingleContent)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyRef() { if (manyRef == null) { manyRef = new EObjectResolvingEList<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_REF); } return manyRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleRef() { if (singleRef != null && singleRef.eIsProxy()) { InternalEObject oldSingleRef = (InternalEObject)singleRef; singleRef = (Element)eResolveProxy(oldSingleRef); if (singleRef != oldSingleRef) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, ElementsPackage.ELEMENT__SINGLE_REF, oldSingleRef, singleRef)); } } return singleRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element basicGetSingleRef() { return singleRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleRef(Element newSingleRef) { Element oldSingleRef = singleRef; singleRef = newSingleRef; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_REF, oldSingleRef, singleRef)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleFromSingleRef1() { if (singleFromSingleRef1 != null && singleFromSingleRef1.eIsProxy()) { InternalEObject oldSingleFromSingleRef1 = (InternalEObject)singleFromSingleRef1; singleFromSingleRef1 = (Element)eResolveProxy(oldSingleFromSingleRef1); if (singleFromSingleRef1 != oldSingleFromSingleRef1) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, oldSingleFromSingleRef1, singleFromSingleRef1)); } } return singleFromSingleRef1; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element basicGetSingleFromSingleRef1() { return singleFromSingleRef1; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetSingleFromSingleRef1(Element newSingleFromSingleRef1, NotificationChain msgs) { Element oldSingleFromSingleRef1 = singleFromSingleRef1; singleFromSingleRef1 = newSingleFromSingleRef1; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, oldSingleFromSingleRef1, newSingleFromSingleRef1); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleFromSingleRef1(Element newSingleFromSingleRef1) { if (newSingleFromSingleRef1 != singleFromSingleRef1) { NotificationChain msgs = null; if (singleFromSingleRef1 != null) msgs = ((InternalEObject)singleFromSingleRef1).eInverseRemove(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, Element.class, msgs); if (newSingleFromSingleRef1 != null) msgs = ((InternalEObject)newSingleFromSingleRef1).eInverseAdd(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, Element.class, msgs); msgs = basicSetSingleFromSingleRef1(newSingleFromSingleRef1, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, newSingleFromSingleRef1, newSingleFromSingleRef1)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleFromSingleRef2() { if (singleFromSingleRef2 != null && singleFromSingleRef2.eIsProxy()) { InternalEObject oldSingleFromSingleRef2 = (InternalEObject)singleFromSingleRef2; singleFromSingleRef2 = (Element)eResolveProxy(oldSingleFromSingleRef2); if (singleFromSingleRef2 != oldSingleFromSingleRef2) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, oldSingleFromSingleRef2, singleFromSingleRef2)); } } return singleFromSingleRef2; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element basicGetSingleFromSingleRef2() { return singleFromSingleRef2; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetSingleFromSingleRef2(Element newSingleFromSingleRef2, NotificationChain msgs) { Element oldSingleFromSingleRef2 = singleFromSingleRef2; singleFromSingleRef2 = newSingleFromSingleRef2; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, oldSingleFromSingleRef2, newSingleFromSingleRef2); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleFromSingleRef2(Element newSingleFromSingleRef2) { if (newSingleFromSingleRef2 != singleFromSingleRef2) { NotificationChain msgs = null; if (singleFromSingleRef2 != null) msgs = ((InternalEObject)singleFromSingleRef2).eInverseRemove(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, Element.class, msgs); if (newSingleFromSingleRef2 != null) msgs = ((InternalEObject)newSingleFromSingleRef2).eInverseAdd(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, Element.class, msgs); msgs = basicSetSingleFromSingleRef2(newSingleFromSingleRef2, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, newSingleFromSingleRef2, newSingleFromSingleRef2)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyFromSingleRef() { if (manyFromSingleRef == null) { manyFromSingleRef = new EObjectWithInverseResolvingEList<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF, ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF); } return manyFromSingleRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element getSingleFromManyRef() { if (singleFromManyRef != null && singleFromManyRef.eIsProxy()) { InternalEObject oldSingleFromManyRef = (InternalEObject)singleFromManyRef; singleFromManyRef = (Element)eResolveProxy(oldSingleFromManyRef); if (singleFromManyRef != oldSingleFromManyRef) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF, oldSingleFromManyRef, singleFromManyRef)); } } return singleFromManyRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Element basicGetSingleFromManyRef() { return singleFromManyRef; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NotificationChain basicSetSingleFromManyRef(Element newSingleFromManyRef, NotificationChain msgs) { Element oldSingleFromManyRef = singleFromManyRef; singleFromManyRef = newSingleFromManyRef; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF, oldSingleFromManyRef, newSingleFromManyRef); if (msgs == null) msgs = notification; else msgs.add(notification); } return msgs; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setSingleFromManyRef(Element newSingleFromManyRef) { if (newSingleFromManyRef != singleFromManyRef) { NotificationChain msgs = null; if (singleFromManyRef != null) msgs = ((InternalEObject)singleFromManyRef).eInverseRemove(this, ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF, Element.class, msgs); if (newSingleFromManyRef != null) msgs = ((InternalEObject)newSingleFromManyRef).eInverseAdd(this, ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF, Element.class, msgs); msgs = basicSetSingleFromManyRef(newSingleFromManyRef, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF, newSingleFromManyRef, newSingleFromManyRef)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyFromManyRef1() { if (manyFromManyRef1 == null) { manyFromManyRef1 = new EObjectWithInverseResolvingEList.ManyInverse<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1, ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2); } return manyFromManyRef1; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EList<Element> getManyFromManyRef2() { if (manyFromManyRef2 == null) { manyFromManyRef2 = new EObjectWithInverseResolvingEList.ManyInverse<Element>(Element.class, this, ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2, ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1); } return manyFromManyRef2; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: return ((InternalEList<InternalEObject>)(InternalEList<?>)getManyContentWithUp()).basicAdd(otherEnd, msgs); case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return basicSetUpFromManyContent((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: if (singleContentWithUp != null) msgs = ((InternalEObject)singleContentWithUp).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP, null, msgs); return basicSetSingleContentWithUp((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return basicSetUpFromSingleContent((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: if (singleFromSingleRef1 != null) msgs = ((InternalEObject)singleFromSingleRef1).eInverseRemove(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2, Element.class, msgs); return basicSetSingleFromSingleRef1((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: if (singleFromSingleRef2 != null) msgs = ((InternalEObject)singleFromSingleRef2).eInverseRemove(this, ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1, Element.class, msgs); return basicSetSingleFromSingleRef2((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: return ((InternalEList<InternalEObject>)(InternalEList<?>)getManyFromSingleRef()).basicAdd(otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: if (singleFromManyRef != null) msgs = ((InternalEObject)singleFromManyRef).eInverseRemove(this, ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF, Element.class, msgs); return basicSetSingleFromManyRef((Element)otherEnd, msgs); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: return ((InternalEList<InternalEObject>)(InternalEList<?>)getManyFromManyRef1()).basicAdd(otherEnd, msgs); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: return ((InternalEList<InternalEObject>)(InternalEList<?>)getManyFromManyRef2()).basicAdd(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 ElementsPackage.ELEMENT__MANY_CONTENT: return ((InternalEList<?>)getManyContent()).basicRemove(otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_CONTENT: return basicSetSingleContent(null, msgs); case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: return ((InternalEList<?>)getManyContentWithUp()).basicRemove(otherEnd, msgs); case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: return basicSetUpFromManyContent(null, msgs); case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: return basicSetSingleContentWithUp(null, msgs); case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: return basicSetUpFromSingleContent(null, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: return basicSetSingleFromSingleRef1(null, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: return basicSetSingleFromSingleRef2(null, msgs); case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: return ((InternalEList<?>)getManyFromSingleRef()).basicRemove(otherEnd, msgs); case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: return basicSetSingleFromManyRef(null, msgs); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: return ((InternalEList<?>)getManyFromManyRef1()).basicRemove(otherEnd, msgs); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: return ((InternalEList<?>)getManyFromManyRef2()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { switch (eContainerFeatureID()) { case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: return eInternalContainer().eInverseRemove(this, ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP, Element.class, msgs); case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: return eInternalContainer().eInverseRemove(this, ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP, Element.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case ElementsPackage.ELEMENT__VALUE: return getValue(); case ElementsPackage.ELEMENT__VALUES: return getValues(); case ElementsPackage.ELEMENT__MANY_CONTENT: return getManyContent(); case ElementsPackage.ELEMENT__SINGLE_CONTENT: return getSingleContent(); case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: return getManyContentWithUp(); case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: return getUpFromManyContent(); case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: return getSingleContentWithUp(); case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: return getUpFromSingleContent(); case ElementsPackage.ELEMENT__MANY_REF: return getManyRef(); case ElementsPackage.ELEMENT__SINGLE_REF: if (resolve) return getSingleRef(); return basicGetSingleRef(); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: if (resolve) return getSingleFromSingleRef1(); return basicGetSingleFromSingleRef1(); case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: if (resolve) return getSingleFromSingleRef2(); return basicGetSingleFromSingleRef2(); case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: return getManyFromSingleRef(); case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: if (resolve) return getSingleFromManyRef(); return basicGetSingleFromManyRef(); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: return getManyFromManyRef1(); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: return getManyFromManyRef2(); } 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 ElementsPackage.ELEMENT__VALUE: setValue((Integer)newValue); return; case ElementsPackage.ELEMENT__VALUES: getValues().clear(); getValues().addAll((Collection<? extends Integer>)newValue); return; case ElementsPackage.ELEMENT__MANY_CONTENT: getManyContent().clear(); getManyContent().addAll((Collection<? extends Element>)newValue); return; case ElementsPackage.ELEMENT__SINGLE_CONTENT: setSingleContent((Element)newValue); return; case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: getManyContentWithUp().clear(); getManyContentWithUp().addAll((Collection<? extends Element>)newValue); return; case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: setUpFromManyContent((Element)newValue); return; case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: setSingleContentWithUp((Element)newValue); return; case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: setUpFromSingleContent((Element)newValue); return; case ElementsPackage.ELEMENT__MANY_REF: getManyRef().clear(); getManyRef().addAll((Collection<? extends Element>)newValue); return; case ElementsPackage.ELEMENT__SINGLE_REF: setSingleRef((Element)newValue); return; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: setSingleFromSingleRef1((Element)newValue); return; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: setSingleFromSingleRef2((Element)newValue); return; case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: getManyFromSingleRef().clear(); getManyFromSingleRef().addAll((Collection<? extends Element>)newValue); return; case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: setSingleFromManyRef((Element)newValue); return; case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: getManyFromManyRef1().clear(); getManyFromManyRef1().addAll((Collection<? extends Element>)newValue); return; case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: getManyFromManyRef2().clear(); getManyFromManyRef2().addAll((Collection<? extends Element>)newValue); return; } super.eSet(featureID, newValue); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case ElementsPackage.ELEMENT__VALUE: setValue(VALUE_EDEFAULT); return; case ElementsPackage.ELEMENT__VALUES: getValues().clear(); return; case ElementsPackage.ELEMENT__MANY_CONTENT: getManyContent().clear(); return; case ElementsPackage.ELEMENT__SINGLE_CONTENT: setSingleContent((Element)null); return; case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: getManyContentWithUp().clear(); return; case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: setUpFromManyContent((Element)null); return; case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: setSingleContentWithUp((Element)null); return; case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: setUpFromSingleContent((Element)null); return; case ElementsPackage.ELEMENT__MANY_REF: getManyRef().clear(); return; case ElementsPackage.ELEMENT__SINGLE_REF: setSingleRef((Element)null); return; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: setSingleFromSingleRef1((Element)null); return; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: setSingleFromSingleRef2((Element)null); return; case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: getManyFromSingleRef().clear(); return; case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: setSingleFromManyRef((Element)null); return; case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: getManyFromManyRef1().clear(); return; case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: getManyFromManyRef2().clear(); return; } super.eUnset(featureID); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case ElementsPackage.ELEMENT__VALUE: return value != VALUE_EDEFAULT; case ElementsPackage.ELEMENT__VALUES: return values != null && !values.isEmpty(); case ElementsPackage.ELEMENT__MANY_CONTENT: return manyContent != null && !manyContent.isEmpty(); case ElementsPackage.ELEMENT__SINGLE_CONTENT: return singleContent != null; case ElementsPackage.ELEMENT__MANY_CONTENT_WITH_UP: return manyContentWithUp != null && !manyContentWithUp.isEmpty(); case ElementsPackage.ELEMENT__UP_FROM_MANY_CONTENT: return getUpFromManyContent() != null; case ElementsPackage.ELEMENT__SINGLE_CONTENT_WITH_UP: return singleContentWithUp != null; case ElementsPackage.ELEMENT__UP_FROM_SINGLE_CONTENT: return getUpFromSingleContent() != null; case ElementsPackage.ELEMENT__MANY_REF: return manyRef != null && !manyRef.isEmpty(); case ElementsPackage.ELEMENT__SINGLE_REF: return singleRef != null; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF1: return singleFromSingleRef1 != null; case ElementsPackage.ELEMENT__SINGLE_FROM_SINGLE_REF2: return singleFromSingleRef2 != null; case ElementsPackage.ELEMENT__MANY_FROM_SINGLE_REF: return manyFromSingleRef != null && !manyFromSingleRef.isEmpty(); case ElementsPackage.ELEMENT__SINGLE_FROM_MANY_REF: return singleFromManyRef != null; case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF1: return manyFromManyRef1 != null && !manyFromManyRef1.isEmpty(); case ElementsPackage.ELEMENT__MANY_FROM_MANY_REF2: return manyFromManyRef2 != null && !manyFromManyRef2.isEmpty(); } 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(" (value: "); result.append(value); result.append(", values: "); result.append(values); result.append(')'); return result.toString(); } } //ElementImpl