Class AbstractCacheView<T>

java.lang.Object
net.dv8tion.jda.internal.utils.cache.ReadWriteLockCache<T>
net.dv8tion.jda.internal.utils.cache.AbstractCacheView<T>
All Implemented Interfaces:
Iterable<T>, CacheView<T>
Direct Known Subclasses:
CacheView.SimpleCacheView, SnowflakeCacheViewImpl

public abstract class AbstractCacheView<T> extends ReadWriteLockCache<T> implements CacheView<T>
  • Method Details

    • clear

      public void clear()
    • getMap

      public gnu.trove.map.TLongObjectMap<T> getMap()
    • get

      public T get(long id)
    • remove

      public T remove(long id)
    • keySet

      public gnu.trove.set.TLongSet keySet()
    • forEach

      public void forEach(Consumer<? super T> action)
      Specified by:
      forEach in interface Iterable<T>
    • lockedIterator

      @Nonnull public LockIterator<T> lockedIterator()
      Description copied from interface: CacheView
      Returns an iterator with direct access to the underlying data store. This iterator does not support removing elements.
      After usage this iterator should be closed to allow modifications by the library internals.

      Note: Order is not preserved in this iterator to be more efficient, if order is desired use Iterable.iterator() instead!

      Specified by:
      lockedIterator in interface CacheView<T>
      Returns:
      ClosableIterator holding a read-lock on the data structure.
    • asList

      @Nonnull public List<T> asList()
      Description copied from interface: CacheView
      Creates an immutable snapshot of the current cache state.
      This will copy all elements contained in this cache into a list.
      This will be sorted for a SortedSnowflakeCacheView.
      Specified by:
      asList in interface CacheView<T>
      Returns:
      Immutable list of cached elements
    • asSet

      @Nonnull public Set<T> asSet()
      Description copied from interface: CacheView
      Creates an immutable snapshot of the current cache state.
      This will copy all elements contained in this cache into a set.
      Specified by:
      asSet in interface CacheView<T>
      Returns:
      Immutable set of cached elements
    • size

      public long size()
      Description copied from interface: CacheView
      The current size of this cache
      This is a long as it may be a projected view of multiple caches (See CacheView.all(java.util.function.Supplier))

      This is more efficient than creating a list or set snapshot first as it checks the size of the internal cache directly.

      Specified by:
      size in interface CacheView<T>
      Returns:
      The current size of this cache
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: CacheView
      Whether the cache is empty

      This is more efficient than creating a list or set snapshot first as it checks the size of the internal cache directly.
      On a projected cache view this will simply look through all projected views and return false the moment it finds one that is not empty.

      Specified by:
      isEmpty in interface CacheView<T>
      Returns:
      True, if this cache is currently empty
    • getElementsByName

      @Nonnull public List<T> getElementsByName(@Nonnull String name, boolean ignoreCase)
      Description copied from interface: CacheView
      Creates an immutable list of all elements matching the given name.
      For a MemberCacheView this will check the Effective Name of the cached members.
      Specified by:
      getElementsByName in interface CacheView<T>
      Parameters:
      name - The name to check
      ignoreCase - Whether to ignore case when comparing names
      Returns:
      Immutable list of elements with the given name
    • spliterator

      public Spliterator<T> spliterator()
      Specified by:
      spliterator in interface Iterable<T>
    • stream

      @Nonnull public Stream<T> stream()
      Description copied from interface: CacheView
      Creates a Stream of all cached elements.
      This will be sorted for a SortedSnowflakeCacheView.
      Specified by:
      stream in interface CacheView<T>
      Returns:
      Stream of elements
    • parallelStream

      @Nonnull public Stream<T> parallelStream()
      Description copied from interface: CacheView
      Creates a parallel Stream of all cached elements.
      This will be sorted for a SortedSnowflakeCacheView.
      Specified by:
      parallelStream in interface CacheView<T>
      Returns:
      Parallel Stream of elements
    • iterator

      @Nonnull public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • toString

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

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object