Class ConcurrentOpenLongPairRangeSet<T extends Comparable<T>>

java.lang.Object
org.apache.pulsar.common.util.collections.ConcurrentOpenLongPairRangeSet<T>
All Implemented Interfaces:
LongPairRangeSet<T>

public class ConcurrentOpenLongPairRangeSet<T extends Comparable<T>> extends Object implements LongPairRangeSet<T>
A Concurrent set comprising zero or more ranges of type LongPairRangeSet.LongPair. This can be alternative of RangeSet and can be used if range type is LongPairRangeSet.LongPair
 Usage:
 a. This can be used if one doesn't want to create object for every new inserted range
 b. It creates BitSet for every unique first-key of the range.
 So, this rangeSet is not suitable for large number of unique keys.
 
  • Field Details

  • Constructor Details

  • Method Details

    • addOpenClosed

      public void addOpenClosed(long lowerKey, long lowerValueOpen, long upperKey, long upperValue)
      Adds the specified range to this RangeSet (optional operation). That is, for equal range sets a and b, the result of a.add(range) is that a will be the minimal range set for which both a.enclosesAll(b) and a.encloses(range).

      Note that range will merge given range with any ranges in the range set that are connected with it. Moreover, if range is empty, this is a no-op.

      Specified by:
      addOpenClosed in interface LongPairRangeSet<T extends Comparable<T>>
    • contains

      public boolean contains(long key, long value)
      Description copied from interface: LongPairRangeSet
      Determines whether any of this range set's member ranges contains value.
      Specified by:
      contains in interface LongPairRangeSet<T extends Comparable<T>>
    • rangeContaining

      public com.google.common.collect.Range<T> rangeContaining(long key, long value)
      Description copied from interface: LongPairRangeSet
      Returns the unique range from this range set that contains value, or null if this range set does not contain value.
      Specified by:
      rangeContaining in interface LongPairRangeSet<T extends Comparable<T>>
    • removeAtMost

      public void removeAtMost(long key, long value)
      Description copied from interface: LongPairRangeSet
      Remove range that contains all values less than or equal to given key-value.
      Specified by:
      removeAtMost in interface LongPairRangeSet<T extends Comparable<T>>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface LongPairRangeSet<T extends Comparable<T>>
    • clear

      public void clear()
      Specified by:
      clear in interface LongPairRangeSet<T extends Comparable<T>>
    • span

      public com.google.common.collect.Range<T> span()
      Description copied from interface: LongPairRangeSet
      Returns the minimal range which encloses all ranges in this range set.
      Specified by:
      span in interface LongPairRangeSet<T extends Comparable<T>>
      Returns:
    • asRanges

      public List<com.google.common.collect.Range<T>> asRanges()
      Description copied from interface: LongPairRangeSet
      Returns a view of the disconnected ranges that make up this range set.
      Specified by:
      asRanges in interface LongPairRangeSet<T extends Comparable<T>>
      Returns:
    • forEach

      public void forEach(LongPairRangeSet.RangeProcessor<T> action)
      Description copied from interface: LongPairRangeSet
      Performs the given action for each entry in this map until all entries have been processed or action returns "false". Unless otherwise specified by the implementing class, actions are performed in the order of entry set iteration (if an iteration order is specified.)
      Specified by:
      forEach in interface LongPairRangeSet<T extends Comparable<T>>
    • forEach

      public void forEach(LongPairRangeSet.RangeProcessor<T> action, LongPairRangeSet.LongPairConsumer<? extends T> consumerParam)
      Description copied from interface: LongPairRangeSet
      Performs the given action for each entry in this map until all entries have been processed or action returns "false". Unless otherwise specified by the implementing class, actions are performed in the order of entry set iteration (if an iteration order is specified.)
      Specified by:
      forEach in interface LongPairRangeSet<T extends Comparable<T>>
    • forEachRawRange

      public void forEachRawRange(LongPairRangeSet.RawRangeProcessor processor)
      Description copied from interface: LongPairRangeSet
      Performs the given action for each entry in this map until all entries have been processed or action returns "false". Unless otherwise specified by the implementing class, actions are performed in the order of entry set iteration (if an iteration order is specified.) This method is optimized on reducing intermediate object creation. to do iteration jobs.
      Specified by:
      forEachRawRange in interface LongPairRangeSet<T extends Comparable<T>>
    • firstRange

      public com.google.common.collect.Range<T> firstRange()
      Description copied from interface: LongPairRangeSet
      It returns very first smallest range in the rangeSet.
      Specified by:
      firstRange in interface LongPairRangeSet<T extends Comparable<T>>
      Returns:
      first smallest range into the set
    • lastRange

      public com.google.common.collect.Range<T> lastRange()
      Description copied from interface: LongPairRangeSet
      It returns very last biggest range in the rangeSet.
      Specified by:
      lastRange in interface LongPairRangeSet<T extends Comparable<T>>
      Returns:
      last biggest range into the set
    • cardinality

      public int cardinality(long lowerKey, long lowerValue, long upperKey, long upperValue)
      Description copied from interface: LongPairRangeSet
      Return the number bit sets to true from lower (inclusive) to upper (inclusive).
      Specified by:
      cardinality in interface LongPairRangeSet<T extends Comparable<T>>
    • size

      public int size()
      Description copied from interface: LongPairRangeSet
      Returns total number of ranges into the set.
      Specified by:
      size in interface LongPairRangeSet<T extends Comparable<T>>
      Returns:
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • add

      public void add(com.google.common.collect.Range<LongPairRangeSet.LongPair> range)
      Adds the specified range to this RangeSet (optional operation). That is, for equal range sets a and b, the result of a.add(range) is that a will be the minimal range set for which both a.enclosesAll(b) and a.encloses(range).

      Note that range will merge given range with any ranges in the range set that are connected with it. Moreover, if range is empty/invalid, this is a no-op.

    • contains

      public boolean contains(LongPairRangeSet.LongPair position)
    • remove

      public void remove(com.google.common.collect.Range<LongPairRangeSet.LongPair> range)