Class SubsetSupersetEObjectEStoreEList<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
org.eclipse.emf.common.util.AbstractEList<E>
org.eclipse.emf.common.util.DelegatingEList<E>
org.eclipse.emf.common.notify.impl.DelegatingNotifyingListImpl<E>
org.eclipse.emf.ecore.util.DelegatingNotifyingInternalEListImpl<E>
org.eclipse.emf.ecore.util.DelegatingEcoreEList<E>
org.eclipse.emf.ecore.util.DelegatingEcoreEList.Generic<E>
org.eclipse.emf.ecore.util.DelegatingEcoreEList.Dynamic<E>
com.dassault_systemes.modeler.foundation.emf.impl.AbstractEStoreEList<E>
com.nomagic.magicdraw.emf.impl.BasicEStoreEList<E>
com.nomagic.magicdraw.uml2.util.ModelEStoreEList<E>
com.nomagic.magicdraw.uml2.util.SubsetSupersetEObjectEStoreEList<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, org.eclipse.emf.common.notify.NotifyingList<E>, org.eclipse.emf.common.util.EList<E>, org.eclipse.emf.ecore.EStructuralFeature.Setting, org.eclipse.emf.ecore.util.InternalEList<E>, org.eclipse.emf.ecore.util.InternalEList.Unsettable<E>
Direct Known Subclasses:
SubsetSupersetEObjectEStoreContainmentEList, SubsetSupersetEObjectEStoreResolvingEList, SubsetSupersetEObjectEStoreWithInverseEList

