Class AbstractPositionedByteRange

    • Field Detail

      • position

        protected int position
        The current index into the range. Like ByteBuffer position, it points to the next value that will be read/written in the array. It provides the appearance of being 0-indexed, even though its value is calculated according to offset.

        Position is considered transient and does not participate in Object.equals(Object) or AbstractByteRange.hashCode() comparisons.

      • limit

        protected int limit
    • Constructor Detail

      • AbstractPositionedByteRange

        public AbstractPositionedByteRange()
    • Method Detail

      • set

        public PositionedByteRange set​(byte[] bytes,
                                       int offset,
                                       int length)
        Description copied from interface: ByteRange
        Reuse this ByteRange over a new byte[]. A null bytes IS supported, in which case this method will behave equivalently to ByteRange.unset(), regardless of the values of offset and length.
        Specified by:
        set in interface ByteRange
        Specified by:
        set in interface PositionedByteRange
        Overrides:
        set in class AbstractByteRange
        Parameters:
        bytes - The array to wrap.
        offset - The offset into bytes considered the beginning of this range.
        length - The length of this range.
        Returns:
        this.
      • getPosition

        public int getPosition()
        Description copied from interface: PositionedByteRange
        The current position marker. This valuae is 0-indexed, relative to the beginning of the range.
        Specified by:
        getPosition in interface PositionedByteRange
      • get

        public PositionedByteRange get​(byte[] dst)
        Description copied from interface: PositionedByteRange
        Fill dst with bytes from the range, starting from position. This range's position is incremented by the length of dst, the number of bytes copied.
        Specified by:
        get in interface PositionedByteRange
        Parameters:
        dst - the destination of the copy.
        Returns:
        this.
      • get

        public PositionedByteRange get​(byte[] dst,
                                       int offset,
                                       int length)
        Description copied from interface: PositionedByteRange
        Fill dst with bytes from the range, starting from the current position. length bytes are copied into dst, starting at offset. This range's position is incremented by the number of bytes copied.
        Specified by:
        get in interface PositionedByteRange
        Parameters:
        dst - the destination of the copy.
        offset - the offset into dst to start the copy.
        length - the number of bytes to copy into dst.
        Returns:
        this.
      • put

        public abstract PositionedByteRange put​(byte[] val,
                                                int offset,
                                                int length)
        Description copied from interface: PositionedByteRange
        Store length bytes from val into this range. Bytes from val are copied starting at offset into the range, starting at the current position.
        Specified by:
        put in interface PositionedByteRange
        Parameters:
        val - the new value.
        offset - the offset in val from which to start copying.
        length - the number of bytes to copy from val.
        Returns:
        this.
      • putVLong

        public abstract int putVLong​(int index,
                                     long val)
        Description copied from interface: ByteRange
        Store the long value at index as a VLong
        Specified by:
        putVLong in interface ByteRange
        Specified by:
        putVLong in class AbstractByteRange
        Parameters:
        index - the index in the range where val is stored
        val - the value to store
        Returns:
        number of bytes written
      • putVLong

        public abstract int putVLong​(long val)
        Description copied from interface: PositionedByteRange
        Store the long val at the next position as a VLong
        Specified by:
        putVLong in interface PositionedByteRange
        Parameters:
        val - the value to store
        Returns:
        number of bytes written
      • get

        public PositionedByteRange get​(int index,
                                       byte[] dst)
        Description copied from interface: ByteRange
        Fill dst with bytes from the range, starting from index.
        Specified by:
        get in interface ByteRange
        Specified by:
        get in interface PositionedByteRange
        Overrides:
        get in class AbstractByteRange
        Parameters:
        index - zero-based index into this range.
        dst - the destination of the copy.
        Returns:
        this.
      • get

        public PositionedByteRange get​(int index,
                                       byte[] dst,
                                       int offset,
                                       int length)
        Description copied from interface: ByteRange
        Fill dst with bytes from the range, starting from index. length bytes are copied into dst, starting at offset.
        Specified by:
        get in interface ByteRange
        Specified by:
        get in interface PositionedByteRange
        Overrides:
        get in class AbstractByteRange
        Parameters:
        index - zero-based index into this range.
        dst - the destination of the copy.
        offset - the offset into dst to start the copy.
        length - the number of bytes to copy into dst.
        Returns:
        this.
      • getVLong

        public long getVLong()
        Description copied from interface: PositionedByteRange
        Retrieve the next long value, which is stored as VLong, from this range
        Specified by:
        getVLong in interface PositionedByteRange
        Returns:
        the long value which is stored as VLong
      • put

        public abstract PositionedByteRange put​(int index,
                                                byte[] val,
                                                int offset,
                                                int length)
        Description copied from interface: ByteRange
        Store length bytes from val into this range, starting at index. Bytes from val are copied starting at offset into the range.
        Specified by:
        put in interface ByteRange
        Specified by:
        put in interface PositionedByteRange
        Specified by:
        put in class AbstractByteRange
        Parameters:
        index - position in this range to start the copy.
        val - the value to store.
        offset - the offset in val from which to start copying.
        length - the number of bytes to copy from val.
        Returns:
        this.
      • shallowCopy

        public abstract PositionedByteRange shallowCopy()
        Description copied from interface: ByteRange
        Create a new ByteRange that points at this range's byte[]. Modifying the shallowCopy will modify the bytes in this range's array. Pass over the hash code if it is already cached.
        Specified by:
        shallowCopy in interface ByteRange
        Specified by:
        shallowCopy in interface PositionedByteRange
        Returns:
        new ByteRange object referencing this range's byte[].
      • shallowCopySubRange

        public abstract PositionedByteRange shallowCopySubRange​(int innerOffset,
                                                                int copyLength)
        Description copied from interface: ByteRange
        Create a new ByteRange that points at this range's byte[]. The new range can have different values for offset and length, but modifying the shallowCopy will modify the bytes in this range's array. Pass over the hash code if it is already cached.
        Specified by:
        shallowCopySubRange in interface ByteRange
        Specified by:
        shallowCopySubRange in interface PositionedByteRange
        Parameters:
        innerOffset - First byte of clone will be this.offset + copyOffset.
        copyLength - Number of bytes in the clone.
        Returns:
        new ByteRange object referencing this range's byte[].