Class UnifiedCacheViewImpl<T,E extends CacheView<T>>

java.lang.Object
net.dv8tion.jda.internal.utils.cache.UnifiedCacheViewImpl<T,E>
All Implemented Interfaces:
Iterable<T>, CacheView<T>
Direct Known Subclasses:
UnifiedCacheViewImpl.UnifiedMemberCacheViewImpl, UnifiedCacheViewImpl.UnifiedSnowflakeCacheView

public class UnifiedCacheViewImpl<T,E extends CacheView<T>> extends Object implements CacheView<T>
  • Constructor Details

    • UnifiedCacheViewImpl

      public UnifiedCacheViewImpl(Supplier<? extends Stream<? extends E>> generator)
  • Method Details

    • 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
    • forEach

      public void forEach(Consumer<? super T> action)
      Specified by:
      forEach in interface Iterable<T>
    • 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
    • lockedIterator

      @Nonnull public ChainedClosableIterator<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.
    • 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
    • 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>