public class SubsetSupersetEObjectEStoreEList<E> extends ModelEStoreEList<E>
A list that enforces subset/superset constraints. Specifically, when an element is added to a subset, it is also added to the associated superset(s), if not already present; when an element is removed from a superset, it is also removed from the associated subset(s), if present.
Since:
1.2
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Class<?>
     
    protected final int[]
    An array of subset feature identifiers.
    protected final int[]
    An array of superset feature identifiers.

    Fields inherited from class org.eclipse.emf.ecore.util.DelegatingEcoreEList.Dynamic

    eStructuralFeature

    Fields inherited from class org.eclipse.emf.ecore.util.DelegatingEcoreEList.Generic

    HAS_INSTANCE_CLASS, HAS_MANY_INVERSE, HAS_NAVIGABLE_INVERSE, HAS_PROXIES, IS_CONTAINER, IS_CONTAINMENT, IS_ENUM, IS_EOBJECT, IS_PRIMITIVE, IS_SET, IS_UNIQUE, IS_UNSETTABLE, kind

    Fields inherited from class org.eclipse.emf.ecore.util.DelegatingEcoreEList

    owner

    Fields inherited from class java.util.AbstractList

    modCount
  • Constructor Summary

    Constructors
    Constructor
    Description
    SubsetSupersetEObjectEStoreEList(Class<?> dataClass, org.eclipse.emf.ecore.InternalEObject owner, int featureID, int[] supersetFeatureIDs, int[] subsetFeatureIDs)
    Creates and initializes a new SubsetSupersetEObjectEStoreEList instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int index, E object)
    Adds the object at the given index in the list.
    boolean
    add(E object)
     
    boolean
    addAll(int index, Collection<? extends E> collection)
     
    boolean
    addAll(Collection<? extends E> collection)
     
    org.eclipse.emf.common.notify.NotificationChain
    basicAdd(E object, org.eclipse.emf.common.notify.NotificationChain notifications)
     
    org.eclipse.emf.common.notify.NotificationChain
    basicSet(int index, E object, org.eclipse.emf.common.notify.NotificationChain notifications)
     
    protected void
    didRemove(int index, E oldObject)
     
    protected boolean
    Indicates whether subset constraints should be enforced.
    protected boolean
    Indicates whether superset constraints should be enforced.
    protected void
    replaceOrAddToSuperset(Object oldObject, Object object)
    Replaces the specified value or adds ir to the superset if new value is not already added.
    protected org.eclipse.emf.ecore.EObject
    resolve(int index, org.eclipse.emf.ecore.EObject eObject)
     
    set(int index, E object)
     
    protected void
    Removes the specified element from the subset(s).
    protected void
    Adds the specified element to the superset(s).

    Methods inherited from class com.nomagic.magicdraw.emf.impl.BasicEStoreEList

    createOperationTimeoutException, getLockProvider

    Methods inherited from class com.dassault_systemes.modeler.foundation.emf.impl.AbstractEStoreEList

    delegateAdd, delegateAdd, delegateBasicList, delegateClear, delegateContains, delegateContainsAll, delegateEquals, delegateGet, delegateHashCode, delegateIndexOf, delegateIsEmpty, delegateIterator, delegateLastIndexOf, delegateList, delegateListIterator, delegateMove, delegateRemove, delegateSet, delegateSize, delegateToArray, delegateToArray, delegateToString, eStore, execute, getEStructuralFeature, makeLastInCollection, snapshot

    Methods inherited from class org.eclipse.emf.ecore.util.DelegatingEcoreEList.Generic

    canContainNull, didChange, hasInstanceClass, hasInverse, hasManyInverse, hasNavigableInverse, isContainer, isContainment, isEObject, isSet, isUnique, isUnsettable, kind, unset, useEquals

    Methods inherited from class org.eclipse.emf.ecore.util.DelegatingEcoreEList

    contains, containsAll, createNotification, createNotification, dispatchNotification, get, getEObject, getFeature, getFeatureID, getFeatureType, getInverseEReference, getInverseFeatureClass, getInverseFeatureID, getNotifier, inverseAdd, inverseRemove, isInstance, isNotificationRequired, resolve, resolve, resolveProxy, set, toArray, toArray

    Methods inherited from class org.eclipse.emf.ecore.util.DelegatingNotifyingInternalEListImpl

    basicContains, basicContainsAll, basicGet, basicIndexOf, basicIterator, basicLastIndexOf, basicList, basicListIterator, basicListIterator, basicToArray, basicToArray

    Methods inherited from class org.eclipse.emf.common.notify.impl.DelegatingNotifyingListImpl

    addAllUnique, addAllUnique, addAllUnique, clear, createNotification, createNotificationChain, doAddAllUnique, doAddAllUnique, doAddAllUnique, doAddAllUnique, doAddUnique, doAddUnique, doClear, doMove, doRemove, doRemoveAll, doSetUnique, getFeatureID, hasShadow, shadowAdd, shadowRemove, shadowSet

    Methods inherited from class org.eclipse.emf.common.util.DelegatingEList

    doClear, equals, get, hashCode, isEmpty, primitiveGet, remove, retainAll, size, toString

    Methods inherited from class org.eclipse.emf.common.util.AbstractEList

    didAdd, didClear, didMove, didSet, equalObjects, getDuplicates, getNonDuplicates, iterator, listIterator, listIterator, move

    Methods inherited from class java.util.AbstractList

    removeRange, subList

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface java.util.Collection

    parallelStream, removeIf, stream, toArray

    Methods inherited from interface org.eclipse.emf.common.util.EList

    move

    Methods inherited from interface org.eclipse.emf.ecore.util.InternalEList

    addAllUnique, basicContains, basicContainsAll, basicGet, basicIndexOf, basicIterator, basicLastIndexOf, basicList, basicListIterator, basicListIterator, basicToArray, basicToArray

    Methods inherited from interface java.lang.Iterable

    forEach
  • Field Details

    • supersetFeatureIDs

      protected final int[] supersetFeatureIDs
      An array of superset feature identifiers.
    • subsetFeatureIDs

      protected final int[] subsetFeatureIDs
      An array of subset feature identifiers.
    • dataClass

      protected Class<?> dataClass
  • Constructor Details

    • SubsetSupersetEObjectEStoreEList

      public SubsetSupersetEObjectEStoreEList(Class<?> dataClass, org.eclipse.emf.ecore.InternalEObject owner, int featureID, @CheckForNull int[] supersetFeatureIDs, @CheckForNull int[] subsetFeatureIDs)
      Creates and initializes a new SubsetSupersetEObjectEStoreEList instance.
      Parameters:
      dataClass - class of data type.
      owner - owner of the collection.
      featureID - feature id of that values is hold by this collection.
      supersetFeatureIDs - array of superset features.
      subsetFeatureIDs - array of subset features.
  • Method Details

    • enforceSubsetConstraints

      protected boolean enforceSubsetConstraints()
      Indicates whether subset constraints should be enforced.
      Returns:
      true if subset constraints should be enforced; false otherwise.
    • supersetAdd

      protected void supersetAdd(Object object)
      Adds the specified element to the superset(s).
      Parameters:
      object - The element to be added.
    • replaceOrAddToSuperset

      protected void replaceOrAddToSuperset(Object oldObject, Object object)
      Replaces the specified value or adds ir to the superset if new value is not already added.
      Parameters:
      oldObject - old value.
      object - new value.
    • enforceSupersetConstraints

      protected boolean enforceSupersetConstraints()
      Indicates whether superset constraints should be enforced.
      Returns:
      true if superset constraints should be enforced; false otherwise.
    • subsetRemove

      protected void subsetRemove(Object object)
      Removes the specified element from the subset(s).
      Parameters:
      object - The element to be removed.
    • basicAdd

      public org.eclipse.emf.common.notify.NotificationChain basicAdd(E object, org.eclipse.emf.common.notify.NotificationChain notifications)
      Specified by:
      basicAdd in interface org.eclipse.emf.ecore.util.InternalEList<E>
      Overrides:
      basicAdd in class org.eclipse.emf.common.notify.impl.DelegatingNotifyingListImpl<E>
    • basicSet

      public org.eclipse.emf.common.notify.NotificationChain basicSet(int index, E object, org.eclipse.emf.common.notify.NotificationChain notifications)
      Overrides:
      basicSet in class org.eclipse.emf.common.notify.impl.DelegatingNotifyingListImpl<E>
    • add

      public void add(int index, E object)
      Description copied from class: ModelEStoreEList
      Adds the object at the given index in the list. If uniqueness is required, duplicates will be ignored. This implementation delegates to addUnique(int, E) after uniqueness checking.
      Specified by:
      add in interface List<E>
      Overrides:
      add in class ModelEStoreEList<E>
      object - the object to be added.
      See Also:
    • add

      public boolean add(E object)
      Specified by:
      add in interface Collection<E>
      Specified by:
      add in interface List<E>
      Overrides:
      add in class org.eclipse.emf.common.util.AbstractEList<E>
    • addAll

      public boolean addAll(Collection<? extends E> collection)
      Specified by:
      addAll in interface Collection<E>
      Specified by:
      addAll in interface List<E>
      Overrides:
      addAll in class org.eclipse.emf.common.util.AbstractEList<E>
    • addAll

      public boolean addAll(int index, Collection<? extends E> collection)
      Specified by:
      addAll in interface List<E>
      Overrides:
      addAll in class org.eclipse.emf.common.util.AbstractEList<E>
    • set

      public E set(int index, E object)
      Specified by:
      set in interface List<E>
      Overrides:
      set in class org.eclipse.emf.common.util.AbstractEList<E>
    • didRemove

      protected void didRemove(int index, E oldObject)
      Overrides:
      didRemove in class org.eclipse.emf.common.util.AbstractEList<E>
    • resolve

      protected org.eclipse.emf.ecore.EObject resolve(int index, org.eclipse.emf.ecore.EObject eObject)