<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Bytes xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/trafodion/dcs/util/Bytes.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_javadoccomment"> * Copyright 2007 The Apache Software Foundation</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_javadoccomment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_javadoccomment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_javadoccomment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_javadoccomment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_javadoccomment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_javadoccomment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_javadoccomment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_javadoccomment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_javadoccomment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_javadoccomment"> * See the License for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_javadoccomment"> * limitations under the License.</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">package</strong> org.trafodion.dcs.util;
<a class="jxr_linenumber" name="22" href="#22">22</a>  
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.DataInput;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.DataOutput;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.UnsupportedEncodingException;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Field;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteBuffer;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteOrder;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.security.AccessController;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.security.PrivilegedAction;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Comparator;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.trafodion.dcs.Constants;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.io.RawComparator;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.io.WritableComparator;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.io.WritableUtils;
<a class="jxr_linenumber" name="44" href="#44">44</a>  
<a class="jxr_linenumber" name="45" href="#45">45</a>  
<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Utility class that handles byte arrays, conversions to/from other types,</em>
<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * comparisons, hash code generation, manufacturing keys for HashMaps or</em>
<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * HashSets, etc.</em>
<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/trafodion/dcs/util/Bytes.html">Bytes</a> {
<a class="jxr_linenumber" name="52" href="#52">52</a>  
<a class="jxr_linenumber" name="53" href="#53">53</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(Bytes.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="54" href="#54">54</a>  
<a class="jxr_linenumber" name="55" href="#55">55</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">   * Size of boolean in bytes</em>
<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="58" href="#58">58</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_BOOLEAN = Byte.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="59" href="#59">59</a>  
<a class="jxr_linenumber" name="60" href="#60">60</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="61" href="#61">61</a>  <em class="jxr_javadoccomment">   * Size of byte in bytes</em>
<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="63" href="#63">63</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_BYTE = SIZEOF_BOOLEAN;
<a class="jxr_linenumber" name="64" href="#64">64</a>  
<a class="jxr_linenumber" name="65" href="#65">65</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_javadoccomment">   * Size of char in bytes</em>
<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="68" href="#68">68</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_CHAR = Character.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="69" href="#69">69</a>  
<a class="jxr_linenumber" name="70" href="#70">70</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="71" href="#71">71</a>  <em class="jxr_javadoccomment">   * Size of double in bytes</em>
<a class="jxr_linenumber" name="72" href="#72">72</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="73" href="#73">73</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_DOUBLE = Double.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="74" href="#74">74</a>  
<a class="jxr_linenumber" name="75" href="#75">75</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment">   * Size of float in bytes</em>
<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="78" href="#78">78</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_FLOAT = Float.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="79" href="#79">79</a>  
<a class="jxr_linenumber" name="80" href="#80">80</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">   * Size of int in bytes</em>
<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="83" href="#83">83</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_INT = Integer.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="84" href="#84">84</a>  
<a class="jxr_linenumber" name="85" href="#85">85</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_javadoccomment">   * Size of long in bytes</em>
<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="88" href="#88">88</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_LONG = Long.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="89" href="#89">89</a>  
<a class="jxr_linenumber" name="90" href="#90">90</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">   * Size of short in bytes</em>
<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="93" href="#93">93</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> SIZEOF_SHORT = Short.SIZE / Byte.SIZE;
<a class="jxr_linenumber" name="94" href="#94">94</a>  
<a class="jxr_linenumber" name="95" href="#95">95</a>  
<a class="jxr_linenumber" name="96" href="#96">96</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_javadoccomment">   * Estimate of size cost to pay beyond payload in jvm for instance of byte [].</em>
<a class="jxr_linenumber" name="98" href="#98">98</a>  <em class="jxr_javadoccomment">   * Estimate based on study of jhat and jprofiler numbers.</em>
<a class="jxr_linenumber" name="99" href="#99">99</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="100" href="#100">100</a>   <em class="jxr_comment">// JHat says BU is 56 bytes.</em>
<a class="jxr_linenumber" name="101" href="#101">101</a>   <em class="jxr_comment">// SizeOf which uses java.lang.instrument says 24 bytes. (3 longs?)</em>
<a class="jxr_linenumber" name="102" href="#102">102</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> ESTIMATED_HEAP_TAX = 16;
<a class="jxr_linenumber" name="103" href="#103">103</a> 
<a class="jxr_linenumber" name="104" href="#104">104</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="105" href="#105">105</a> <em class="jxr_javadoccomment">   * Read byte-array written with a WritableableUtils.vint prefix.</em>
<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_javadoccomment">   * @param in Input to read from.</em>
<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_javadoccomment">   * @return byte array read off &lt;code&gt;in&lt;/code&gt;</em>
<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_javadoccomment">   * @throws IOException e</em>
<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="110" href="#110">110</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] readByteArray(<strong class="jxr_keyword">final</strong> DataInput in)
<a class="jxr_linenumber" name="111" href="#111">111</a>   <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">int</strong> len = WritableUtils.readVInt(in);
<a class="jxr_linenumber" name="113" href="#113">113</a>     <strong class="jxr_keyword">if</strong> (len &lt; 0) {
<a class="jxr_linenumber" name="114" href="#114">114</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NegativeArraySizeException(Integer.toString(len));
<a class="jxr_linenumber" name="115" href="#115">115</a>     }
<a class="jxr_linenumber" name="116" href="#116">116</a>     byte [] result = <strong class="jxr_keyword">new</strong> byte[len];
<a class="jxr_linenumber" name="117" href="#117">117</a>     in.readFully(result, 0, len);
<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="119" href="#119">119</a>   }
<a class="jxr_linenumber" name="120" href="#120">120</a> 
<a class="jxr_linenumber" name="121" href="#121">121</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_javadoccomment">   * Read byte-array written with a WritableableUtils.vint prefix.</em>
<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_javadoccomment">   * IOException is converted to a RuntimeException.</em>
<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_javadoccomment">   * @param in Input to read from.</em>
<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_javadoccomment">   * @return byte array read off &lt;code&gt;in&lt;/code&gt;</em>
<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="127" href="#127">127</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] readByteArrayThrowsRuntime(<strong class="jxr_keyword">final</strong> DataInput in) {
<a class="jxr_linenumber" name="128" href="#128">128</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="129" href="#129">129</a>       <strong class="jxr_keyword">return</strong> readByteArray(in);
<a class="jxr_linenumber" name="130" href="#130">130</a>     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="131" href="#131">131</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(e);
<a class="jxr_linenumber" name="132" href="#132">132</a>     }
<a class="jxr_linenumber" name="133" href="#133">133</a>   }
<a class="jxr_linenumber" name="134" href="#134">134</a> 
<a class="jxr_linenumber" name="135" href="#135">135</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="136" href="#136">136</a> <em class="jxr_javadoccomment">   * Write byte-array with a WritableableUtils.vint prefix.</em>
<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_javadoccomment">   * @param out output stream to be written to</em>
<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment">   * @param b array to write</em>
<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment">   * @throws IOException e</em>
<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="141" href="#141">141</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeByteArray(<strong class="jxr_keyword">final</strong> DataOutput out, <strong class="jxr_keyword">final</strong> byte [] b)
<a class="jxr_linenumber" name="142" href="#142">142</a>   <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="143" href="#143">143</a>     <strong class="jxr_keyword">if</strong>(b == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="144" href="#144">144</a>       WritableUtils.writeVInt(out, 0);
<a class="jxr_linenumber" name="145" href="#145">145</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="146" href="#146">146</a>       writeByteArray(out, b, 0, b.length);
<a class="jxr_linenumber" name="147" href="#147">147</a>     }
<a class="jxr_linenumber" name="148" href="#148">148</a>   }
<a class="jxr_linenumber" name="149" href="#149">149</a> 
<a class="jxr_linenumber" name="150" href="#150">150</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="151" href="#151">151</a> <em class="jxr_javadoccomment">   * Write byte-array to out with a vint length prefix.</em>
<a class="jxr_linenumber" name="152" href="#152">152</a> <em class="jxr_javadoccomment">   * @param out output stream</em>
<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_javadoccomment">   * @param b array</em>
<a class="jxr_linenumber" name="154" href="#154">154</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="155" href="#155">155</a> <em class="jxr_javadoccomment">   * @param length length past offset</em>
<a class="jxr_linenumber" name="156" href="#156">156</a> <em class="jxr_javadoccomment">   * @throws IOException e</em>
<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="158" href="#158">158</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeByteArray(<strong class="jxr_keyword">final</strong> DataOutput out, <strong class="jxr_keyword">final</strong> byte [] b,
<a class="jxr_linenumber" name="159" href="#159">159</a>       <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length)
<a class="jxr_linenumber" name="160" href="#160">160</a>   <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="161" href="#161">161</a>     WritableUtils.writeVInt(out, length);
<a class="jxr_linenumber" name="162" href="#162">162</a>     out.write(b, offset, length);
<a class="jxr_linenumber" name="163" href="#163">163</a>   }
<a class="jxr_linenumber" name="164" href="#164">164</a> 
<a class="jxr_linenumber" name="165" href="#165">165</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="166" href="#166">166</a> <em class="jxr_javadoccomment">   * Write byte-array from src to tgt with a vint length prefix.</em>
<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">   * @param tgt target array</em>
<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">   * @param tgtOffset offset into target array</em>
<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">   * @param src source array</em>
<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">   * @param srcOffset source offset</em>
<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">   * @param srcLength source length</em>
<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">   * @return New offset in src array.</em>
<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="174" href="#174">174</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> writeByteArray(<strong class="jxr_keyword">final</strong> byte [] tgt, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> tgtOffset,
<a class="jxr_linenumber" name="175" href="#175">175</a>       <strong class="jxr_keyword">final</strong> byte [] src, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> srcOffset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> srcLength) {
<a class="jxr_linenumber" name="176" href="#176">176</a>     byte [] vint = vintToBytes(srcLength);
<a class="jxr_linenumber" name="177" href="#177">177</a>     System.arraycopy(vint, 0, tgt, tgtOffset, vint.length);
<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">int</strong> offset = tgtOffset + vint.length;
<a class="jxr_linenumber" name="179" href="#179">179</a>     System.arraycopy(src, srcOffset, tgt, offset, srcLength);
<a class="jxr_linenumber" name="180" href="#180">180</a>     <strong class="jxr_keyword">return</strong> offset + srcLength;
<a class="jxr_linenumber" name="181" href="#181">181</a>   }
<a class="jxr_linenumber" name="182" href="#182">182</a> 
<a class="jxr_linenumber" name="183" href="#183">183</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">   * Put bytes at the specified byte array position.</em>
<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">   * @param tgtBytes the byte array</em>
<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">   * @param tgtOffset position in the array</em>
<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_javadoccomment">   * @param srcBytes array to write out</em>
<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">   * @param srcOffset source offset</em>
<a class="jxr_linenumber" name="189" href="#189">189</a> <em class="jxr_javadoccomment">   * @param srcLength source length</em>
<a class="jxr_linenumber" name="190" href="#190">190</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="192" href="#192">192</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putBytes(byte[] tgtBytes, <strong class="jxr_keyword">int</strong> tgtOffset, byte[] srcBytes,
<a class="jxr_linenumber" name="193" href="#193">193</a>       <strong class="jxr_keyword">int</strong> srcOffset, <strong class="jxr_keyword">int</strong> srcLength) {
<a class="jxr_linenumber" name="194" href="#194">194</a>     System.arraycopy(srcBytes, srcOffset, tgtBytes, tgtOffset, srcLength);
<a class="jxr_linenumber" name="195" href="#195">195</a>     <strong class="jxr_keyword">return</strong> tgtOffset + srcLength;
<a class="jxr_linenumber" name="196" href="#196">196</a>   }
<a class="jxr_linenumber" name="197" href="#197">197</a> 
<a class="jxr_linenumber" name="198" href="#198">198</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="199" href="#199">199</a> <em class="jxr_javadoccomment">   * Write a single byte out to the specified byte array position.</em>
<a class="jxr_linenumber" name="200" href="#200">200</a> <em class="jxr_javadoccomment">   * @param bytes the byte array</em>
<a class="jxr_linenumber" name="201" href="#201">201</a> <em class="jxr_javadoccomment">   * @param offset position in the array</em>
<a class="jxr_linenumber" name="202" href="#202">202</a> <em class="jxr_javadoccomment">   * @param b byte to write out</em>
<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="205" href="#205">205</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putByte(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, byte b) {
<a class="jxr_linenumber" name="206" href="#206">206</a>     bytes[offset] = b;
<a class="jxr_linenumber" name="207" href="#207">207</a>     <strong class="jxr_keyword">return</strong> offset + 1;
<a class="jxr_linenumber" name="208" href="#208">208</a>   }
<a class="jxr_linenumber" name="209" href="#209">209</a> 
<a class="jxr_linenumber" name="210" href="#210">210</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="211" href="#211">211</a> <em class="jxr_javadoccomment">   * Returns a new byte array, copied from the passed ByteBuffer.</em>
<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">   * @param bb A ByteBuffer</em>
<a class="jxr_linenumber" name="213" href="#213">213</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="214" href="#214">214</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="215" href="#215">215</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(ByteBuffer bb) {
<a class="jxr_linenumber" name="216" href="#216">216</a>     <strong class="jxr_keyword">int</strong> length = bb.limit();
<a class="jxr_linenumber" name="217" href="#217">217</a>     byte [] result = <strong class="jxr_keyword">new</strong> byte[length];
<a class="jxr_linenumber" name="218" href="#218">218</a>     System.arraycopy(bb.array(), bb.arrayOffset(), result, 0, length);
<a class="jxr_linenumber" name="219" href="#219">219</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="220" href="#220">220</a>   }
<a class="jxr_linenumber" name="221" href="#221">221</a> 
<a class="jxr_linenumber" name="222" href="#222">222</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">   * @param b Presumed UTF-8 encoded byte array.</em>
<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">   * @return String made from &lt;code&gt;b&lt;/code&gt;</em>
<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="226" href="#226">226</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toString(<strong class="jxr_keyword">final</strong> byte [] b) {
<a class="jxr_linenumber" name="227" href="#227">227</a>     <strong class="jxr_keyword">if</strong> (b == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="228" href="#228">228</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="229" href="#229">229</a>     }
<a class="jxr_linenumber" name="230" href="#230">230</a>     <strong class="jxr_keyword">return</strong> toString(b, 0, b.length);
<a class="jxr_linenumber" name="231" href="#231">231</a>   }
<a class="jxr_linenumber" name="232" href="#232">232</a> 
<a class="jxr_linenumber" name="233" href="#233">233</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="234" href="#234">234</a> <em class="jxr_javadoccomment">   * Joins two byte arrays together using a separator.</em>
<a class="jxr_linenumber" name="235" href="#235">235</a> <em class="jxr_javadoccomment">   * @param b1 The first byte array.</em>
<a class="jxr_linenumber" name="236" href="#236">236</a> <em class="jxr_javadoccomment">   * @param sep The separator to use.</em>
<a class="jxr_linenumber" name="237" href="#237">237</a> <em class="jxr_javadoccomment">   * @param b2 The second byte array.</em>
<a class="jxr_linenumber" name="238" href="#238">238</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="239" href="#239">239</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toString(<strong class="jxr_keyword">final</strong> byte [] b1,
<a class="jxr_linenumber" name="240" href="#240">240</a>                                 String sep,
<a class="jxr_linenumber" name="241" href="#241">241</a>                                 <strong class="jxr_keyword">final</strong> byte [] b2) {
<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">return</strong> toString(b1, 0, b1.length) + sep + toString(b2, 0, b2.length);
<a class="jxr_linenumber" name="243" href="#243">243</a>   }
<a class="jxr_linenumber" name="244" href="#244">244</a> 
<a class="jxr_linenumber" name="245" href="#245">245</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">   * This method will convert utf8 encoded bytes into a string. If</em>
<a class="jxr_linenumber" name="247" href="#247">247</a> <em class="jxr_javadoccomment">   * an UnsupportedEncodingException occurs, this method will eat it</em>
<a class="jxr_linenumber" name="248" href="#248">248</a> <em class="jxr_javadoccomment">   * and return null instead.</em>
<a class="jxr_linenumber" name="249" href="#249">249</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="250" href="#250">250</a> <em class="jxr_javadoccomment">   * @param b Presumed UTF-8 encoded byte array.</em>
<a class="jxr_linenumber" name="251" href="#251">251</a> <em class="jxr_javadoccomment">   * @param off offset into array</em>
<a class="jxr_linenumber" name="252" href="#252">252</a> <em class="jxr_javadoccomment">   * @param len length of utf-8 sequence</em>
<a class="jxr_linenumber" name="253" href="#253">253</a> <em class="jxr_javadoccomment">   * @return String made from &lt;code&gt;b&lt;/code&gt; or null</em>
<a class="jxr_linenumber" name="254" href="#254">254</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="255" href="#255">255</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toString(<strong class="jxr_keyword">final</strong> byte [] b, <strong class="jxr_keyword">int</strong> off, <strong class="jxr_keyword">int</strong> len) {
<a class="jxr_linenumber" name="256" href="#256">256</a>     <strong class="jxr_keyword">if</strong> (b == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="257" href="#257">257</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="258" href="#258">258</a>     }
<a class="jxr_linenumber" name="259" href="#259">259</a>     <strong class="jxr_keyword">if</strong> (len == 0) {
<a class="jxr_linenumber" name="260" href="#260">260</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="261" href="#261">261</a>     }
<a class="jxr_linenumber" name="262" href="#262">262</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="263" href="#263">263</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> String(b, off, len, Constants.UTF8_ENCODING);
<a class="jxr_linenumber" name="264" href="#264">264</a>     } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a class="jxr_linenumber" name="265" href="#265">265</a>       LOG.error(<span class="jxr_string">"UTF-8 not supported?"</span>, e);
<a class="jxr_linenumber" name="266" href="#266">266</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="267" href="#267">267</a>     }
<a class="jxr_linenumber" name="268" href="#268">268</a>   }
<a class="jxr_linenumber" name="269" href="#269">269</a> 
<a class="jxr_linenumber" name="270" href="#270">270</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="271" href="#271">271</a> <em class="jxr_javadoccomment">   * Write a printable representation of a byte array.</em>
<a class="jxr_linenumber" name="272" href="#272">272</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="273" href="#273">273</a> <em class="jxr_javadoccomment">   * @param b byte array</em>
<a class="jxr_linenumber" name="274" href="#274">274</a> <em class="jxr_javadoccomment">   * @return string</em>
<a class="jxr_linenumber" name="275" href="#275">275</a> <em class="jxr_javadoccomment">   * @see #toStringBinary(byte[], int, int)</em>
<a class="jxr_linenumber" name="276" href="#276">276</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="277" href="#277">277</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toStringBinary(<strong class="jxr_keyword">final</strong> byte [] b) {
<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">if</strong> (b == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="279" href="#279">279</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">"null"</span>;
<a class="jxr_linenumber" name="280" href="#280">280</a>     <strong class="jxr_keyword">return</strong> toStringBinary(b, 0, b.length);
<a class="jxr_linenumber" name="281" href="#281">281</a>   }
<a class="jxr_linenumber" name="282" href="#282">282</a> 
<a class="jxr_linenumber" name="283" href="#283">283</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="284" href="#284">284</a> <em class="jxr_javadoccomment">   * Converts the given byte buffer, from its array offset to its limit, to</em>
<a class="jxr_linenumber" name="285" href="#285">285</a> <em class="jxr_javadoccomment">   * a string. The position and the mark are ignored.</em>
<a class="jxr_linenumber" name="286" href="#286">286</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="287" href="#287">287</a> <em class="jxr_javadoccomment">   * @param buf a byte buffer</em>
<a class="jxr_linenumber" name="288" href="#288">288</a> <em class="jxr_javadoccomment">   * @return a string representation of the buffer's binary contents</em>
<a class="jxr_linenumber" name="289" href="#289">289</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="290" href="#290">290</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toStringBinary(ByteBuffer buf) {
<a class="jxr_linenumber" name="291" href="#291">291</a>     <strong class="jxr_keyword">if</strong> (buf == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="292" href="#292">292</a>       <strong class="jxr_keyword">return</strong> <span class="jxr_string">"null"</span>;
<a class="jxr_linenumber" name="293" href="#293">293</a>     <strong class="jxr_keyword">return</strong> toStringBinary(buf.array(), buf.arrayOffset(), buf.limit());
<a class="jxr_linenumber" name="294" href="#294">294</a>   }
<a class="jxr_linenumber" name="295" href="#295">295</a> 
<a class="jxr_linenumber" name="296" href="#296">296</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">   * Write a printable representation of a byte array. Non-printable</em>
<a class="jxr_linenumber" name="298" href="#298">298</a> <em class="jxr_javadoccomment">   * characters are hex escaped in the format &#92;&#92;x%02X, eg:</em>
<a class="jxr_linenumber" name="299" href="#299">299</a> <em class="jxr_javadoccomment">   * \x00 \x05 etc</em>
<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_javadoccomment">   * @param b array to write out</em>
<a class="jxr_linenumber" name="302" href="#302">302</a> <em class="jxr_javadoccomment">   * @param off offset to start at</em>
<a class="jxr_linenumber" name="303" href="#303">303</a> <em class="jxr_javadoccomment">   * @param len length to write</em>
<a class="jxr_linenumber" name="304" href="#304">304</a> <em class="jxr_javadoccomment">   * @return string output</em>
<a class="jxr_linenumber" name="305" href="#305">305</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="306" href="#306">306</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toStringBinary(<strong class="jxr_keyword">final</strong> byte [] b, <strong class="jxr_keyword">int</strong> off, <strong class="jxr_keyword">int</strong> len) {
<a class="jxr_linenumber" name="307" href="#307">307</a>     StringBuilder result = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="308" href="#308">308</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="309" href="#309">309</a>       String first = <strong class="jxr_keyword">new</strong> String(b, off, len, <span class="jxr_string">"ISO-8859-1"</span>);
<a class="jxr_linenumber" name="310" href="#310">310</a>       <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; first.length() ; ++i ) {
<a class="jxr_linenumber" name="311" href="#311">311</a>         <strong class="jxr_keyword">int</strong> ch = first.charAt(i) &amp; 0xFF;
<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">if</strong> ( (ch &gt;= '0' &amp;&amp; ch &lt;= '9')
<a class="jxr_linenumber" name="313" href="#313">313</a>             || (ch &gt;= 'A' &amp;&amp; ch &lt;= 'Z')
<a class="jxr_linenumber" name="314" href="#314">314</a>             || (ch &gt;= 'a' &amp;&amp; ch &lt;= 'z')
<a class="jxr_linenumber" name="315" href="#315">315</a>             || <span class="jxr_string">" `~!@#$%^&amp;*()-_=+[]{}&#92;&#92;|;:'\&quot;,.&lt;&gt;/?"</span>.indexOf(ch) &gt;= 0 ) {
<a class="jxr_linenumber" name="316" href="#316">316</a>           result.append(first.charAt(i));
<a class="jxr_linenumber" name="317" href="#317">317</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="318" href="#318">318</a>           result.append(String.format(<span class="jxr_string">"&#92;&#92;x%02X"</span>, ch));
<a class="jxr_linenumber" name="319" href="#319">319</a>         }
<a class="jxr_linenumber" name="320" href="#320">320</a>       }
<a class="jxr_linenumber" name="321" href="#321">321</a>     } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a class="jxr_linenumber" name="322" href="#322">322</a>       LOG.error(<span class="jxr_string">"ISO-8859-1 not supported?"</span>, e);
<a class="jxr_linenumber" name="323" href="#323">323</a>     }
<a class="jxr_linenumber" name="324" href="#324">324</a>     <strong class="jxr_keyword">return</strong> result.toString();
<a class="jxr_linenumber" name="325" href="#325">325</a>   }
<a class="jxr_linenumber" name="326" href="#326">326</a> 
<a class="jxr_linenumber" name="327" href="#327">327</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isHexDigit(<strong class="jxr_keyword">char</strong> c) {
<a class="jxr_linenumber" name="328" href="#328">328</a>     <strong class="jxr_keyword">return</strong>
<a class="jxr_linenumber" name="329" href="#329">329</a>         (c &gt;= 'A' &amp;&amp; c &lt;= 'F') ||
<a class="jxr_linenumber" name="330" href="#330">330</a>         (c &gt;= '0' &amp;&amp; c &lt;= '9');
<a class="jxr_linenumber" name="331" href="#331">331</a>   }
<a class="jxr_linenumber" name="332" href="#332">332</a> 
<a class="jxr_linenumber" name="333" href="#333">333</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="334" href="#334">334</a> <em class="jxr_javadoccomment">   * Takes a ASCII digit in the range A-F0-9 and returns</em>
<a class="jxr_linenumber" name="335" href="#335">335</a> <em class="jxr_javadoccomment">   * the corresponding integer/ordinal value.</em>
<a class="jxr_linenumber" name="336" href="#336">336</a> <em class="jxr_javadoccomment">   * @param ch  The hex digit.</em>
<a class="jxr_linenumber" name="337" href="#337">337</a> <em class="jxr_javadoccomment">   * @return The converted hex value as a byte.</em>
<a class="jxr_linenumber" name="338" href="#338">338</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="339" href="#339">339</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte toBinaryFromHex(byte ch) {
<a class="jxr_linenumber" name="340" href="#340">340</a>     <strong class="jxr_keyword">if</strong> ( ch &gt;= 'A' &amp;&amp; ch &lt;= 'F' )
<a class="jxr_linenumber" name="341" href="#341">341</a>       <strong class="jxr_keyword">return</strong> (byte) ((byte)10 + (byte) (ch - 'A'));
<a class="jxr_linenumber" name="342" href="#342">342</a>     <em class="jxr_comment">// else</em>
<a class="jxr_linenumber" name="343" href="#343">343</a>     <strong class="jxr_keyword">return</strong> (byte) (ch - '0');
<a class="jxr_linenumber" name="344" href="#344">344</a>   }
<a class="jxr_linenumber" name="345" href="#345">345</a> 
<a class="jxr_linenumber" name="346" href="#346">346</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] toBytesBinary(String in) {
<a class="jxr_linenumber" name="347" href="#347">347</a>     <em class="jxr_comment">// this may be bigger than we need, but let's be safe.</em>
<a class="jxr_linenumber" name="348" href="#348">348</a>     byte [] b = <strong class="jxr_keyword">new</strong> byte[in.length()];
<a class="jxr_linenumber" name="349" href="#349">349</a>     <strong class="jxr_keyword">int</strong> size = 0;
<a class="jxr_linenumber" name="350" href="#350">350</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; in.length(); ++i) {
<a class="jxr_linenumber" name="351" href="#351">351</a>       <strong class="jxr_keyword">char</strong> ch = in.charAt(i);
<a class="jxr_linenumber" name="352" href="#352">352</a>       <strong class="jxr_keyword">if</strong> (ch == '&#92;&#92;' &amp;&amp; in.length() &gt; i+1 &amp;&amp; in.charAt(i+1) == 'x') {
<a class="jxr_linenumber" name="353" href="#353">353</a>         <em class="jxr_comment">// ok, take next 2 hex digits.</em>
<a class="jxr_linenumber" name="354" href="#354">354</a>         <strong class="jxr_keyword">char</strong> hd1 = in.charAt(i+2);
<a class="jxr_linenumber" name="355" href="#355">355</a>         <strong class="jxr_keyword">char</strong> hd2 = in.charAt(i+3);
<a class="jxr_linenumber" name="356" href="#356">356</a> 
<a class="jxr_linenumber" name="357" href="#357">357</a>         <em class="jxr_comment">// they need to be A-F0-9:</em>
<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">if</strong> (!isHexDigit(hd1) ||
<a class="jxr_linenumber" name="359" href="#359">359</a>             !isHexDigit(hd2)) {
<a class="jxr_linenumber" name="360" href="#360">360</a>           <em class="jxr_comment">// bogus escape code, ignore:</em>
<a class="jxr_linenumber" name="361" href="#361">361</a>           <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="362" href="#362">362</a>         }
<a class="jxr_linenumber" name="363" href="#363">363</a>         <em class="jxr_comment">// turn hex ASCII digit -&gt; number</em>
<a class="jxr_linenumber" name="364" href="#364">364</a>         byte d = (byte) ((toBinaryFromHex((byte)hd1) &lt;&lt; 4) + toBinaryFromHex((byte)hd2));
<a class="jxr_linenumber" name="365" href="#365">365</a> 
<a class="jxr_linenumber" name="366" href="#366">366</a>         b[size++] = d;
<a class="jxr_linenumber" name="367" href="#367">367</a>         i += 3; <em class="jxr_comment">// skip 3</em>
<a class="jxr_linenumber" name="368" href="#368">368</a>       } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="369" href="#369">369</a>         b[size++] = (byte) ch;
<a class="jxr_linenumber" name="370" href="#370">370</a>       }
<a class="jxr_linenumber" name="371" href="#371">371</a>     }
<a class="jxr_linenumber" name="372" href="#372">372</a>     <em class="jxr_comment">// resize:</em>
<a class="jxr_linenumber" name="373" href="#373">373</a>     byte [] b2 = <strong class="jxr_keyword">new</strong> byte[size];
<a class="jxr_linenumber" name="374" href="#374">374</a>     System.arraycopy(b, 0, b2, 0, size);
<a class="jxr_linenumber" name="375" href="#375">375</a>     <strong class="jxr_keyword">return</strong> b2;
<a class="jxr_linenumber" name="376" href="#376">376</a>   }
<a class="jxr_linenumber" name="377" href="#377">377</a> 
<a class="jxr_linenumber" name="378" href="#378">378</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="379" href="#379">379</a> <em class="jxr_javadoccomment">   * Converts a string to a UTF-8 byte array.</em>
<a class="jxr_linenumber" name="380" href="#380">380</a> <em class="jxr_javadoccomment">   * @param s string</em>
<a class="jxr_linenumber" name="381" href="#381">381</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="382" href="#382">382</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="383" href="#383">383</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(String s) {
<a class="jxr_linenumber" name="384" href="#384">384</a>     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="385" href="#385">385</a>       <strong class="jxr_keyword">return</strong> s.getBytes(Constants.UTF8_ENCODING);
<a class="jxr_linenumber" name="386" href="#386">386</a>     } <strong class="jxr_keyword">catch</strong> (UnsupportedEncodingException e) {
<a class="jxr_linenumber" name="387" href="#387">387</a>       LOG.error(<span class="jxr_string">"UTF-8 not supported?"</span>, e);
<a class="jxr_linenumber" name="388" href="#388">388</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="389" href="#389">389</a>     }
<a class="jxr_linenumber" name="390" href="#390">390</a>   }
<a class="jxr_linenumber" name="391" href="#391">391</a> 
<a class="jxr_linenumber" name="392" href="#392">392</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="393" href="#393">393</a> <em class="jxr_javadoccomment">   * Convert a boolean to a byte array. True becomes -1</em>
<a class="jxr_linenumber" name="394" href="#394">394</a> <em class="jxr_javadoccomment">   * and false becomes 0.</em>
<a class="jxr_linenumber" name="395" href="#395">395</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="396" href="#396">396</a> <em class="jxr_javadoccomment">   * @param b value</em>
<a class="jxr_linenumber" name="397" href="#397">397</a> <em class="jxr_javadoccomment">   * @return &lt;code&gt;b&lt;/code&gt; encoded in a byte array.</em>
<a class="jxr_linenumber" name="398" href="#398">398</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="399" href="#399">399</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] toBytes(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> b) {
<a class="jxr_linenumber" name="400" href="#400">400</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> byte[] { b ? (byte) -1 : (byte) 0 };
<a class="jxr_linenumber" name="401" href="#401">401</a>   }
<a class="jxr_linenumber" name="402" href="#402">402</a> 
<a class="jxr_linenumber" name="403" href="#403">403</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="404" href="#404">404</a> <em class="jxr_javadoccomment">   * Reverses {@link #toBytes(boolean)}</em>
<a class="jxr_linenumber" name="405" href="#405">405</a> <em class="jxr_javadoccomment">   * @param b array</em>
<a class="jxr_linenumber" name="406" href="#406">406</a> <em class="jxr_javadoccomment">   * @return True or false.</em>
<a class="jxr_linenumber" name="407" href="#407">407</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="408" href="#408">408</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> toBoolean(<strong class="jxr_keyword">final</strong> byte [] b) {
<a class="jxr_linenumber" name="409" href="#409">409</a>     <strong class="jxr_keyword">if</strong> (b.length != 1) {
<a class="jxr_linenumber" name="410" href="#410">410</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Array has wrong size: "</span> + b.length);
<a class="jxr_linenumber" name="411" href="#411">411</a>     }
<a class="jxr_linenumber" name="412" href="#412">412</a>     <strong class="jxr_keyword">return</strong> b[0] != (byte) 0;
<a class="jxr_linenumber" name="413" href="#413">413</a>   }
<a class="jxr_linenumber" name="414" href="#414">414</a> 
<a class="jxr_linenumber" name="415" href="#415">415</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="416" href="#416">416</a> <em class="jxr_javadoccomment">   * Convert a long value to a byte array using big-endian.</em>
<a class="jxr_linenumber" name="417" href="#417">417</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="418" href="#418">418</a> <em class="jxr_javadoccomment">   * @param val value to convert</em>
<a class="jxr_linenumber" name="419" href="#419">419</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="420" href="#420">420</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="421" href="#421">421</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(<strong class="jxr_keyword">long</strong> val) {
<a class="jxr_linenumber" name="422" href="#422">422</a>     byte [] b = <strong class="jxr_keyword">new</strong> byte[8];
<a class="jxr_linenumber" name="423" href="#423">423</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 7; i &gt; 0; i--) {
<a class="jxr_linenumber" name="424" href="#424">424</a>       b[i] = (byte) val;
<a class="jxr_linenumber" name="425" href="#425">425</a>       val &gt;&gt;&gt;= 8;
<a class="jxr_linenumber" name="426" href="#426">426</a>     }
<a class="jxr_linenumber" name="427" href="#427">427</a>     b[0] = (byte) val;
<a class="jxr_linenumber" name="428" href="#428">428</a>     <strong class="jxr_keyword">return</strong> b;
<a class="jxr_linenumber" name="429" href="#429">429</a>   }
<a class="jxr_linenumber" name="430" href="#430">430</a> 
<a class="jxr_linenumber" name="431" href="#431">431</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="432" href="#432">432</a> <em class="jxr_javadoccomment">   * Converts a byte array to a long value. Reverses</em>
<a class="jxr_linenumber" name="433" href="#433">433</a> <em class="jxr_javadoccomment">   * {@link #toBytes(long)}</em>
<a class="jxr_linenumber" name="434" href="#434">434</a> <em class="jxr_javadoccomment">   * @param bytes array</em>
<a class="jxr_linenumber" name="435" href="#435">435</a> <em class="jxr_javadoccomment">   * @return the long value</em>
<a class="jxr_linenumber" name="436" href="#436">436</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="437" href="#437">437</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> toLong(byte[] bytes) {
<a class="jxr_linenumber" name="438" href="#438">438</a>     <strong class="jxr_keyword">return</strong> toLong(bytes, 0, SIZEOF_LONG);
<a class="jxr_linenumber" name="439" href="#439">439</a>   }
<a class="jxr_linenumber" name="440" href="#440">440</a> 
<a class="jxr_linenumber" name="441" href="#441">441</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="442" href="#442">442</a> <em class="jxr_javadoccomment">   * Converts a byte array to a long value. Assumes there will be</em>
<a class="jxr_linenumber" name="443" href="#443">443</a> <em class="jxr_javadoccomment">   * {@link #SIZEOF_LONG} bytes available.</em>
<a class="jxr_linenumber" name="444" href="#444">444</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="445" href="#445">445</a> <em class="jxr_javadoccomment">   * @param bytes bytes</em>
<a class="jxr_linenumber" name="446" href="#446">446</a> <em class="jxr_javadoccomment">   * @param offset offset</em>
<a class="jxr_linenumber" name="447" href="#447">447</a> <em class="jxr_javadoccomment">   * @return the long value</em>
<a class="jxr_linenumber" name="448" href="#448">448</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="449" href="#449">449</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> toLong(byte[] bytes, <strong class="jxr_keyword">int</strong> offset) {
<a class="jxr_linenumber" name="450" href="#450">450</a>     <strong class="jxr_keyword">return</strong> toLong(bytes, offset, SIZEOF_LONG);
<a class="jxr_linenumber" name="451" href="#451">451</a>   }
<a class="jxr_linenumber" name="452" href="#452">452</a> 
<a class="jxr_linenumber" name="453" href="#453">453</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="454" href="#454">454</a> <em class="jxr_javadoccomment">   * Converts a byte array to a long value.</em>
<a class="jxr_linenumber" name="455" href="#455">455</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="456" href="#456">456</a> <em class="jxr_javadoccomment">   * @param bytes array of bytes</em>
<a class="jxr_linenumber" name="457" href="#457">457</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="458" href="#458">458</a> <em class="jxr_javadoccomment">   * @param length length of data (must be {@link #SIZEOF_LONG})</em>
<a class="jxr_linenumber" name="459" href="#459">459</a> <em class="jxr_javadoccomment">   * @return the long value</em>
<a class="jxr_linenumber" name="460" href="#460">460</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if length is not {@link #SIZEOF_LONG} or</em>
<a class="jxr_linenumber" name="461" href="#461">461</a> <em class="jxr_javadoccomment">   * if there's not enough room in the array at the offset indicated.</em>
<a class="jxr_linenumber" name="462" href="#462">462</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="463" href="#463">463</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> toLong(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length) {
<a class="jxr_linenumber" name="464" href="#464">464</a>     <strong class="jxr_keyword">if</strong> (length != SIZEOF_LONG || offset + length &gt; bytes.length) {
<a class="jxr_linenumber" name="465" href="#465">465</a>       <strong class="jxr_keyword">throw</strong> explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_LONG);
<a class="jxr_linenumber" name="466" href="#466">466</a>     }
<a class="jxr_linenumber" name="467" href="#467">467</a>     <strong class="jxr_keyword">long</strong> l = 0;
<a class="jxr_linenumber" name="468" href="#468">468</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = offset; i &lt; offset + length; i++) {
<a class="jxr_linenumber" name="469" href="#469">469</a>       l &lt;&lt;= 8;
<a class="jxr_linenumber" name="470" href="#470">470</a>       l ^= bytes[i] &amp; 0xFF;
<a class="jxr_linenumber" name="471" href="#471">471</a>     }
<a class="jxr_linenumber" name="472" href="#472">472</a>     <strong class="jxr_keyword">return</strong> l;
<a class="jxr_linenumber" name="473" href="#473">473</a>   }
<a class="jxr_linenumber" name="474" href="#474">474</a> 
<a class="jxr_linenumber" name="475" href="#475">475</a>   <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> IllegalArgumentException
<a class="jxr_linenumber" name="476" href="#476">476</a>     explainWrongLengthOrOffset(<strong class="jxr_keyword">final</strong> byte[] bytes,
<a class="jxr_linenumber" name="477" href="#477">477</a>                                <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> offset,
<a class="jxr_linenumber" name="478" href="#478">478</a>                                <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length,
<a class="jxr_linenumber" name="479" href="#479">479</a>                                <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> expectedLength) {
<a class="jxr_linenumber" name="480" href="#480">480</a>     String reason;
<a class="jxr_linenumber" name="481" href="#481">481</a>     <strong class="jxr_keyword">if</strong> (length != expectedLength) {
<a class="jxr_linenumber" name="482" href="#482">482</a>       reason = <span class="jxr_string">"Wrong length: "</span> + length + <span class="jxr_string">", expected "</span> + expectedLength;
<a class="jxr_linenumber" name="483" href="#483">483</a>     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="484" href="#484">484</a>      reason = <span class="jxr_string">"offset ("</span> + offset + <span class="jxr_string">") + length ("</span> + length + <span class="jxr_string">") exceed the"</span>
<a class="jxr_linenumber" name="485" href="#485">485</a>         + <span class="jxr_string">" capacity of the array: "</span> + bytes.length;
<a class="jxr_linenumber" name="486" href="#486">486</a>     }
<a class="jxr_linenumber" name="487" href="#487">487</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(reason);
<a class="jxr_linenumber" name="488" href="#488">488</a>   }
<a class="jxr_linenumber" name="489" href="#489">489</a> 
<a class="jxr_linenumber" name="490" href="#490">490</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="491" href="#491">491</a> <em class="jxr_javadoccomment">   * Put a long value out to the specified byte array position.</em>
<a class="jxr_linenumber" name="492" href="#492">492</a> <em class="jxr_javadoccomment">   * @param bytes the byte array</em>
<a class="jxr_linenumber" name="493" href="#493">493</a> <em class="jxr_javadoccomment">   * @param offset position in the array</em>
<a class="jxr_linenumber" name="494" href="#494">494</a> <em class="jxr_javadoccomment">   * @param val long to write out</em>
<a class="jxr_linenumber" name="495" href="#495">495</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="496" href="#496">496</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if the byte array given doesn't have</em>
<a class="jxr_linenumber" name="497" href="#497">497</a> <em class="jxr_javadoccomment">   * enough room at the offset specified.</em>
<a class="jxr_linenumber" name="498" href="#498">498</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="499" href="#499">499</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putLong(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">long</strong> val) {
<a class="jxr_linenumber" name="500" href="#500">500</a>     <strong class="jxr_keyword">if</strong> (bytes.length - offset &lt; SIZEOF_LONG) {
<a class="jxr_linenumber" name="501" href="#501">501</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Not enough room to put a long at"</span>
<a class="jxr_linenumber" name="502" href="#502">502</a>           + <span class="jxr_string">" offset "</span> + offset + <span class="jxr_string">" in a "</span> + bytes.length + <span class="jxr_string">" byte array"</span>);
<a class="jxr_linenumber" name="503" href="#503">503</a>     }
<a class="jxr_linenumber" name="504" href="#504">504</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = offset + 7; i &gt; offset; i--) {
<a class="jxr_linenumber" name="505" href="#505">505</a>       bytes[i] = (byte) val;
<a class="jxr_linenumber" name="506" href="#506">506</a>       val &gt;&gt;&gt;= 8;
<a class="jxr_linenumber" name="507" href="#507">507</a>     }
<a class="jxr_linenumber" name="508" href="#508">508</a>     bytes[offset] = (byte) val;
<a class="jxr_linenumber" name="509" href="#509">509</a>     <strong class="jxr_keyword">return</strong> offset + SIZEOF_LONG;
<a class="jxr_linenumber" name="510" href="#510">510</a>   }
<a class="jxr_linenumber" name="511" href="#511">511</a> 
<a class="jxr_linenumber" name="512" href="#512">512</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="513" href="#513">513</a> <em class="jxr_javadoccomment">   * Presumes float encoded as IEEE 754 floating-point "single format"</em>
<a class="jxr_linenumber" name="514" href="#514">514</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="515" href="#515">515</a> <em class="jxr_javadoccomment">   * @return Float made from passed byte array.</em>
<a class="jxr_linenumber" name="516" href="#516">516</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="517" href="#517">517</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">float</strong> toFloat(byte [] bytes) {
<a class="jxr_linenumber" name="518" href="#518">518</a>     <strong class="jxr_keyword">return</strong> toFloat(bytes, 0);
<a class="jxr_linenumber" name="519" href="#519">519</a>   }
<a class="jxr_linenumber" name="520" href="#520">520</a> 
<a class="jxr_linenumber" name="521" href="#521">521</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="522" href="#522">522</a> <em class="jxr_javadoccomment">   * Presumes float encoded as IEEE 754 floating-point "single format"</em>
<a class="jxr_linenumber" name="523" href="#523">523</a> <em class="jxr_javadoccomment">   * @param bytes array to convert</em>
<a class="jxr_linenumber" name="524" href="#524">524</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="525" href="#525">525</a> <em class="jxr_javadoccomment">   * @return Float made from passed byte array.</em>
<a class="jxr_linenumber" name="526" href="#526">526</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="527" href="#527">527</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">float</strong> toFloat(byte [] bytes, <strong class="jxr_keyword">int</strong> offset) {
<a class="jxr_linenumber" name="528" href="#528">528</a>     <strong class="jxr_keyword">return</strong> Float.intBitsToFloat(toInt(bytes, offset, SIZEOF_INT));
<a class="jxr_linenumber" name="529" href="#529">529</a>   }
<a class="jxr_linenumber" name="530" href="#530">530</a> 
<a class="jxr_linenumber" name="531" href="#531">531</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="532" href="#532">532</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="533" href="#533">533</a> <em class="jxr_javadoccomment">   * @param offset offset to write to</em>
<a class="jxr_linenumber" name="534" href="#534">534</a> <em class="jxr_javadoccomment">   * @param f float value</em>
<a class="jxr_linenumber" name="535" href="#535">535</a> <em class="jxr_javadoccomment">   * @return New offset in &lt;code&gt;bytes&lt;/code&gt;</em>
<a class="jxr_linenumber" name="536" href="#536">536</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="537" href="#537">537</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putFloat(byte [] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">float</strong> f) {
<a class="jxr_linenumber" name="538" href="#538">538</a>     <strong class="jxr_keyword">return</strong> putInt(bytes, offset, Float.floatToRawIntBits(f));
<a class="jxr_linenumber" name="539" href="#539">539</a>   }
<a class="jxr_linenumber" name="540" href="#540">540</a> 
<a class="jxr_linenumber" name="541" href="#541">541</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="542" href="#542">542</a> <em class="jxr_javadoccomment">   * @param f float value</em>
<a class="jxr_linenumber" name="543" href="#543">543</a> <em class="jxr_javadoccomment">   * @return the float represented as byte []</em>
<a class="jxr_linenumber" name="544" href="#544">544</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="545" href="#545">545</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] toBytes(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">float</strong> f) {
<a class="jxr_linenumber" name="546" href="#546">546</a>     <em class="jxr_comment">// Encode it as int</em>
<a class="jxr_linenumber" name="547" href="#547">547</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(Float.floatToRawIntBits(f));
<a class="jxr_linenumber" name="548" href="#548">548</a>   }
<a class="jxr_linenumber" name="549" href="#549">549</a> 
<a class="jxr_linenumber" name="550" href="#550">550</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="551" href="#551">551</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="552" href="#552">552</a> <em class="jxr_javadoccomment">   * @return Return double made from passed bytes.</em>
<a class="jxr_linenumber" name="553" href="#553">553</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="554" href="#554">554</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> toDouble(<strong class="jxr_keyword">final</strong> byte [] bytes) {
<a class="jxr_linenumber" name="555" href="#555">555</a>     <strong class="jxr_keyword">return</strong> toDouble(bytes, 0);
<a class="jxr_linenumber" name="556" href="#556">556</a>   }
<a class="jxr_linenumber" name="557" href="#557">557</a> 
<a class="jxr_linenumber" name="558" href="#558">558</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="559" href="#559">559</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="560" href="#560">560</a> <em class="jxr_javadoccomment">   * @param offset offset where double is</em>
<a class="jxr_linenumber" name="561" href="#561">561</a> <em class="jxr_javadoccomment">   * @return Return double made from passed bytes.</em>
<a class="jxr_linenumber" name="562" href="#562">562</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="563" href="#563">563</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">double</strong> toDouble(<strong class="jxr_keyword">final</strong> byte [] bytes, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> offset) {
<a class="jxr_linenumber" name="564" href="#564">564</a>     <strong class="jxr_keyword">return</strong> Double.longBitsToDouble(toLong(bytes, offset, SIZEOF_LONG));
<a class="jxr_linenumber" name="565" href="#565">565</a>   }
<a class="jxr_linenumber" name="566" href="#566">566</a> 
<a class="jxr_linenumber" name="567" href="#567">567</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="568" href="#568">568</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="569" href="#569">569</a> <em class="jxr_javadoccomment">   * @param offset offset to write to</em>
<a class="jxr_linenumber" name="570" href="#570">570</a> <em class="jxr_javadoccomment">   * @param d value</em>
<a class="jxr_linenumber" name="571" href="#571">571</a> <em class="jxr_javadoccomment">   * @return New offset into array &lt;code&gt;bytes&lt;/code&gt;</em>
<a class="jxr_linenumber" name="572" href="#572">572</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="573" href="#573">573</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putDouble(byte [] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">double</strong> d) {
<a class="jxr_linenumber" name="574" href="#574">574</a>     <strong class="jxr_keyword">return</strong> putLong(bytes, offset, Double.doubleToLongBits(d));
<a class="jxr_linenumber" name="575" href="#575">575</a>   }
<a class="jxr_linenumber" name="576" href="#576">576</a> 
<a class="jxr_linenumber" name="577" href="#577">577</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="578" href="#578">578</a> <em class="jxr_javadoccomment">   * Serialize a double as the IEEE 754 double format output. The resultant</em>
<a class="jxr_linenumber" name="579" href="#579">579</a> <em class="jxr_javadoccomment">   * array will be 8 bytes long.</em>
<a class="jxr_linenumber" name="580" href="#580">580</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="581" href="#581">581</a> <em class="jxr_javadoccomment">   * @param d value</em>
<a class="jxr_linenumber" name="582" href="#582">582</a> <em class="jxr_javadoccomment">   * @return the double represented as byte []</em>
<a class="jxr_linenumber" name="583" href="#583">583</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="584" href="#584">584</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] toBytes(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">double</strong> d) {
<a class="jxr_linenumber" name="585" href="#585">585</a>     <em class="jxr_comment">// Encode it as a long</em>
<a class="jxr_linenumber" name="586" href="#586">586</a>     <strong class="jxr_keyword">return</strong> Bytes.toBytes(Double.doubleToRawLongBits(d));
<a class="jxr_linenumber" name="587" href="#587">587</a>   }
<a class="jxr_linenumber" name="588" href="#588">588</a> 
<a class="jxr_linenumber" name="589" href="#589">589</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="590" href="#590">590</a> <em class="jxr_javadoccomment">   * Convert an int value to a byte array</em>
<a class="jxr_linenumber" name="591" href="#591">591</a> <em class="jxr_javadoccomment">   * @param val value</em>
<a class="jxr_linenumber" name="592" href="#592">592</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="593" href="#593">593</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="594" href="#594">594</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(<strong class="jxr_keyword">int</strong> val) {
<a class="jxr_linenumber" name="595" href="#595">595</a>     byte [] b = <strong class="jxr_keyword">new</strong> byte[4];
<a class="jxr_linenumber" name="596" href="#596">596</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = 3; i &gt; 0; i--) {
<a class="jxr_linenumber" name="597" href="#597">597</a>       b[i] = (byte) val;
<a class="jxr_linenumber" name="598" href="#598">598</a>       val &gt;&gt;&gt;= 8;
<a class="jxr_linenumber" name="599" href="#599">599</a>     }
<a class="jxr_linenumber" name="600" href="#600">600</a>     b[0] = (byte) val;
<a class="jxr_linenumber" name="601" href="#601">601</a>     <strong class="jxr_keyword">return</strong> b;
<a class="jxr_linenumber" name="602" href="#602">602</a>   }
<a class="jxr_linenumber" name="603" href="#603">603</a> 
<a class="jxr_linenumber" name="604" href="#604">604</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="605" href="#605">605</a> <em class="jxr_javadoccomment">   * Converts a byte array to an int value</em>
<a class="jxr_linenumber" name="606" href="#606">606</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="607" href="#607">607</a> <em class="jxr_javadoccomment">   * @return the int value</em>
<a class="jxr_linenumber" name="608" href="#608">608</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="609" href="#609">609</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> toInt(byte[] bytes) {
<a class="jxr_linenumber" name="610" href="#610">610</a>     <strong class="jxr_keyword">return</strong> toInt(bytes, 0, SIZEOF_INT);
<a class="jxr_linenumber" name="611" href="#611">611</a>   }
<a class="jxr_linenumber" name="612" href="#612">612</a> 
<a class="jxr_linenumber" name="613" href="#613">613</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="614" href="#614">614</a> <em class="jxr_javadoccomment">   * Converts a byte array to an int value</em>
<a class="jxr_linenumber" name="615" href="#615">615</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="616" href="#616">616</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="617" href="#617">617</a> <em class="jxr_javadoccomment">   * @return the int value</em>
<a class="jxr_linenumber" name="618" href="#618">618</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="619" href="#619">619</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> toInt(byte[] bytes, <strong class="jxr_keyword">int</strong> offset) {
<a class="jxr_linenumber" name="620" href="#620">620</a>     <strong class="jxr_keyword">return</strong> toInt(bytes, offset, SIZEOF_INT);
<a class="jxr_linenumber" name="621" href="#621">621</a>   }
<a class="jxr_linenumber" name="622" href="#622">622</a> 
<a class="jxr_linenumber" name="623" href="#623">623</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="624" href="#624">624</a> <em class="jxr_javadoccomment">   * Converts a byte array to an int value</em>
<a class="jxr_linenumber" name="625" href="#625">625</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="626" href="#626">626</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="627" href="#627">627</a> <em class="jxr_javadoccomment">   * @param length length of int (has to be {@link #SIZEOF_INT})</em>
<a class="jxr_linenumber" name="628" href="#628">628</a> <em class="jxr_javadoccomment">   * @return the int value</em>
<a class="jxr_linenumber" name="629" href="#629">629</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if length is not {@link #SIZEOF_INT} or</em>
<a class="jxr_linenumber" name="630" href="#630">630</a> <em class="jxr_javadoccomment">   * if there's not enough room in the array at the offset indicated.</em>
<a class="jxr_linenumber" name="631" href="#631">631</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="632" href="#632">632</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> toInt(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length) {
<a class="jxr_linenumber" name="633" href="#633">633</a>     <strong class="jxr_keyword">if</strong> (length != SIZEOF_INT || offset + length &gt; bytes.length) {
<a class="jxr_linenumber" name="634" href="#634">634</a>       <strong class="jxr_keyword">throw</strong> explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_INT);
<a class="jxr_linenumber" name="635" href="#635">635</a>     }
<a class="jxr_linenumber" name="636" href="#636">636</a>     <strong class="jxr_keyword">int</strong> n = 0;
<a class="jxr_linenumber" name="637" href="#637">637</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i = offset; i &lt; (offset + length); i++) {
<a class="jxr_linenumber" name="638" href="#638">638</a>       n &lt;&lt;= 8;
<a class="jxr_linenumber" name="639" href="#639">639</a>       n ^= bytes[i] &amp; 0xFF;
<a class="jxr_linenumber" name="640" href="#640">640</a>     }
<a class="jxr_linenumber" name="641" href="#641">641</a>     <strong class="jxr_keyword">return</strong> n;
<a class="jxr_linenumber" name="642" href="#642">642</a>   }
<a class="jxr_linenumber" name="643" href="#643">643</a> 
<a class="jxr_linenumber" name="644" href="#644">644</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="645" href="#645">645</a> <em class="jxr_javadoccomment">   * Put an int value out to the specified byte array position.</em>
<a class="jxr_linenumber" name="646" href="#646">646</a> <em class="jxr_javadoccomment">   * @param bytes the byte array</em>
<a class="jxr_linenumber" name="647" href="#647">647</a> <em class="jxr_javadoccomment">   * @param offset position in the array</em>
<a class="jxr_linenumber" name="648" href="#648">648</a> <em class="jxr_javadoccomment">   * @param val int to write out</em>
<a class="jxr_linenumber" name="649" href="#649">649</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="650" href="#650">650</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if the byte array given doesn't have</em>
<a class="jxr_linenumber" name="651" href="#651">651</a> <em class="jxr_javadoccomment">   * enough room at the offset specified.</em>
<a class="jxr_linenumber" name="652" href="#652">652</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="653" href="#653">653</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putInt(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">int</strong> val) {
<a class="jxr_linenumber" name="654" href="#654">654</a>     <strong class="jxr_keyword">if</strong> (bytes.length - offset &lt; SIZEOF_INT) {
<a class="jxr_linenumber" name="655" href="#655">655</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Not enough room to put an int at"</span>
<a class="jxr_linenumber" name="656" href="#656">656</a>           + <span class="jxr_string">" offset "</span> + offset + <span class="jxr_string">" in a "</span> + bytes.length + <span class="jxr_string">" byte array"</span>);
<a class="jxr_linenumber" name="657" href="#657">657</a>     }
<a class="jxr_linenumber" name="658" href="#658">658</a>     <strong class="jxr_keyword">for</strong>(<strong class="jxr_keyword">int</strong> i= offset + 3; i &gt; offset; i--) {
<a class="jxr_linenumber" name="659" href="#659">659</a>       bytes[i] = (byte) val;
<a class="jxr_linenumber" name="660" href="#660">660</a>       val &gt;&gt;&gt;= 8;
<a class="jxr_linenumber" name="661" href="#661">661</a>     }
<a class="jxr_linenumber" name="662" href="#662">662</a>     bytes[offset] = (byte) val;
<a class="jxr_linenumber" name="663" href="#663">663</a>     <strong class="jxr_keyword">return</strong> offset + SIZEOF_INT;
<a class="jxr_linenumber" name="664" href="#664">664</a>   }
<a class="jxr_linenumber" name="665" href="#665">665</a> 
<a class="jxr_linenumber" name="666" href="#666">666</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="667" href="#667">667</a> <em class="jxr_javadoccomment">   * Convert a short value to a byte array of {@link #SIZEOF_SHORT} bytes long.</em>
<a class="jxr_linenumber" name="668" href="#668">668</a> <em class="jxr_javadoccomment">   * @param val value</em>
<a class="jxr_linenumber" name="669" href="#669">669</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="670" href="#670">670</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="671" href="#671">671</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(<strong class="jxr_keyword">short</strong> val) {
<a class="jxr_linenumber" name="672" href="#672">672</a>     byte[] b = <strong class="jxr_keyword">new</strong> byte[SIZEOF_SHORT];
<a class="jxr_linenumber" name="673" href="#673">673</a>     b[1] = (byte) val;
<a class="jxr_linenumber" name="674" href="#674">674</a>     val &gt;&gt;= 8;
<a class="jxr_linenumber" name="675" href="#675">675</a>     b[0] = (byte) val;
<a class="jxr_linenumber" name="676" href="#676">676</a>     <strong class="jxr_keyword">return</strong> b;
<a class="jxr_linenumber" name="677" href="#677">677</a>   }
<a class="jxr_linenumber" name="678" href="#678">678</a> 
<a class="jxr_linenumber" name="679" href="#679">679</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="680" href="#680">680</a> <em class="jxr_javadoccomment">   * Converts a byte array to a short value</em>
<a class="jxr_linenumber" name="681" href="#681">681</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="682" href="#682">682</a> <em class="jxr_javadoccomment">   * @return the short value</em>
<a class="jxr_linenumber" name="683" href="#683">683</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="684" href="#684">684</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">short</strong> toShort(byte[] bytes) {
<a class="jxr_linenumber" name="685" href="#685">685</a>     <strong class="jxr_keyword">return</strong> toShort(bytes, 0, SIZEOF_SHORT);
<a class="jxr_linenumber" name="686" href="#686">686</a>   }
<a class="jxr_linenumber" name="687" href="#687">687</a> 
<a class="jxr_linenumber" name="688" href="#688">688</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="689" href="#689">689</a> <em class="jxr_javadoccomment">   * Converts a byte array to a short value</em>
<a class="jxr_linenumber" name="690" href="#690">690</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="691" href="#691">691</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="692" href="#692">692</a> <em class="jxr_javadoccomment">   * @return the short value</em>
<a class="jxr_linenumber" name="693" href="#693">693</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="694" href="#694">694</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">short</strong> toShort(byte[] bytes, <strong class="jxr_keyword">int</strong> offset) {
<a class="jxr_linenumber" name="695" href="#695">695</a>     <strong class="jxr_keyword">return</strong> toShort(bytes, offset, SIZEOF_SHORT);
<a class="jxr_linenumber" name="696" href="#696">696</a>   }
<a class="jxr_linenumber" name="697" href="#697">697</a> 
<a class="jxr_linenumber" name="698" href="#698">698</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="699" href="#699">699</a> <em class="jxr_javadoccomment">   * Converts a byte array to a short value</em>
<a class="jxr_linenumber" name="700" href="#700">700</a> <em class="jxr_javadoccomment">   * @param bytes byte array</em>
<a class="jxr_linenumber" name="701" href="#701">701</a> <em class="jxr_javadoccomment">   * @param offset offset into array</em>
<a class="jxr_linenumber" name="702" href="#702">702</a> <em class="jxr_javadoccomment">   * @param length length, has to be {@link #SIZEOF_SHORT}</em>
<a class="jxr_linenumber" name="703" href="#703">703</a> <em class="jxr_javadoccomment">   * @return the short value</em>
<a class="jxr_linenumber" name="704" href="#704">704</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if length is not {@link #SIZEOF_SHORT}</em>
<a class="jxr_linenumber" name="705" href="#705">705</a> <em class="jxr_javadoccomment">   * or if there's not enough room in the array at the offset indicated.</em>
<a class="jxr_linenumber" name="706" href="#706">706</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="707" href="#707">707</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">short</strong> toShort(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length) {
<a class="jxr_linenumber" name="708" href="#708">708</a>     <strong class="jxr_keyword">if</strong> (length != SIZEOF_SHORT || offset + length &gt; bytes.length) {
<a class="jxr_linenumber" name="709" href="#709">709</a>       <strong class="jxr_keyword">throw</strong> explainWrongLengthOrOffset(bytes, offset, length, SIZEOF_SHORT);
<a class="jxr_linenumber" name="710" href="#710">710</a>     }
<a class="jxr_linenumber" name="711" href="#711">711</a>     <strong class="jxr_keyword">short</strong> n = 0;
<a class="jxr_linenumber" name="712" href="#712">712</a>     n ^= bytes[offset] &amp; 0xFF;
<a class="jxr_linenumber" name="713" href="#713">713</a>     n &lt;&lt;= 8;
<a class="jxr_linenumber" name="714" href="#714">714</a>     n ^= bytes[offset+1] &amp; 0xFF;
<a class="jxr_linenumber" name="715" href="#715">715</a>     <strong class="jxr_keyword">return</strong> n;
<a class="jxr_linenumber" name="716" href="#716">716</a>   }
<a class="jxr_linenumber" name="717" href="#717">717</a> 
<a class="jxr_linenumber" name="718" href="#718">718</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="719" href="#719">719</a> <em class="jxr_javadoccomment">   * This method will get a sequence of bytes from pos -&gt; limit,</em>
<a class="jxr_linenumber" name="720" href="#720">720</a> <em class="jxr_javadoccomment">   * but will restore pos after.</em>
<a class="jxr_linenumber" name="721" href="#721">721</a> <em class="jxr_javadoccomment">   * @param buf</em>
<a class="jxr_linenumber" name="722" href="#722">722</a> <em class="jxr_javadoccomment">   * @return byte array</em>
<a class="jxr_linenumber" name="723" href="#723">723</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="724" href="#724">724</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] getBytes(ByteBuffer buf) {
<a class="jxr_linenumber" name="725" href="#725">725</a>     <strong class="jxr_keyword">int</strong> savedPos = buf.position();
<a class="jxr_linenumber" name="726" href="#726">726</a>     byte [] newBytes = <strong class="jxr_keyword">new</strong> byte[buf.remaining()];
<a class="jxr_linenumber" name="727" href="#727">727</a>     buf.get(newBytes);
<a class="jxr_linenumber" name="728" href="#728">728</a>     buf.position(savedPos);
<a class="jxr_linenumber" name="729" href="#729">729</a>     <strong class="jxr_keyword">return</strong> newBytes;
<a class="jxr_linenumber" name="730" href="#730">730</a>   }
<a class="jxr_linenumber" name="731" href="#731">731</a> 
<a class="jxr_linenumber" name="732" href="#732">732</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="733" href="#733">733</a> <em class="jxr_javadoccomment">   * Put a short value out to the specified byte array position.</em>
<a class="jxr_linenumber" name="734" href="#734">734</a> <em class="jxr_javadoccomment">   * @param bytes the byte array</em>
<a class="jxr_linenumber" name="735" href="#735">735</a> <em class="jxr_javadoccomment">   * @param offset position in the array</em>
<a class="jxr_linenumber" name="736" href="#736">736</a> <em class="jxr_javadoccomment">   * @param val short to write out</em>
<a class="jxr_linenumber" name="737" href="#737">737</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="738" href="#738">738</a> <em class="jxr_javadoccomment">   * @throws IllegalArgumentException if the byte array given doesn't have</em>
<a class="jxr_linenumber" name="739" href="#739">739</a> <em class="jxr_javadoccomment">   * enough room at the offset specified.</em>
<a class="jxr_linenumber" name="740" href="#740">740</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="741" href="#741">741</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putShort(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">short</strong> val) {
<a class="jxr_linenumber" name="742" href="#742">742</a>     <strong class="jxr_keyword">if</strong> (bytes.length - offset &lt; SIZEOF_SHORT) {
<a class="jxr_linenumber" name="743" href="#743">743</a>       <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Not enough room to put a short at"</span>
<a class="jxr_linenumber" name="744" href="#744">744</a>           + <span class="jxr_string">" offset "</span> + offset + <span class="jxr_string">" in a "</span> + bytes.length + <span class="jxr_string">" byte array"</span>);
<a class="jxr_linenumber" name="745" href="#745">745</a>     }
<a class="jxr_linenumber" name="746" href="#746">746</a>     bytes[offset+1] = (byte) val;
<a class="jxr_linenumber" name="747" href="#747">747</a>     val &gt;&gt;= 8;
<a class="jxr_linenumber" name="748" href="#748">748</a>     bytes[offset] = (byte) val;
<a class="jxr_linenumber" name="749" href="#749">749</a>     <strong class="jxr_keyword">return</strong> offset + SIZEOF_SHORT;
<a class="jxr_linenumber" name="750" href="#750">750</a>   }
<a class="jxr_linenumber" name="751" href="#751">751</a> 
<a class="jxr_linenumber" name="752" href="#752">752</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="753" href="#753">753</a> <em class="jxr_javadoccomment">   * Convert a BigDecimal value to a byte array</em>
<a class="jxr_linenumber" name="754" href="#754">754</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="755" href="#755">755</a> <em class="jxr_javadoccomment">   * @param val</em>
<a class="jxr_linenumber" name="756" href="#756">756</a> <em class="jxr_javadoccomment">   * @return the byte array</em>
<a class="jxr_linenumber" name="757" href="#757">757</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="758" href="#758">758</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte[] toBytes(BigDecimal val) {
<a class="jxr_linenumber" name="759" href="#759">759</a>     byte[] valueBytes = val.unscaledValue().toByteArray();
<a class="jxr_linenumber" name="760" href="#760">760</a>     byte[] result = <strong class="jxr_keyword">new</strong> byte[valueBytes.length + SIZEOF_INT];
<a class="jxr_linenumber" name="761" href="#761">761</a>     <strong class="jxr_keyword">int</strong> offset = putInt(result, 0, val.scale());
<a class="jxr_linenumber" name="762" href="#762">762</a>     putBytes(result, offset, valueBytes, 0, valueBytes.length);
<a class="jxr_linenumber" name="763" href="#763">763</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="764" href="#764">764</a>   }
<a class="jxr_linenumber" name="765" href="#765">765</a> 
<a class="jxr_linenumber" name="766" href="#766">766</a> 
<a class="jxr_linenumber" name="767" href="#767">767</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="768" href="#768">768</a> <em class="jxr_javadoccomment">   * Converts a byte array to a BigDecimal</em>
<a class="jxr_linenumber" name="769" href="#769">769</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="770" href="#770">770</a> <em class="jxr_javadoccomment">   * @param bytes</em>
<a class="jxr_linenumber" name="771" href="#771">771</a> <em class="jxr_javadoccomment">   * @return the char value</em>
<a class="jxr_linenumber" name="772" href="#772">772</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="773" href="#773">773</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BigDecimal toBigDecimal(byte[] bytes) {
<a class="jxr_linenumber" name="774" href="#774">774</a>     <strong class="jxr_keyword">return</strong> toBigDecimal(bytes, 0, bytes.length);
<a class="jxr_linenumber" name="775" href="#775">775</a>   }
<a class="jxr_linenumber" name="776" href="#776">776</a> 
<a class="jxr_linenumber" name="777" href="#777">777</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="778" href="#778">778</a> <em class="jxr_javadoccomment">   * Converts a byte array to a BigDecimal value</em>
<a class="jxr_linenumber" name="779" href="#779">779</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="780" href="#780">780</a> <em class="jxr_javadoccomment">   * @param bytes</em>
<a class="jxr_linenumber" name="781" href="#781">781</a> <em class="jxr_javadoccomment">   * @param offset</em>
<a class="jxr_linenumber" name="782" href="#782">782</a> <em class="jxr_javadoccomment">   * @param length</em>
<a class="jxr_linenumber" name="783" href="#783">783</a> <em class="jxr_javadoccomment">   * @return the char value</em>
<a class="jxr_linenumber" name="784" href="#784">784</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="785" href="#785">785</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BigDecimal toBigDecimal(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> length) {
<a class="jxr_linenumber" name="786" href="#786">786</a>     <strong class="jxr_keyword">if</strong> (bytes == <strong class="jxr_keyword">null</strong> || length &lt; SIZEOF_INT + 1 ||
<a class="jxr_linenumber" name="787" href="#787">787</a>       (offset + length &gt; bytes.length)) {
<a class="jxr_linenumber" name="788" href="#788">788</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="789" href="#789">789</a>     }
<a class="jxr_linenumber" name="790" href="#790">790</a> 
<a class="jxr_linenumber" name="791" href="#791">791</a>     <strong class="jxr_keyword">int</strong> scale = toInt(bytes, offset);
<a class="jxr_linenumber" name="792" href="#792">792</a>     byte[] tcBytes = <strong class="jxr_keyword">new</strong> byte[length - SIZEOF_INT];
<a class="jxr_linenumber" name="793" href="#793">793</a>     System.arraycopy(bytes, offset + SIZEOF_INT, tcBytes, 0, length - SIZEOF_INT);
<a class="jxr_linenumber" name="794" href="#794">794</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> BigDecimal(<strong class="jxr_keyword">new</strong> BigInteger(tcBytes), scale);
<a class="jxr_linenumber" name="795" href="#795">795</a>   }
<a class="jxr_linenumber" name="796" href="#796">796</a> 
<a class="jxr_linenumber" name="797" href="#797">797</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="798" href="#798">798</a> <em class="jxr_javadoccomment">   * Put a BigDecimal value out to the specified byte array position.</em>
<a class="jxr_linenumber" name="799" href="#799">799</a> <em class="jxr_javadoccomment">   *</em>
<a class="jxr_linenumber" name="800" href="#800">800</a> <em class="jxr_javadoccomment">   * @param bytes  the byte array</em>
<a class="jxr_linenumber" name="801" href="#801">801</a> <em class="jxr_javadoccomment">   * @param offset position in the array</em>
<a class="jxr_linenumber" name="802" href="#802">802</a> <em class="jxr_javadoccomment">   * @param val    BigDecimal to write out</em>
<a class="jxr_linenumber" name="803" href="#803">803</a> <em class="jxr_javadoccomment">   * @return incremented offset</em>
<a class="jxr_linenumber" name="804" href="#804">804</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="805" href="#805">805</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> putBigDecimal(byte[] bytes, <strong class="jxr_keyword">int</strong> offset, BigDecimal val) {
<a class="jxr_linenumber" name="806" href="#806">806</a>     <strong class="jxr_keyword">if</strong> (bytes == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="807" href="#807">807</a>       <strong class="jxr_keyword">return</strong> offset;
<a class="jxr_linenumber" name="808" href="#808">808</a>     }
<a class="jxr_linenumber" name="809" href="#809">809</a> 
<a class="jxr_linenumber" name="810" href="#810">810</a>     byte[] valueBytes = val.unscaledValue().toByteArray();
<a class="jxr_linenumber" name="811" href="#811">811</a>     byte[] result = <strong class="jxr_keyword">new</strong> byte[valueBytes.length + SIZEOF_INT];
<a class="jxr_linenumber" name="812" href="#812">812</a>     offset = putInt(result, offset, val.scale());
<a class="jxr_linenumber" name="813" href="#813">813</a>     <strong class="jxr_keyword">return</strong> putBytes(result, offset, valueBytes, 0, valueBytes.length);
<a class="jxr_linenumber" name="814" href="#814">814</a>   }
<a class="jxr_linenumber" name="815" href="#815">815</a> 
<a class="jxr_linenumber" name="816" href="#816">816</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="817" href="#817">817</a> <em class="jxr_javadoccomment">   * @param vint Integer to make a vint of.</em>
<a class="jxr_linenumber" name="818" href="#818">818</a> <em class="jxr_javadoccomment">   * @return Vint as bytes array.</em>
<a class="jxr_linenumber" name="819" href="#819">819</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="820" href="#820">820</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> byte [] vintToBytes(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> vint) {
<a class="jxr_linenumber" name="821" href="#821">821</a>     <strong class="jxr_keyword">long</strong> i = vint;
<a class="jxr_linenumber" name="822" href="#822">822</a>     <strong class="jxr_keyword">int</strong> size = WritableUtils.getVIntSize(i);
<a class="jxr_linenumber" name="823" href="#823">823</a>     byte [] result = <strong class="jxr_keyword">new</strong> byte[size];
<a class="jxr_linenumber" name="824" href="#824">824</a>     <strong class="jxr_keyword">int</strong> offset = 0;
<a class="jxr_linenumber" name="825" href="#825">825</a>     <strong class="jxr_keyword">if</strong> (i &gt;= -112 &amp;&amp; i &lt;= 127) {
<a class="jxr_linenumber" name="826" href="#826">826</a>       result[offset] = (byte) i;
<a class="jxr_linenumber" name="827" href="#827">827</a>       <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="828" href="#828">828</a>     }
<a class="jxr_linenumber" name="829" href="#829">829</a> 
<a class="jxr_linenumber" name="830" href="#830">830</a>     <strong class="jxr_keyword">int</strong> len = -112;
<a class="jxr_linenumber" name="831" href="#831">831</a>     <strong class="jxr_keyword">if</strong> (i &lt; 0) {
<a class="jxr_linenumber" name="832" href="#832">832</a>       i ^= -1L; <em class="jxr_comment">// take one's complement'</em>
<a class="jxr_linenumber" name="833" href="#833">833</a>       len = -120;
<a class="jxr_linenumber" name="834" href="#834">834</a>     }
<a class="jxr_linenumber" name="835" href="#835">835</a> 
<a class="jxr_linenumber" name="836" href="#836">836</a>     <strong class="jxr_keyword">long</strong> tmp = i;
<a class="jxr_linenumber" name="837" href="#837">837</a>     <strong class="jxr_keyword">while</strong> (tmp != 0) {
<a class="jxr_linenumber" name="838" href="#838">838</a>       tmp = tmp &gt;&gt; 8;
<a class="jxr_linenumber" name="839" href="#839">839</a>       len--;
<a class="jxr_linenumber" name="840" href="#840">840</a>     }
<a class="jxr_linenumber" name="841" href="#841">841</a> 
<a class="jxr_linenumber" name="842" href="#842">842</a>     result[offset++] = (byte) len;
<a class="jxr_linenumber" name="843" href="#843">843</a> 
<a class="jxr_linenumber" name="844" href="#844">844</a>     len = (len &lt; -120) ? -(len + 120) : -(len + 112);
<a class="jxr_linenumber" name="845" href="#845">845</a> 
<a class="jxr_linenumber" name="846" href="#846">846</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> idx = len; idx != 0; idx--) {
<a class="jxr_linenumber" name="847" href="#847">847</a>       <strong class="jxr_keyword">int</strong> shiftbits = (idx - 1) * 8;
<a class="jxr_linenumber" name="848" href="#848">848</a>       <strong class="jxr_keyword">long</strong> mask = 0xFFL &lt;&lt; shiftbits;
<a class="jxr_linenumber" name="849" href="#849">849</a>       result[offset++] = (byte)((i &amp; mask) &gt;&gt; shiftbits);
<a class="jxr_linenumber" name="850" href="#850">850</a>     }
<a class="jxr_linenumber" name="851" href="#851">851</a>     <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="852" href="#852">852</a>   }
<a class="jxr_linenumber" name="853" href="#853">853</a> 
<a class="jxr_linenumber" name="854" href="#854">854</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="855" href="#855">855</a> <em class="jxr_javadoccomment">   * @param buffer buffer to convert</em>
<a class="jxr_linenumber" name="856" href="#856">856</a> <em class="jxr_javadoccomment">   * @return vint bytes as an integer.</em>
<a class="jxr_linenumber" name="857" href="#857">857</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="858" href="#858">858</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> bytesToVint(<strong class="jxr_keyword">final</strong> byte [] buffer) {
<a class="jxr_linenumber" name="859" href="#859">859</a>     <strong class="jxr_keyword">int</strong> offset = 0;
<a class="jxr_linenumber" name="860" href="#860">860</a>     byte firstByte = buffer[offset++];
<a class="jxr_linenumber" name="861" href="#861">861</a>     <strong class="jxr_keyword">int</strong> len = WritableUtils.decodeVIntSize(firstByte);
<a class="jxr_linenumber" name="862" href="#862">862</a>     <strong class="jxr_keyword">if</strong> (len == 1) {
<a class="jxr_linenumber" name="863" href="#863">863</a>       <strong class="jxr_keyword">return</strong> firstByte;
<a class="jxr_linenumber" name="864" href="#864">864</a>     }
<a class="jxr_linenumber" name="865" href="#865">865</a>     <strong class="jxr_keyword">long</strong> i = 0;
<a class="jxr_linenumber" name="866" href="#866">866</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> idx = 0; idx &lt; len-1; idx++) {
<a class="jxr_linenumber" name="867" href="#867">867</a>       byte b = buffer[offset++];
<a class="jxr_linenumber" name="868" href="#868">868</a>       i = i &lt;&lt; 8;
<a class="jxr_linenumber" name="869" href="#869">869</a>       i = i | (b &amp; 0xFF);
<a class="jxr_linenumber" name="870" href="#870">870</a>     }
<a class="jxr_linenumber" name="871" href="#871">871</a>     <strong class="jxr_keyword">return</strong> (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);
<a class="jxr_linenumber" name="872" href="#872">872</a>   }
<a class="jxr_linenumber" name="873" href="#873">873</a> 
<a class="jxr_linenumber" name="874" href="#874">874</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="875" href="#875">875</a> <em class="jxr_javadoccomment">   * Reads a zero-compressed encoded long from input stream and returns it.</em>
<a class="jxr_linenumber" name="876" href="#876">876</a> <em class="jxr_javadoccomment">   * @param buffer Binary array</em>
<a class="jxr_linenumber" name="877" href="#877">877</a> <em class="jxr_javadoccomment">   * @param offset Offset into array at which vint begins.</em>
<a class="jxr_linenumber" name="878" href="#878">878</a> <em class="jxr_javadoccomment">   * @throws java.io.IOException e</em>
<a class="jxr_linenumber" name="879" href="#879">879</a> <em class="jxr_javadoccomment">   * @return deserialized long from stream.</em>
<a class="jxr_linenumber" name="880" href="#880">880</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="881" href="#881">881</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> readVLong(<strong class="jxr_keyword">final</strong> byte [] buffer, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> offset)
<a class="jxr_linenumber" name="882" href="#882">882</a>   <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="883" href="#883">883</a>     byte firstByte = buffer[offset];
<a class="jxr_linenumber" name="884" href="#884">884</a>     <strong class="jxr_keyword">int</strong> len = WritableUtils.decodeVIntSize(firstByte);
<a class="jxr_linenumber" name="885" href="#885">885</a>     <strong class="jxr_keyword">if</strong> (len == 1) {
<a class="jxr_linenumber" name="886" href="#886">886</a>       <strong class="jxr_keyword">return</strong> firstByte;
<a class="jxr_linenumber" name="887" href="#887">887</a>     }
<a class="jxr_linenumber" name="888" href="#888">888</a>     <strong class="jxr_keyword">long</strong> i = 0;
<a class="jxr_linenumber" name="889" href="#889">889</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> idx = 0; idx &lt; len-1; idx++) {
<a class="jxr_linenumber" name="890" href="#890">890</a>       byte b = buffer[offset + 1 + idx];
<a class="jxr_linenumber" name="891" href="#891">891</a>       i = i &lt;&lt; 8;
<a class="jxr_linenumber" name="892" href="#892">892</a>       i = i | (b &amp; 0xFF);
<a class="jxr_linenumber" name="893" href="#893">893</a>     }
<a class="jxr_linenumber" name="894" href="#894">894</a>     <strong class="jxr_keyword">return</strong> (WritableUtils.isNegativeVInt(firstByte) ? ~i : i);
<a class="jxr_linenumber" name="895" href="#895">895</a>   }
<a class="jxr_linenumber" name="896" href="#896">896</a>   
<a class="jxr_linenumber" name="897" href="#897">897</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="898" href="#898">898</a> <em class="jxr_javadoccomment">   * @param left left operand</em>
<a class="jxr_linenumber" name="899" href="#899">899</a> <em class="jxr_javadoccomment">   * @param right right operand</em>
<a class="jxr_linenumber" name="900" href="#900">900</a> <em class="jxr_javadoccomment">   * @return 0 if equal, &lt; 0 if left is less than right, etc.</em>
<a class="jxr_linenumber" name="901" href="#901">901</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="902" href="#902">902</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> compareTo(<strong class="jxr_keyword">final</strong> byte [] left, <strong class="jxr_keyword">final</strong> byte [] right) {
<a class="jxr_linenumber" name="903" href="#903">903</a>  <em class="jxr_comment">//   return LexicographicalComparerHolder.BEST_COMPARER.</em>
<a class="jxr_linenumber" name="904" href="#904">904</a>  <em class="jxr_comment">//     compareTo(left, 0, left.length, right, 0, right.length);</em>
<a class="jxr_linenumber" name="905" href="#905">905</a>       <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="906" href="#906">906</a>   }
<a class="jxr_linenumber" name="907" href="#907">907</a>   
<a class="jxr_linenumber" name="908" href="#908">908</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="909" href="#909">909</a> <em class="jxr_javadoccomment">   * @param left left operand</em>
<a class="jxr_linenumber" name="910" href="#910">910</a> <em class="jxr_javadoccomment">   * @param right right operand</em>
<a class="jxr_linenumber" name="911" href="#911">911</a> <em class="jxr_javadoccomment">   * @return True if equal</em>
<a class="jxr_linenumber" name="912" href="#912">912</a> <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="913" href="#913">913</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> equals(<strong class="jxr_keyword">final</strong> byte [] left, <strong class="jxr_keyword">final</strong> byte [] right) {
<a class="jxr_linenumber" name="914" href="#914">914</a>     <em class="jxr_comment">// Could use Arrays.equals?</em>
<a class="jxr_linenumber" name="915" href="#915">915</a>     <em class="jxr_comment">//noinspection SimplifiableConditionalExpression</em>
<a class="jxr_linenumber" name="916" href="#916">916</a>     <strong class="jxr_keyword">if</strong> (left == right) <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="917" href="#917">917</a>     <strong class="jxr_keyword">if</strong> (left == <strong class="jxr_keyword">null</strong> || right == <strong class="jxr_keyword">null</strong>) <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="918" href="#918">918</a>     <strong class="jxr_keyword">if</strong> (left.length != right.length) <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="919" href="#919">919</a>     <strong class="jxr_keyword">if</strong> (left.length == 0) <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="920" href="#920">920</a> 
<a class="jxr_linenumber" name="921" href="#921">921</a>     <em class="jxr_comment">// Since we're often comparing adjacent sorted data,</em>
<a class="jxr_linenumber" name="922" href="#922">922</a>     <em class="jxr_comment">// it's usual to have equal arrays except for the very last byte</em>
<a class="jxr_linenumber" name="923" href="#923">923</a>     <em class="jxr_comment">// so check that first</em>
<a class="jxr_linenumber" name="924" href="#924">924</a>     <strong class="jxr_keyword">if</strong> (left[left.length - 1] != right[right.length - 1]) <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="925" href="#925">925</a> 
<a class="jxr_linenumber" name="926" href="#926">926</a>     <strong class="jxr_keyword">return</strong> compareTo(left, right) == 0;
<a class="jxr_linenumber" name="927" href="#927">927</a>   }
<a class="jxr_linenumber" name="928" href="#928">928</a> 
<a class="jxr_linenumber" name="929" href="#929">929</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

