Class LongChunk<ATTR extends Any>

java.lang.Object
io.deephaven.chunk.ChunkBase<ATTR>
io.deephaven.chunk.LongChunk<ATTR>
All Implemented Interfaces:
Chunk<ATTR>
Direct Known Subclasses:
LongChunkPage, ResettableLongChunk, WritableLongChunk

public class LongChunk<ATTR extends Any> extends ChunkBase<ATTR>
Chunk implementation for long data.
  • Constructor Details

    • LongChunk

      protected LongChunk(long[] data, int offset, int capacity)
  • Method Details

    • getEmptyChunk

      public static <ATTR extends Any> LongChunk<ATTR> getEmptyChunk()
    • makeArray

      public static long[] makeArray(int capacity)
    • chunkWrap

      public static <ATTR extends Any> LongChunk<ATTR> chunkWrap(long[] data)
    • chunkWrap

      public static <ATTR extends Any> LongChunk<ATTR> chunkWrap(long[] data, int offset, int capacity)
    • getChunkType

      public final ChunkType getChunkType()
      Returns:
      The underlying chunk type
    • get

      public final long get(int index)
    • slice

      public LongChunk<ATTR> slice(int offset, int capacity)
      Description copied from interface: Chunk
      Make a new Chunk that represents either exactly the same view on the underlying data as this Chunk, or a subrange of that view. The view is defined as [0..size) (in the coordinate space of this Chunk).
      Parameters:
      offset - Offset of the new Chunk, relative to this Chunk. 0 ≤ offset ≤ this.size
      capacity - Capacity and initial size of the new Chunk. 0 ≤ capacity ≤ this.size - offset.
      Returns:
      The new Chunk. A new Chunk will always be returned, even if the Chunks represent the same view.
    • copyToChunk

      public final void copyToChunk(int srcOffset, WritableChunk<? super ATTR> dest, int destOffset, int length)
      Description copied from interface: Chunk
      Copy a subrange of this Chunk to the subrange of the 'dest' writable chunk.
      Parameters:
      srcOffset - Starting position in 'this' (the source)
      dest - Destination writable chunk.
      destOffset - Starting offset in the destination.
      length - Number of values to copy
    • copyToArray

      public final void copyToArray(int srcOffset, Object dest, int destOffset, int length)
      Description copied from interface: Chunk
      Copy a subrange of this Chunk to the subrange of the 'dest' array.
      Parameters:
      srcOffset - Starting position in 'this' (the source)
      dest - Destination array.
      destOffset - Starting offset in the destination.
      length - Number of values to copy
    • copyToTypedArray

      public final void copyToTypedArray(int srcOffset, long[] destData, int destOffset, int length)
    • isAlias

      public final boolean isAlias(Object array)
      Returns:
      true iff this and array are aliases, that is they refer to the same underlying data
    • isAlias

      public final boolean isAlias(Chunk<?> chunk)
      Returns:
      true iff this and chunk are aliases, that is they refer to the same underlying data
    • walk

      public final <V extends Chunk.Visitor<ATTR>> V walk(V visitor)
    • copyToBuffer

      public final void copyToBuffer(int srcOffset, @NotNull @NotNull Buffer destBuffer, int destOffset, int length)
      Description copied from interface: Chunk

      Copy a sub-range of this chunk to a Buffer. This is an optional method, as some chunk types do not have a corresponding buffer type.

      Implementations are free to copy data as efficiently as they may, and will use absolute rather than positional access where possible. To facilitate this pattern, destOffset is an absolute offset from position 0, rather than a relative offset from destBuffer.position().

      It is required that destBuffer.limit() is at least destOffset + length.

      destBuffer's position may be modified, but will always be restored to its initial value upon successful return.

      Parameters:
      srcOffset - The offset into this chunk to start copying from
      destBuffer - The destination Buffer
      destOffset - The absolute offset into destBuffer to start copying to
      length - The number of elements to copy
    • copyToTypedBuffer

      public final void copyToTypedBuffer(int srcOffset, @NotNull @NotNull LongBuffer destBuffer, int destOffset, int length)

      Copy a sub-range of this LongChunk to a LongBuffer.

      See copyToBuffer(int, Buffer, int, int) for general documentation.

      Parameters:
      srcOffset - The offset into this chunk to start copying from
      destBuffer - The destination LongBuffer
      destOffset - The absolute offset into destBuffer to start copying to
      length - The number of elements to copy
    • downcast

      public static <ATTR extends Any, ATTR_DERIV extends ATTR> LongChunk<ATTR_DERIV> downcast(LongChunk<ATTR> self)
    • binarySearch

      public final int binarySearch(long key)
      Search for key in this chunk in the index range [0, size) using Java's primitive ordering. This chunk must be sorted as by WritableLongChunk.sort() prior to this call.

      This method does not compare null or NaN values according to Deephaven ordering rules.

      Parameters:
      key - The key to search for
      Returns:
      The index of the key in this chunk, or else (-(insertion point) - 1) as defined by Arrays.binarySearch(long[], long)
    • binarySearch

      public final int binarySearch(int fromIndexInclusive, int toIndexExclusive, long key)
      Search for key in this chunk in the index range [fromIndexInclusive, toIndexExclusive) using Java's primitive ordering. This chunk must be sorted over the search index range as by WritableLongChunk.sort(int, int) prior to this call.

      This method does not compare null or NaN values according to Deephaven ordering rules.

      Parameters:
      fromIndexInclusive - The first index to be searched
      toIndexExclusive - The index after the last index to be searched
      key - The key to search for
      Returns:
      The index of the key in this chunk, or else (-(insertion point) - 1) as defined by Arrays.binarySearch(long[], int, int, long)