org.eclipse.viatra.query.runtime.matchers.util

## Interface IDeltaBag<T>

- All Superinterfaces:
    Clearable, IMemory<T>, IMemoryView<T>, java.lang.Iterable<T>
  All Known Implementing Classes:
    EclipseCollectionsDeltaBag

      public interface IDeltaBag<T>
      extends IMemory<T>

  An `IMemory` that represents the difference between two states of a set or `IMultiset`, and therefore may contain values with a negative multiplicity.
  Since:
    1.7

- - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default boolean` | `removeOneOrNop(T value)` Removes one occurrence of the given value from the memory, if possible.

    - ### Methods inherited from interface org.eclipse.viatra.query.runtime.matchers.util.IMemory

      `addOne, addSigned, clear, clearAllOf, removeOne`

    - ### Methods inherited from interface org.eclipse.viatra.query.runtime.matchers.util.IMemoryView

      `asMap, asStream, containsNonZero, containsNonZeroUnsafe, distinctValues, entriesWithMultiplicities, equals, forEachEntryWithMultiplicities, fromMap, getCount, getCountUnsafe, hashCode, isEmpty, size, theContainedVersionOf, theContainedVersionOfUnsafe`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, iterator, spliterator`

- - ### Method Detail

    - #### removeOneOrNop

          default boolean removeOneOrNop(T value)

      Description copied from interface: `IMemory`
      Removes one occurrence of the given value from the memory, if possible.

      Memory is unchanged and false is returned if `IMultiset` or `ISetMemory` and value had no occurrences in the memory

      Specified by:
        `removeOneOrNop` in interface `IMemory<T>`
      Returns:
        true if this was the the last occurrence of the value, or (in case of `IDeltaBag`) is the first negative occurrence of the value