Class AbstractDataBufferWindow<B extends DataBuffer<?>>

    • Constructor Detail

      • AbstractDataBufferWindow

        protected AbstractDataBufferWindow​(B windowBuffer,
                                           long bufferLimit)
    • Method Detail

      • slideTo

        public final DataBufferWindow<B> slideTo​(long index)
        Description copied from interface: DataBufferWindow
        Moves the window at the given position in the original buffer.

        The size of the window remains the same and its offset is set to index, so that accessing the value of DataBufferWindow.buffer() at index x will return the value at index + x in the original buffer.

        Specified by:
        slideTo in interface DataBufferWindow<B extends DataBuffer<?>>
        Parameters:
        index - new offset for this window
        Returns:
        this instance
      • slide

        public final DataBufferWindow<B> slide​(long step)
        Description copied from interface: DataBufferWindow
        Moves the window of step elements in the original buffer.

        The size of the window remains the same and its offset is set to offset() + step. If step is positive, then the window will slide forward. If it is negative, it will slide backward.

        Specified by:
        slide in interface DataBufferWindow<B extends DataBuffer<?>>
        Parameters:
        step - value to add to the current offset of this window
        Returns:
        this instance
      • buffer

        public final B buffer()
        Description copied from interface: DataBufferWindow
        Returns the buffer backing this window.

        Each window instance has it's own buffer providing a view onto the original DataBuffer. The buffers are mutated when the window slides to different offsets. For example:

        
         IntDataBuffer buffer = DataBuffers.of(0, 1, 2, 3);
         DataBufferWindow<IntDataBuffer> window = buffer.window(0, 2);
        
         IntDataBuffer windowBuffer = window.buffer();
         assertEquals(0, windowBuffer.getInt(0));
         assertEquals(1, windowBuffer.getInt(1));
        
         window.slideTo(2);
         assertEquals(2, windowBuffer.getInt(0));
         assertEquals(3, windowBuffer.getInt(1));
         assertSame(windowBuffer, window.buffer());
         
        Specified by:
        buffer in interface DataBufferWindow<B extends DataBuffer<?>>
        Returns:
        this window's buffer
      • offset

        protected abstract void offset​(long offset)