Class SubsetSupersetEObjectEList<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
org.eclipse.emf.common.util.AbstractEList<E>
org.eclipse.emf.common.util.BasicEList<E>
org.eclipse.emf.common.notify.impl.NotifyingListImpl<E>
org.eclipse.emf.ecore.util.NotifyingInternalEListImpl<E>
org.eclipse.emf.ecore.util.EcoreEList<E>
org.eclipse.emf.ecore.util.EObjectEList<E>
com.dassault_systemes.modeler.foundation.util.AbstractModelEObjectEList<E>
com.nomagic.magicdraw.uml2.util.ModelEObjectEList<E>
com.nomagic.magicdraw.uml2.util.SubsetSupersetEObjectEList<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, 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:
SubsetSupersetEObjectContainmentEList, SubsetSupersetEObjectResolvingEList, SubsetSupersetEObjectWithInverseEList

public class SubsetSupersetEObjectEList<E> extends ModelEObjectEList<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.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    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.EObjectEList

    featureID

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

    dataClass, owner

    Fields inherited from class org.eclipse.emf.common.util.BasicEList

    data, size

    Fields inherited from class java.util.AbstractList

    modCount
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    void
    add(int index, E object)
     
    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
    basicSupersetAdd(Object object, org.eclipse.emf.common.notify.NotificationChain notifications)
    Adds the specified element to the superset(s).
    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.uml2.util.ModelEObjectEList

    checkCompatibility, createOperationTimeoutException, getEventSupporter, getLockProvider

    Methods inherited from class com.dassault_systemes.modeler.foundation.util.AbstractModelEObjectEList

    addAllUnique, addUnique, addUnique, afterChange, assign, basicContains, basicContainsAll, basicGet, basicIndexOf, basicLastIndexOf, basicList, basicToArray, basicToArray, beforeChange, clear, contains, doMove, doRemove, execute, firePropertyChange, get, getPropertyEventName, hasInverse, hasManyInverse, hasNavigableInverse, indexOf, isEmpty, lastIndexOf, move, primitiveGet, remove, removeAll, setUnique, size, startLogEvents, stopLogEvents, validate

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

    canContainNull, getFeatureID, isEObject, isUnique, resolve, useEquals

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

    createNotification, createNotification, dispatchNotification, get, getEObject, getEStructuralFeature, getFeature, getFeatureType, getInverseEReference, getInverseFeatureClass, getInverseFeatureID, getNotifier, hasInstanceClass, hasProxies, inverseAdd, inverseRemove, isContainment, isInstance, isNotificationRequired, isSet, newData, resolve, resolveProxy, set, toArray, toArray, unset

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

    basicIterator, basicListIterator, basicListIterator

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

    addAllUnique, addAllUnique, addAllUnique, basicRemove, createNotification, createNotificationChain, doAddAllUnique, doAddAllUnique, doAddAllUnique, doAddAllUnique, doAddUnique, doAddUnique, doClear, doRemoveAll, doSetUnique, getFeatureID, hasShadow, shadowAdd, shadowRemove, shadowSet

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

    clone, data, grow, setData, shrink

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

    didAdd, didChange, didClear, didMove, didSet, equalObjects, equals, getDuplicates, getNonDuplicates, hashCode, iterator, listIterator, listIterator, move, remove, retainAll, toString

    Methods inherited from class java.util.AbstractList

    removeRange, subList

    Methods inherited from class java.util.AbstractCollection

    containsAll

    Methods inherited from class java.lang.Object

    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, basicIterator, basicListIterator, basicListIterator, basicRemove

    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.
  • Constructor Details

    • SubsetSupersetEObjectEList

      public SubsetSupersetEObjectEList(Class<?> dataClass, org.eclipse.emf.ecore.InternalEObject owner, int featureID, @CheckForNull int[] supersetFeatureIDs, @CheckForNull int[] subsetFeatureIDs)
      Creates and initializes a new ModelEObjectEList instance.
      Parameters:
      dataClass - data class.
      owner - owner of the setting.
      featureID - feature id.
      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.
    • basicSupersetAdd

      protected void basicSupersetAdd(Object object, org.eclipse.emf.common.notify.NotificationChain notifications)
      Adds the specified element to the superset(s). Similar to supersetAdd, but does basicAdd in order to avoid other end setting without "containts" check
      Parameters:
      object - The element to be added.
      See Also:
    • 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 com.dassault_systemes.modeler.foundation.util.AbstractModelEObjectEList<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.NotifyingListImpl<E>
    • add

      public void add(int index, E object)
      Specified by:
      add in interface List<E>
      Overrides:
      add in class org.eclipse.emf.common.util.AbstractEList<E>
    • 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>
    • 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.
    • 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)
      Overrides:
      resolve in class org.eclipse.emf.ecore.util.EcoreEList<E>