blob: 2db18316187c13aba1849002cc285a91a033405d [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ByteRange (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.util, interface: ByteRange">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ByteRange.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.util</a></div>
<h1 title="Interface ByteRange" class="title">Interface ByteRange</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Superinterfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&gt;</code></dd>
</dl>
<dl class="notes">
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util">PositionedByteRange</a></code></dd>
</dl>
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractByteRange</a></code>, <code><a href="AbstractPositionedByteRange.html" title="class in org.apache.hadoop.hbase.util">AbstractPositionedByteRange</a></code>, <code><a href="SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleByteRange</a></code>, <code><a href="SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleMutableByteRange</a></code>, <code><a href="SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedByteRange</a></code>, <code><a href="SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedMutableByteRange</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations">@Public
</span><span class="modifiers">public interface </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-56">ByteRange</a></span><span class="extends-implements">
extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a>&gt;</span></div>
<div class="block">Lightweight, reusable class for specifying ranges of byte[]'s.
<p>
<code>ByteRange</code> maintains an underlying byte[] and a viewport into that byte[] as a range of
bytes. The <code>ByteRange</code> is a mutable, reusable object, so the underlying byte[] can be
modified after instantiation. This is done using the <a href="#set(byte%5B%5D)"><code>set(byte[])</code></a> and <a href="#unset()"><code>unset()</code></a>
methods. Direct access to the byte[] is also available via <a href="#getBytes()"><code>getBytes()</code></a>. The viewport is
defined by an <code>offset</code> into the byte[] and a <code>length</code>. The range of bytes is
0-indexed, and is accessed by index via the <a href="#get(int)"><code>get(int)</code></a> and <a href="#put(int,byte)"><code>put(int, byte)</code></a>
methods.
</p>
<p>
This interface differs from ByteBuffer:
</p>
<ul>
<li>On-heap bytes only</li>
<li>Raw <code>byte</code> access only; does not encode other primitives.</li>
<li>Implements <code>equals(Object)</code>, <code>#hashCode()</code>, and <code>#compareTo(ByteRange)</code> so
that it can be used in standard java Collections. Comparison operations are lexicographic, which
is native to HBase.</li>
<li>Allows the addition of simple core methods like the deep and shallow copy methods.</li>
<li>Can be reused in tight loops like a major compaction which can save significant amounts of
garbage. (Without reuse, we throw off garbage like
<a href="http://www.youtube.com/watch?v=lkmBH-MjZF4">this thing</a>.)</li>
</ul>
<p>
Mutable, and always evaluates <code>#equals(Object)</code>, <code>#hashCode()</code>, and
<code>#compareTo(ByteRange)</code> based on the current contents.
</p>
<p>
Can contain convenience methods for comparing, printing, cloning, spawning new arrays, copying to
other arrays, etc. Please place non-core methods into <a href="ByteRangeUtils.html" title="class in org.apache.hadoop.hbase.util"><code>ByteRangeUtils</code></a>.
</p></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deepCopy()" class="member-name-link">deepCopy</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a new <code>ByteRange</code> with new backing byte[] containing a copy of the content from
<code>this</code> range's window.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deepCopySubRangeTo(int,int,byte%5B%5D,int)" class="member-name-link">deepCopySubRangeTo</a><wbr>(int&nbsp;innerOffset,
int&nbsp;copyLength,
byte[]&nbsp;destination,
int&nbsp;destinationOffset)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Wrapper for System.arraycopy.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deepCopyTo(byte%5B%5D,int)" class="member-name-link">deepCopyTo</a><wbr>(byte[]&nbsp;destination,
int&nbsp;destinationOffset)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Wrapper for System.arraycopy.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#deepCopyToNewArray()" class="member-name-link">deepCopyToNewArray</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Instantiate a new byte[] with exact length, which is at least 24 bytes + length.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>byte</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get(int)" class="member-name-link">get</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieve the byte at <code>index</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get(int,byte%5B%5D)" class="member-name-link">get</a><wbr>(int&nbsp;index,
byte[]&nbsp;dst)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#get(int,byte%5B%5D,int,int)" class="member-name-link">get</a><wbr>(int&nbsp;index,
byte[]&nbsp;dst,
int&nbsp;offset,
int&nbsp;length)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>byte[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getBytes()" class="member-name-link">getBytes</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The underlying byte[].</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getInt(int)" class="member-name-link">getInt</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieve the int value at <code>index</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getLength()" class="member-name-link">getLength</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The length of the range.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>long</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getLong(int)" class="member-name-link">getLong</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieve the long value at <code>index</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getOffset()" class="member-name-link">getOffset</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The offset, the index into the underlying byte[] at which this range begins.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>short</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getShort(int)" class="member-name-link">getShort</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieve the short value at <code>index</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getVLong(int)" class="member-name-link">getVLong</a><wbr>(int&nbsp;index)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieve the long value at <code>index</code> which is stored as VLong</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isEmpty()" class="member-name-link">isEmpty</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns true when this range is of zero length, false otherwise.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#put(int,byte)" class="member-name-link">put</a><wbr>(int&nbsp;index,
byte&nbsp;val)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store <code>val</code> at <code>index</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#put(int,byte%5B%5D)" class="member-name-link">put</a><wbr>(int&nbsp;index,
byte[]&nbsp;val)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store <code>val</code> at <code>index</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#put(int,byte%5B%5D,int,int)" class="member-name-link">put</a><wbr>(int&nbsp;index,
byte[]&nbsp;val,
int&nbsp;offset,
int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store <code>length</code> bytes from <code>val</code> into this range, starting at <code>index</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#putInt(int,int)" class="member-name-link">putInt</a><wbr>(int&nbsp;index,
int&nbsp;val)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store the int value at <code>index</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#putLong(int,long)" class="member-name-link">putLong</a><wbr>(int&nbsp;index,
long&nbsp;val)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store the long value at <code>index</code></div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#putShort(int,short)" class="member-name-link">putShort</a><wbr>(int&nbsp;index,
short&nbsp;val)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store the short value at <code>index</code></div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#putVLong(int,long)" class="member-name-link">putVLong</a><wbr>(int&nbsp;index,
long&nbsp;val)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Store the long value at <code>index</code> as a VLong</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#set(byte%5B%5D)" class="member-name-link">set</a><wbr>(byte[]&nbsp;bytes)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#set(byte%5B%5D,int,int)" class="member-name-link">set</a><wbr>(byte[]&nbsp;bytes,
int&nbsp;offset,
int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#set(int)" class="member-name-link">set</a><wbr>(int&nbsp;capacity)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Reuse this <code>ByteRange</code> over a new byte[].</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setLength(int)" class="member-name-link">setLength</a><wbr>(int&nbsp;length)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Update the length of this range.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setOffset(int)" class="member-name-link">setOffset</a><wbr>(int&nbsp;offset)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Update the beginning of this range.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#shallowCopy()" class="member-name-link">shallowCopy</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a new <code>ByteRange</code> that points at this range's byte[].</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#shallowCopySubRange(int,int)" class="member-name-link">shallowCopySubRange</a><wbr>(int&nbsp;innerOffset,
int&nbsp;copyLength)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a new <code>ByteRange</code> that points at this range's byte[].</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#unset()" class="member-name-link">unset</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Nullifies this ByteRange.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Comparable">Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html#compareTo(T)" title="class or interface in java.lang" class="external-link">compareTo</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getBytes()">
<h3>getBytes</h3>
<div class="member-signature"><span class="return-type">byte[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-62">getBytes</a></span>()</div>
<div class="block">The underlying byte[].</div>
</section>
</li>
<li>
<section class="detail" id="unset()">
<h3>unset</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-67">unset</a></span>()</div>
<div class="block">Nullifies this ByteRange. That is, it becomes a husk, being a range over no byte[] whatsoever.</div>
</section>
</li>
<li>
<section class="detail" id="set(int)">
<h3>set</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-74">set</a></span><wbr><span class="parameters">(int&nbsp;capacity)</span></div>
<div class="block">Reuse this <code>ByteRange</code> over a new byte[]. <code>offset</code> is set to 0 and <code>length</code>
is set to <code>capacity</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>capacity</code> - the size of a new byte[].</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="set(byte[])">
<h3>set</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-82">set</a></span><wbr><span class="parameters">(byte[]&nbsp;bytes)</span></div>
<div class="block">Reuse this <code>ByteRange</code> over a new byte[]. <code>offset</code> is set to 0 and <code>length</code>
is set to <code>bytes.length</code>. A null <code>bytes</code> IS supported, in which case this method
will behave equivalently to <a href="#unset()"><code>unset()</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>bytes</code> - the array to wrap.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="set(byte[],int,int)">
<h3>set</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-93">set</a></span><wbr><span class="parameters">(byte[]&nbsp;bytes,
int&nbsp;offset,
int&nbsp;length)</span></div>
<div class="block">Reuse this <code>ByteRange</code> over a new byte[]. A null <code>bytes</code> IS supported, in which
case this method will behave equivalently to <a href="#unset()"><code>unset()</code></a>, regardless of the values of
<code>offset</code> and <code>length</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>bytes</code> - The array to wrap.</dd>
<dd><code>offset</code> - The offset into <code>bytes</code> considered the beginning of this range.</dd>
<dd><code>length</code> - The length of this range.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getOffset()">
<h3>getOffset</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-99">getOffset</a></span>()</div>
<div class="block">The offset, the index into the underlying byte[] at which this range begins.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#getBytes()"><code>getBytes()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setOffset(int)">
<h3>setOffset</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-107">setOffset</a></span><wbr><span class="parameters">(int&nbsp;offset)</span></div>
<div class="block">Update the beginning of this range. <code>offset + length</code> may not be greater than
<code>bytes.length</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>offset</code> - the new start of this range.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLength()">
<h3>getLength</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-112">getLength</a></span>()</div>
<div class="block">The length of the range.</div>
</section>
</li>
<li>
<section class="detail" id="setLength(int)">
<h3>setLength</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-120">setLength</a></span><wbr><span class="parameters">(int&nbsp;length)</span></div>
<div class="block">Update the length of this range. <code>offset + length</code> should not be greater than
<code>bytes.length</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>length</code> - The new length of this range.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isEmpty()">
<h3>isEmpty</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-123">isEmpty</a></span>()</div>
<div class="block">Returns true when this range is of zero length, false otherwise.</div>
</section>
</li>
<li>
<section class="detail" id="get(int)">
<h3>get</h3>
<div class="member-signature"><span class="return-type">byte</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-130">get</a></span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Retrieve the byte at <code>index</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range.</dd>
<dt>Returns:</dt>
<dd>single byte at index.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getShort(int)">
<h3>getShort</h3>
<div class="member-signature"><span class="return-type">short</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-137">getShort</a></span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Retrieve the short value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range</dd>
<dt>Returns:</dt>
<dd>the short value at <code>index</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getInt(int)">
<h3>getInt</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-144">getInt</a></span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Retrieve the int value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range</dd>
<dt>Returns:</dt>
<dd>the int value at <code>index</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getLong(int)">
<h3>getLong</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-151">getLong</a></span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Retrieve the long value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range</dd>
<dt>Returns:</dt>
<dd>the long value at <code>index</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getVLong(int)">
<h3>getVLong</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-158">getVLong</a></span><wbr><span class="parameters">(int&nbsp;index)</span></div>
<div class="block">Retrieve the long value at <code>index</code> which is stored as VLong</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range</dd>
<dt>Returns:</dt>
<dd>the long value at <code>index</code> which is stored as VLong</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get(int,byte[])">
<h3>get</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-166">get</a></span><wbr><span class="parameters">(int&nbsp;index,
byte[]&nbsp;dst)</span></div>
<div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range.</dd>
<dd><code>dst</code> - the destination of the copy.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get(int,byte[],int,int)">
<h3>get</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-177">get</a></span><wbr><span class="parameters">(int&nbsp;index,
byte[]&nbsp;dst,
int&nbsp;offset,
int&nbsp;length)</span></div>
<div class="block">Fill <code>dst</code> with bytes from the range, starting from <code>index</code>. <code>length</code> bytes
are copied into <code>dst</code>, starting at <code>offset</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - zero-based index into this range.</dd>
<dd><code>dst</code> - the destination of the copy.</dd>
<dd><code>offset</code> - the offset into <code>dst</code> to start the copy.</dd>
<dd><code>length</code> - the number of bytes to copy into <code>dst</code>.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="put(int,byte)">
<h3>put</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-185">put</a></span><wbr><span class="parameters">(int&nbsp;index,
byte&nbsp;val)</span></div>
<div class="block">Store <code>val</code> at <code>index</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored.</dd>
<dd><code>val</code> - the value to store.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="putShort(int,short)">
<h3>putShort</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-192">putShort</a></span><wbr><span class="parameters">(int&nbsp;index,
short&nbsp;val)</span></div>
<div class="block">Store the short value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored</dd>
<dd><code>val</code> - the value to store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="putInt(int,int)">
<h3>putInt</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-199">putInt</a></span><wbr><span class="parameters">(int&nbsp;index,
int&nbsp;val)</span></div>
<div class="block">Store the int value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored</dd>
<dd><code>val</code> - the value to store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="putLong(int,long)">
<h3>putLong</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-206">putLong</a></span><wbr><span class="parameters">(int&nbsp;index,
long&nbsp;val)</span></div>
<div class="block">Store the long value at <code>index</code></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored</dd>
<dd><code>val</code> - the value to store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="putVLong(int,long)">
<h3>putVLong</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-214">putVLong</a></span><wbr><span class="parameters">(int&nbsp;index,
long&nbsp;val)</span></div>
<div class="block">Store the long value at <code>index</code> as a VLong</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored</dd>
<dd><code>val</code> - the value to store</dd>
<dt>Returns:</dt>
<dd>number of bytes written</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="put(int,byte[])">
<h3>put</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-222">put</a></span><wbr><span class="parameters">(int&nbsp;index,
byte[]&nbsp;val)</span></div>
<div class="block">Store <code>val</code> at <code>index</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - the index in the range where <code>val</code> is stored.</dd>
<dd><code>val</code> - the value to store.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="put(int,byte[],int,int)">
<h3>put</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-233">put</a></span><wbr><span class="parameters">(int&nbsp;index,
byte[]&nbsp;val,
int&nbsp;offset,
int&nbsp;length)</span></div>
<div class="block">Store <code>length</code> bytes from <code>val</code> into this range, starting at <code>index</code>. Bytes
from <code>val</code> are copied starting at <code>offset</code> into the range.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>index</code> - position in this range to start the copy.</dd>
<dd><code>val</code> - the value to store.</dd>
<dd><code>offset</code> - the offset in <code>val</code> from which to start copying.</dd>
<dd><code>length</code> - the number of bytes to copy from <code>val</code>.</dd>
<dt>Returns:</dt>
<dd>this.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deepCopyToNewArray()">
<h3>deepCopyToNewArray</h3>
<div class="member-signature"><span class="return-type">byte[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-240">deepCopyToNewArray</a></span>()</div>
<div class="block">Instantiate a new byte[] with exact length, which is at least 24 bytes + length. Copy the
contents of this range into it.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The newly cloned byte[].</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deepCopy()">
<h3>deepCopy</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-247">deepCopy</a></span>()</div>
<div class="block">Create a new <code>ByteRange</code> with new backing byte[] containing a copy of the content from
<code>this</code> range's window.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>Deep copy</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deepCopyTo(byte[],int)">
<h3>deepCopyTo</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-254">deepCopyTo</a></span><wbr><span class="parameters">(byte[]&nbsp;destination,
int&nbsp;destinationOffset)</span></div>
<div class="block">Wrapper for System.arraycopy. Copy the contents of this range into the provided array.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>destination</code> - Copy to this array</dd>
<dd><code>destinationOffset</code> - First index in the destination array.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="deepCopySubRangeTo(int,int,byte[],int)">
<h3>deepCopySubRangeTo</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-264">deepCopySubRangeTo</a></span><wbr><span class="parameters">(int&nbsp;innerOffset,
int&nbsp;copyLength,
byte[]&nbsp;destination,
int&nbsp;destinationOffset)</span></div>
<div class="block">Wrapper for System.arraycopy. Copy the contents of this range into the provided array.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>innerOffset</code> - Start copying from this index in this source ByteRange. First byte
copied is bytes[offset + innerOffset]</dd>
<dd><code>copyLength</code> - Copy this many bytes</dd>
<dd><code>destination</code> - Copy to this array</dd>
<dd><code>destinationOffset</code> - First index in the destination array.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shallowCopy()">
<h3>shallowCopy</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-272">shallowCopy</a></span>()</div>
<div class="block">Create a new <code>ByteRange</code> 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.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>new <code>ByteRange</code> object referencing this range's byte[].</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shallowCopySubRange(int,int)">
<h3>shallowCopySubRange</h3>
<div class="member-signature"><span class="return-type"><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util">ByteRange</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/util/ByteRange.html#line-282">shallowCopySubRange</a></span><wbr><span class="parameters">(int&nbsp;innerOffset,
int&nbsp;copyLength)</span></div>
<div class="block">Create a new <code>ByteRange</code> 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.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>innerOffset</code> - First byte of clone will be this.offset + copyOffset.</dd>
<dd><code>copyLength</code> - Number of bytes in the clone.</dd>
<dt>Returns:</dt>
<dd>new <code>ByteRange</code> object referencing this range's byte[].</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>