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

## Class EclipseCollectionsLongMultiset

- java.lang.Object
- - org.eclipse.collections.impl.primitive.AbstractIntIterable
  - - org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableIntValuesMap
    - - org.eclipse.collections.impl.map.mutable.primitive.LongIntHashMap
      - - org.eclipse.viatra.query.runtime.matchers.util.EclipseCollectionsLongMultiset

- All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.Iterable<java.lang.Long>, org.eclipse.collections.api.IntIterable, org.eclipse.collections.api.map.primitive.IntValuesMap, org.eclipse.collections.api.map.primitive.LongIntMap, org.eclipse.collections.api.map.primitive.MutableIntValuesMap, org.eclipse.collections.api.map.primitive.MutableLongIntMap, org.eclipse.collections.api.PrimitiveIterable, org.eclipse.collections.impl.map.mutable.primitive.MutableLongKeysMap, org.eclipse.collections.impl.map.primitive.LongKeysMap, Clearable, IMemory<java.lang.Long>, IMemoryView<java.lang.Long>, IMultiset<java.lang.Long>

      public class EclipseCollectionsLongMultiset
      extends org.eclipse.collections.impl.map.mutable.primitive.LongIntHashMap
      implements IMultiset<java.lang.Long>

  Since:
    2.0

    TODO refactor common methods with `EclipseCollectionsMultiset`

    TODO refactor into LongBagMemory etc.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableIntValuesMap

      `org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableIntValuesMap.AbstractIntValuesCollection, org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableIntValuesMap.SentinelValues`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EclipseCollectionsLongMultiset()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addOne(java.lang.Long value)` Adds one value occurrence to the memory.
    `boolean` | `addPositive(java.lang.Long value, int count)` Adds the given number of occurrences to the memory.
    `boolean` | `addSigned(java.lang.Long value, int count)` Adds the given number of occurrences to the memory.
    `void` | `clearAllOf(java.lang.Long value)` Removes all occurrences of the given value from the memory.
    `boolean` | `containsNonZero(java.lang.Long value)`
    `boolean` | `containsNonZeroUnsafe(java.lang.Object value)`
    `java.util.Set<java.lang.Long>` | `distinctValues()` The set of distinct values
    `boolean` | `equals(java.lang.Object obj)`
    `void` | `forEachEntryWithMultiplicities(java.util.function.BiConsumer<java.lang.Long,java.lang.Integer> entryConsumer)` Process contained values with their multiplicities
    `int` | `getCount(java.lang.Long value)` Returns the number of occurrences of the given value.
    `int` | `getCountUnsafe(java.lang.Object value)` Returns the number of occurrences of the given value (which may be of any type).
    `int` | `hashCode()`
    `java.util.Iterator<java.lang.Long>` | `iterator()`
    `boolean` | `removeOne(java.lang.Long value)` Removes one occurrence of the given value from the memory.
    `protected boolean` | `removeOneInternal(java.lang.Long value, boolean throwIfImpossible)`
    `boolean` | `removeOneOrNop(java.lang.Long value)` Removes one occurrence of the given value from the memory, if possible.

    - ### Methods inherited from class org.eclipse.collections.impl.map.mutable.primitive.LongIntHashMap

      `addToValue, allocateTable, asSynchronized, asUnmodifiable, clear, compact, containsKey, flipUniqueValues, forEachKey, forEachKeyValue, get, getEmptyValue, getIfAbsent, getIfAbsentPut, getIfAbsentPut, getIfAbsentPutWith, getIfAbsentPutWithKey, getOccupiedWithData, getOrThrow, getSentinelValues, getTableSize, getValueAtIndex, injectInto, intIterator, isNonSentinelAtIndex, keySet, keysView, keyValuesView, newWithKeysValues, newWithKeysValues, newWithKeysValues, newWithKeysValues, put, putAll, readExternal, reject, remove, removeKey, removeKeyIfAbsent, select, setSentinelValuesNull, toImmutable, toString, updateValue, updateValues, values, withKeysValues, withKeysValues, withKeysValues, withKeyValue, withoutAllKeys, withoutKey, writeExternal`

    - ### Methods inherited from class org.eclipse.collections.impl.map.mutable.primitive.AbstractMutableIntValuesMap

      `addEmptyKeyValue, addRemovedKeyValue, allSatisfy, anySatisfy, appendString, chunk, collect, contains, containsAll, containsValue, count, detectIfNone, each, forEach, forEachValue, isEmpty, max, min, noneSatisfy, notEmpty, reject, removeEmptyKey, removeRemovedKey, select, size, sum, toArray`

    - ### Methods inherited from class org.eclipse.collections.impl.primitive.AbstractIntIterable

      `asLazy, average, containsAll, maxIfEmpty, median, minIfEmpty, toBag, toList, toSet, toSortedArray, toSortedList`

    - ### Methods inherited from class java.lang.Object

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

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

      `clear`

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

      `asMap, asStream, entriesWithMultiplicities, equals, fromMap, hashCode, isEmpty, size, theContainedVersionOf, theContainedVersionOfUnsafe`

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

      `forEach, spliterator`

    - ### Methods inherited from interface org.eclipse.collections.api.map.primitive.MutableLongIntMap

      `putPair, withAllKeyValues`

    - ### Methods inherited from interface org.eclipse.collections.api.map.primitive.MutableIntValuesMap

      `collect, reject, select`

    - ### Methods inherited from interface org.eclipse.collections.api.map.primitive.IntValuesMap

      `containsValue, forEachValue, tap`

    - ### Methods inherited from interface org.eclipse.collections.api.IntIterable

      `allSatisfy, anySatisfy, asLazy, average, averageIfEmpty, chunk, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectInt, collectLong, collectShort, contains, containsAll, containsAll, count, detectIfNone, each, flatCollect, forEach, max, maxIfEmpty, median, medianIfEmpty, min, minIfEmpty, noneSatisfy, reduce, reduceIfEmpty, reject, select, sum, summaryStatistics, toArray, toBag, toList, toSet, toSortedArray, toSortedList`

    - ### Methods inherited from interface org.eclipse.collections.api.PrimitiveIterable

      `appendString, appendString, appendString, isEmpty, makeString, makeString, makeString, notEmpty, size`

    - ### Methods inherited from interface org.eclipse.collections.impl.map.primitive.LongKeysMap

      `isEmpty, notEmpty, size`

- - ### Constructor Detail

    - #### EclipseCollectionsLongMultiset

          public EclipseCollectionsLongMultiset()

  - ### Method Detail

    - #### addOne

          public boolean addOne(java.lang.Long value)

      Description copied from interface: `IMemory`
      Adds one value occurrence to the memory.
      Specified by:
        `addOne` in interface `IMemory<java.lang.Long>`
      Returns:
        true if the tuple was not present before in the memory, or (in case of `IDeltaBag`) is no longer present in the memory

    - #### addSigned

          public boolean addSigned(java.lang.Long value,
                                   int count)

      Description copied from interface: `IMemory`
      Adds the given number of occurrences to the memory. The count value may or may not be negative.

      Precondition if `IMultiset`: at least the given amount of occurrences exist, if count is negative.

      Precondition if `ISetMemory`: count is +1 or -1, the latter is only allowed if the set contains the value.

      Specified by:
        `addSigned` in interface `IMemory<java.lang.Long>`
        `count` - the number of occurrences
      Returns:
        true if the tuple was not present before in the memory, or is no longer present in the memory

    - #### removeOne

          public boolean removeOne(java.lang.Long value)

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

      Precondition if `IMultiset` or `ISetMemory`: the value must have a positive amount of occurrences in the memory.

      Specified by:
        `removeOne` in interface `IMemory<java.lang.Long>`
      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

    - #### removeOneOrNop

          public boolean removeOneOrNop(java.lang.Long 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<java.lang.Long>`
      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
      Since:
        2.3

    - #### removeOneInternal

          protected boolean removeOneInternal(java.lang.Long value,
                                              boolean throwIfImpossible)

      Since:
        2.3

    - #### clearAllOf

          public void clearAllOf(java.lang.Long value)

      Description copied from interface: `IMemory`
      Removes all occurrences of the given value from the memory.
      Specified by:
        `clearAllOf` in interface `IMemory<java.lang.Long>`

    - #### getCount

          public int getCount(java.lang.Long value)

      Description copied from interface: `IMemoryView`
      Returns the number of occurrences of the given value.
      Specified by:
        `getCount` in interface `IMemoryView<java.lang.Long>`
      Returns:
        the number of occurrences

    - #### getCountUnsafe

          public int getCountUnsafe(java.lang.Object value)

      Description copied from interface: `IMemoryView`
      Returns the number of occurrences of the given value (which may be of any type).
      Specified by:
        `getCountUnsafe` in interface `IMemoryView<java.lang.Long>`
      Returns:
        the number of occurrences

    - #### containsNonZero

          public boolean containsNonZero(java.lang.Long value)

      Specified by:
        `containsNonZero` in interface `IMemoryView<java.lang.Long>`
      Returns:
        true if the given value is contained with a nonzero multiplicity

    - #### containsNonZeroUnsafe

          public boolean containsNonZeroUnsafe(java.lang.Object value)

      Specified by:
        `containsNonZeroUnsafe` in interface `IMemoryView<java.lang.Long>`
      Returns:
        true if the given value (which may be of any type) is contained with a nonzero multiplicity

    - #### iterator

          public java.util.Iterator<java.lang.Long> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<java.lang.Long>`

    - #### addPositive

          public boolean addPositive(java.lang.Long value,
                                     int count)

      Description copied from interface: `IMultiset`
      Adds the given number of occurrences to the memory. The count value must be a positive number.
      Specified by:
        `addPositive` in interface `IMultiset<java.lang.Long>`
        `count` - the number of occurrences
      Returns:
        true if the tuple was not present before in the memory

    - #### distinctValues

          public java.util.Set<java.lang.Long> distinctValues()

      Description copied from interface: `IMemoryView`
      The set of distinct values
      Specified by:
        `distinctValues` in interface `IMemoryView<java.lang.Long>`

    - #### forEachEntryWithMultiplicities

          public void forEachEntryWithMultiplicities(java.util.function.BiConsumer<java.lang.Long,java.lang.Integer> entryConsumer)

      Description copied from interface: `IMemoryView`
      Process contained values with their multiplicities
      Specified by:
        `forEachEntryWithMultiplicities` in interface `IMemoryView<java.lang.Long>`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in interface `org.eclipse.collections.api.map.primitive.LongIntMap`
      Overrides:
        `hashCode` in class `org.eclipse.collections.impl.map.mutable.primitive.LongIntHashMap`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Specified by:
        `equals` in interface `org.eclipse.collections.api.map.primitive.LongIntMap`
      Overrides:
        `equals` in class `org.eclipse.collections.impl.map.mutable.primitive.LongIntHashMap`