<!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>ByteAccessTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.util.byteaccess;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.easymock.EasyMock.createStrictControl;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.nio.ByteOrder;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.buffer.IoBuffer;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.ByteArray.Cursor;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArray.CursorListener;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArrayRelativeWriter.ChunkedExpander;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.byteaccess.CompositeByteArrayRelativeWriter.Flusher;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.easymock.IMocksControl;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Tests classes in the &lt;code&gt;byteaccess&lt;/code&gt; package.</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * </em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/util/byteaccess/ByteAccessTest.html">ByteAccessTest</a> <strong class="jxr_keyword">extends</strong> TestCase {
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> List&lt;String&gt; operations = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> resetOperations() {
<a name="47" href="#47">47</a>          operations.clear();
<a name="48" href="#48">48</a>      }
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> assertOperationCountEquals(<strong class="jxr_keyword">int</strong> expectedCount) {
<a name="51" href="#51">51</a>          assertEquals(<span class="jxr_string">"Operations: "</span> + operations, expectedCount, operations.size());
<a name="52" href="#52">52</a>      }
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addOperation(String description) {
<a name="55" href="#55">55</a>          operations.add(description);
<a name="56" href="#56">56</a>      }
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBufferByteArray() <strong class="jxr_keyword">throws</strong> Exception {
<a name="59" href="#59">59</a>          ByteArray ba = getByteArrayFactory().create(1000);
<a name="60" href="#60">60</a>          testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="61" href="#61">61</a>          testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="62" href="#62">62</a>          Cursor readCursor = ba.cursor();
<a name="63" href="#63">63</a>          Cursor writeCursor = ba.cursor();
<a name="64" href="#64">64</a>          testRelativeReaderAndWriter(1000, readCursor, writeCursor);
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeAddAndRemove() <strong class="jxr_keyword">throws</strong> Exception {
<a name="68" href="#68">68</a>          CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="69" href="#69">69</a>          assertEquals(0, cba.first());
<a name="70" href="#70">70</a>          assertEquals(0, cba.last());
<a name="71" href="#71">71</a>          cba.addFirst(getByteArrayFactory().create(100));
<a name="72" href="#72">72</a>          assertEquals(-100, cba.first());
<a name="73" href="#73">73</a>          assertEquals(0, cba.last());
<a name="74" href="#74">74</a>          cba.addFirst(getByteArrayFactory().create(100));
<a name="75" href="#75">75</a>          assertEquals(-200, cba.first());
<a name="76" href="#76">76</a>          assertEquals(0, cba.last());
<a name="77" href="#77">77</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="78" href="#78">78</a>          assertEquals(-200, cba.first());
<a name="79" href="#79">79</a>          assertEquals(100, cba.last());
<a name="80" href="#80">80</a>          cba.removeFirst();
<a name="81" href="#81">81</a>          assertEquals(-100, cba.first());
<a name="82" href="#82">82</a>          assertEquals(100, cba.last());
<a name="83" href="#83">83</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="84" href="#84">84</a>          assertEquals(-100, cba.first());
<a name="85" href="#85">85</a>          assertEquals(200, cba.last());
<a name="86" href="#86">86</a>          cba.removeLast();
<a name="87" href="#87">87</a>          assertEquals(-100, cba.first());
<a name="88" href="#88">88</a>          assertEquals(100, cba.last());
<a name="89" href="#89">89</a>          cba.removeFirst();
<a name="90" href="#90">90</a>          assertEquals(0, cba.first());
<a name="91" href="#91">91</a>          assertEquals(100, cba.last());
<a name="92" href="#92">92</a>          cba.removeFirst();
<a name="93" href="#93">93</a>          assertEquals(100, cba.first());
<a name="94" href="#94">94</a>          assertEquals(100, cba.last());
<a name="95" href="#95">95</a>          cba.addLast(getByteArrayFactory().create(100));
<a name="96" href="#96">96</a>          assertEquals(100, cba.first());
<a name="97" href="#97">97</a>          assertEquals(200, cba.last());
<a name="98" href="#98">98</a>      }
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <strong class="jxr_keyword">private</strong> BufferByteArray wrapString(String string) {
<a name="101" href="#101">101</a>         byte[] bytes = string.getBytes();
<a name="102" href="#102">102</a>         IoBuffer bb = IoBuffer.wrap(bytes);
<a name="103" href="#103">103</a>         BufferByteArray ba = <strong class="jxr_keyword">new</strong> BufferByteArray(bb) {
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>             @Override
<a name="106" href="#106">106</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> free() {
<a name="107" href="#107">107</a>                 addOperation(<strong class="jxr_keyword">this</strong> + <span class="jxr_string">".free()"</span>);
<a name="108" href="#108">108</a>                 <em class="jxr_comment">// Nothing to do.</em>
<a name="109" href="#109">109</a>             }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         };
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">return</strong> ba;
<a name="113" href="#113">113</a>     }
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">private</strong> String toString(ByteArray ba) {
<a name="116" href="#116">116</a>         IoBuffer bb = IoBuffer.allocate(ba.length());
<a name="117" href="#117">117</a>         ba.get(0, bb);
<a name="118" href="#118">118</a>         byte[] bytes = bb.array();
<a name="119" href="#119">119</a>         String string = <strong class="jxr_keyword">new</strong> String(bytes);
<a name="120" href="#120">120</a>         <strong class="jxr_keyword">return</strong> string;
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeStringJoin() <strong class="jxr_keyword">throws</strong> Exception {
<a name="124" href="#124">124</a>         ByteArray ba1 = wrapString(<span class="jxr_string">"Hello"</span>);
<a name="125" href="#125">125</a>         ByteArray ba2 = wrapString(<span class="jxr_string">"MINA"</span>);
<a name="126" href="#126">126</a>         ByteArray ba3 = wrapString(<span class="jxr_string">"World"</span>);
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="129" href="#129">129</a>         cba.addLast(ba1);
<a name="130" href="#130">130</a>         cba.addLast(ba2);
<a name="131" href="#131">131</a>         cba.addLast(ba3);
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         assertEquals(<span class="jxr_string">"HelloMINAWorld"</span>, toString(cba));
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeCursor() <strong class="jxr_keyword">throws</strong> Exception {
<a name="137" href="#137">137</a>         IMocksControl mc = createStrictControl();
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>         ByteArray ba1 = getByteArrayFactory().create(10);
<a name="140" href="#140">140</a>         ByteArray ba2 = getByteArrayFactory().create(10);
<a name="141" href="#141">141</a>         ByteArray ba3 = getByteArrayFactory().create(10);
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="145" href="#145">145</a>         cba.addLast(ba1);
<a name="146" href="#146">146</a>         cba.addLast(ba2);
<a name="147" href="#147">147</a>         cba.addLast(ba3);
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>         CursorListener cl = mc.createMock(CursorListener.<strong class="jxr_keyword">class</strong>);
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         mc.reset();
<a name="152" href="#152">152</a>         mc.replay();
<a name="153" href="#153">153</a>         Cursor cursor = cba.cursor(cl);
<a name="154" href="#154">154</a>         mc.verify();
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         mc.reset();
<a name="157" href="#157">157</a>         cl.enteredFirstComponent(0, ba1);
<a name="158" href="#158">158</a>         mc.replay();
<a name="159" href="#159">159</a>         cursor.get();
<a name="160" href="#160">160</a>         mc.verify();
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         mc.reset();
<a name="163" href="#163">163</a>         mc.replay();
<a name="164" href="#164">164</a>         cursor.setIndex(10);
<a name="165" href="#165">165</a>         mc.verify();
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>         mc.reset();
<a name="168" href="#168">168</a>         cl.enteredNextComponent(10, ba2);
<a name="169" href="#169">169</a>         mc.replay();
<a name="170" href="#170">170</a>         cursor.put((byte) 55);
<a name="171" href="#171">171</a>         mc.verify();
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>         mc.reset();
<a name="174" href="#174">174</a>         mc.replay();
<a name="175" href="#175">175</a>         cursor.setIndex(9);
<a name="176" href="#176">176</a>         mc.verify();
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>         mc.reset();
<a name="179" href="#179">179</a>         cl.enteredPreviousComponent(0, ba1);
<a name="180" href="#180">180</a>         cl.enteredNextComponent(10, ba2);
<a name="181" href="#181">181</a>         mc.replay();
<a name="182" href="#182">182</a>         cursor.putInt(66);
<a name="183" href="#183">183</a>         mc.verify();
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>         mc.reset();
<a name="186" href="#186">186</a>         cl.enteredNextComponent(20, ba3);
<a name="187" href="#187">187</a>         mc.replay();
<a name="188" href="#188">188</a>         cursor.setIndex(29);
<a name="189" href="#189">189</a>         cursor.get();
<a name="190" href="#190">190</a>         mc.verify();
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>         cba.removeLast(); <em class="jxr_comment">// Force cursor to relocate itself.</em>
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>         mc.reset();
<a name="195" href="#195">195</a>         cl.enteredLastComponent(10, ba2);
<a name="196" href="#196">196</a>         mc.replay();
<a name="197" href="#197">197</a>         cursor.setIndex(15);
<a name="198" href="#198">198</a>         cursor.get();
<a name="199" href="#199">199</a>         mc.verify();
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>         mc.reset();
<a name="202" href="#202">202</a>         cl.enteredPreviousComponent(0, ba1);
<a name="203" href="#203">203</a>         mc.replay();
<a name="204" href="#204">204</a>         cursor.setIndex(0);
<a name="205" href="#205">205</a>         cursor.get();
<a name="206" href="#206">206</a>         mc.verify();
<a name="207" href="#207">207</a>     }
<a name="208" href="#208">208</a> 
<a name="209" href="#209">209</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArray() <strong class="jxr_keyword">throws</strong> Exception {
<a name="210" href="#210">210</a>         CompositeByteArray ba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="211" href="#211">211</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i += 100) {
<a name="212" href="#212">212</a>             ba.addLast(getByteArrayFactory().create(100));
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a>         resetOperations();
<a name="215" href="#215">215</a>         testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="216" href="#216">216</a>         testAbsoluteReaderAndWriter(0, 1000, ba, ba);
<a name="217" href="#217">217</a>         assertOperationCountEquals(0);
<a name="218" href="#218">218</a>         Cursor readCursor = ba.cursor();
<a name="219" href="#219">219</a>         Cursor writeCursor = ba.cursor();
<a name="220" href="#220">220</a>         testRelativeReaderAndWriter(1000, readCursor, writeCursor);
<a name="221" href="#221">221</a>         assertOperationCountEquals(0);
<a name="222" href="#222">222</a>     }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayRelativeReaderAndWriter() <strong class="jxr_keyword">throws</strong> Exception {
<a name="225" href="#225">225</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="226" href="#226">226</a>         CompositeByteArrayRelativeReader cbarr = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cba, <strong class="jxr_keyword">true</strong>);
<a name="227" href="#227">227</a>         CompositeByteArrayRelativeWriter cbarw = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cba, getExpander(100), getFlusher(), false);
<a name="228" href="#228">228</a>         resetOperations();
<a name="229" href="#229">229</a>         testRelativeReaderAndWriter(10, cbarr, cbarw);
<a name="230" href="#230">230</a>         assertOperationCountEquals(2);
<a name="231" href="#231">231</a>         resetOperations();
<a name="232" href="#232">232</a>         testRelativeReaderAndWriter(100, cbarr, cbarw);
<a name="233" href="#233">233</a>         assertOperationCountEquals(3);
<a name="234" href="#234">234</a>         resetOperations();
<a name="235" href="#235">235</a>         testRelativeReaderAndWriter(1000, cbarr, cbarw);
<a name="236" href="#236">236</a>         assertOperationCountEquals(30);
<a name="237" href="#237">237</a>         resetOperations();
<a name="238" href="#238">238</a>         testRelativeReaderAndWriter(10000, cbarr, cbarw);
<a name="239" href="#239">239</a>         assertOperationCountEquals(300);
<a name="240" href="#240">240</a>         resetOperations();
<a name="241" href="#241">241</a>         testRelativeReaderAndWriter(90, cbarr, cbarw);
<a name="242" href="#242">242</a>         assertOperationCountEquals(0); <em class="jxr_comment">// Last free doesn't occur, since cursor only moves lazily.</em>
<a name="243" href="#243">243</a>     }
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayRelativeReaderAndWriterWithFlush() <strong class="jxr_keyword">throws</strong> Exception {
<a name="246" href="#246">246</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="247" href="#247">247</a>         CompositeByteArrayRelativeReader cbarr = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cba, <strong class="jxr_keyword">true</strong>);
<a name="248" href="#248">248</a>         CompositeByteArrayRelativeWriter cbarw = <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cba, getExpander(100), getFlusher(), <strong class="jxr_keyword">true</strong>);
<a name="249" href="#249">249</a>         resetOperations();
<a name="250" href="#250">250</a>         testRelativeReaderAndWriter(10, cbarr, cbarw);
<a name="251" href="#251">251</a>         assertOperationCountEquals(2);
<a name="252" href="#252">252</a>         resetOperations();
<a name="253" href="#253">253</a>         testRelativeReaderAndWriter(100, cbarr, cbarw);
<a name="254" href="#254">254</a>         assertOperationCountEquals(4);
<a name="255" href="#255">255</a>         resetOperations();
<a name="256" href="#256">256</a>         testRelativeReaderAndWriter(1000, cbarr, cbarw);
<a name="257" href="#257">257</a>         assertOperationCountEquals(40);
<a name="258" href="#258">258</a>         resetOperations();
<a name="259" href="#259">259</a>         testRelativeReaderAndWriter(10000, cbarr, cbarw);
<a name="260" href="#260">260</a>         assertOperationCountEquals(400);
<a name="261" href="#261">261</a>         resetOperations();
<a name="262" href="#262">262</a>         testRelativeReaderAndWriter(90, cbarr, cbarw);
<a name="263" href="#263">263</a>         assertOperationCountEquals(0); <em class="jxr_comment">// Last free doesn't occur, since cursor only moves lazily.</em>
<a name="264" href="#264">264</a>     }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeRemoveTo() <strong class="jxr_keyword">throws</strong> Exception {
<a name="267" href="#267">267</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="268" href="#268">268</a>         {
<a name="269" href="#269">269</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="270" href="#270">270</a>             resetOperations();
<a name="271" href="#271">271</a>             ByteArray removed = cba.removeTo(0);
<a name="272" href="#272">272</a>             assertEquals(0, removed.first());
<a name="273" href="#273">273</a>             assertEquals(0, removed.last());
<a name="274" href="#274">274</a>             assertEquals(0, cba.first());
<a name="275" href="#275">275</a>             assertEquals(0, cba.last());
<a name="276" href="#276">276</a>             removed.free();
<a name="277" href="#277">277</a>             assertOperationCountEquals(0);
<a name="278" href="#278">278</a>         }
<a name="279" href="#279">279</a>         cba.addLast(getByteArrayFactory().create(100));
<a name="280" href="#280">280</a>         {
<a name="281" href="#281">281</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="282" href="#282">282</a>             resetOperations();
<a name="283" href="#283">283</a>             ByteArray removed = cba.removeTo(0);
<a name="284" href="#284">284</a>             assertEquals(0, removed.first());
<a name="285" href="#285">285</a>             assertEquals(0, removed.last());
<a name="286" href="#286">286</a>             assertEquals(0, cba.first());
<a name="287" href="#287">287</a>             assertEquals(100, cba.last());
<a name="288" href="#288">288</a>             removed.free();
<a name="289" href="#289">289</a>             assertOperationCountEquals(0);
<a name="290" href="#290">290</a>         }
<a name="291" href="#291">291</a>         {
<a name="292" href="#292">292</a>             <em class="jxr_comment">// Remove entire component.</em>
<a name="293" href="#293">293</a>             resetOperations();
<a name="294" href="#294">294</a>             ByteArray removed = cba.removeTo(100);
<a name="295" href="#295">295</a>             assertEquals(0, removed.first());
<a name="296" href="#296">296</a>             assertEquals(100, removed.last());
<a name="297" href="#297">297</a>             assertEquals(100, cba.first());
<a name="298" href="#298">298</a>             assertEquals(100, cba.last());
<a name="299" href="#299">299</a>             removed.free();
<a name="300" href="#300">300</a>             assertOperationCountEquals(1);
<a name="301" href="#301">301</a>         }
<a name="302" href="#302">302</a>         {
<a name="303" href="#303">303</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="304" href="#304">304</a>             resetOperations();
<a name="305" href="#305">305</a>             ByteArray removed = cba.removeTo(100);
<a name="306" href="#306">306</a>             assertEquals(0, removed.first());
<a name="307" href="#307">307</a>             assertEquals(0, removed.last());
<a name="308" href="#308">308</a>             assertEquals(100, cba.first());
<a name="309" href="#309">309</a>             assertEquals(100, cba.last());
<a name="310" href="#310">310</a>             removed.free();
<a name="311" href="#311">311</a>             assertOperationCountEquals(0);
<a name="312" href="#312">312</a>         }
<a name="313" href="#313">313</a>         cba.addLast(getByteArrayFactory().create(100));
<a name="314" href="#314">314</a>         {
<a name="315" href="#315">315</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="316" href="#316">316</a>             resetOperations();
<a name="317" href="#317">317</a>             ByteArray removed = cba.removeTo(100);
<a name="318" href="#318">318</a>             assertEquals(0, removed.first());
<a name="319" href="#319">319</a>             assertEquals(0, removed.last());
<a name="320" href="#320">320</a>             assertEquals(100, cba.first());
<a name="321" href="#321">321</a>             assertEquals(200, cba.last());
<a name="322" href="#322">322</a>             removed.free();
<a name="323" href="#323">323</a>             assertOperationCountEquals(0);
<a name="324" href="#324">324</a>         }
<a name="325" href="#325">325</a>         {
<a name="326" href="#326">326</a>             <em class="jxr_comment">// Remove half a component.</em>
<a name="327" href="#327">327</a>             resetOperations();
<a name="328" href="#328">328</a>             ByteArray removed = cba.removeTo(150);
<a name="329" href="#329">329</a>             assertEquals(0, removed.first());
<a name="330" href="#330">330</a>             assertEquals(50, removed.last());
<a name="331" href="#331">331</a>             assertEquals(150, cba.first());
<a name="332" href="#332">332</a>             assertEquals(200, cba.last());
<a name="333" href="#333">333</a>             removed.free();
<a name="334" href="#334">334</a>             assertOperationCountEquals(0); <em class="jxr_comment">// Doesn't free until component finished.</em>
<a name="335" href="#335">335</a>         }
<a name="336" href="#336">336</a>         {
<a name="337" href="#337">337</a>             <em class="jxr_comment">// Remove nothing.</em>
<a name="338" href="#338">338</a>             resetOperations();
<a name="339" href="#339">339</a>             ByteArray removed = cba.removeTo(150);
<a name="340" href="#340">340</a>             assertEquals(0, removed.first());
<a name="341" href="#341">341</a>             assertEquals(0, removed.last());
<a name="342" href="#342">342</a>             assertEquals(150, cba.first());
<a name="343" href="#343">343</a>             assertEquals(200, cba.last());
<a name="344" href="#344">344</a>             removed.free();
<a name="345" href="#345">345</a>             assertOperationCountEquals(0);
<a name="346" href="#346">346</a>         }
<a name="347" href="#347">347</a>         {
<a name="348" href="#348">348</a>             <em class="jxr_comment">// Remove other half.</em>
<a name="349" href="#349">349</a>             resetOperations();
<a name="350" href="#350">350</a>             ByteArray removed = cba.removeTo(200);
<a name="351" href="#351">351</a>             assertEquals(0, removed.first());
<a name="352" href="#352">352</a>             assertEquals(50, removed.last());
<a name="353" href="#353">353</a>             assertEquals(200, cba.first());
<a name="354" href="#354">354</a>             assertEquals(200, cba.last());
<a name="355" href="#355">355</a>             removed.free();
<a name="356" href="#356">356</a>             assertOperationCountEquals(1); <em class="jxr_comment">// Frees ByteArray behind both buffers.</em>
<a name="357" href="#357">357</a>         }
<a name="358" href="#358">358</a>     }
<a name="359" href="#359">359</a>     
<a name="360" href="#360">360</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArraySlicing() {
<a name="361" href="#361">361</a>         CompositeByteArray cba = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="362" href="#362">362</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="363" href="#363">363</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="364" href="#364">364</a>         cba.addLast(getByteArrayFactory().create(10));
<a name="365" href="#365">365</a>         testByteArraySlicing(cba, 0, 30);
<a name="366" href="#366">366</a>         testByteArraySlicing(cba, 5, 10);
<a name="367" href="#367">367</a>         testByteArraySlicing(cba, 10, 20);
<a name="368" href="#368">368</a>         testByteArraySlicing(cba, 1, 28);
<a name="369" href="#369">369</a>         testByteArraySlicing(cba, 19, 2);
<a name="370" href="#370">370</a>     }
<a name="371" href="#371">371</a>     
<a name="372" href="#372">372</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBufferByteArraySlicing() {
<a name="373" href="#373">373</a>         ByteArray bba = getByteArrayFactory().create(30);
<a name="374" href="#374">374</a>         testByteArraySlicing(bba, 0, 30);
<a name="375" href="#375">375</a>         testByteArraySlicing(bba, 5, 10);
<a name="376" href="#376">376</a>         testByteArraySlicing(bba, 10, 20);
<a name="377" href="#377">377</a>         testByteArraySlicing(bba, 1, 28);
<a name="378" href="#378">378</a>         testByteArraySlicing(bba, 19, 2);
<a name="379" href="#379">379</a>         
<a name="380" href="#380">380</a>     }
<a name="381" href="#381">381</a>     
<a name="382" href="#382">382</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testByteArraySlicing(ByteArray ba, <strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> length) {
<a name="383" href="#383">383</a>         ByteArray slice = ba.slice(start, length);
<a name="384" href="#384">384</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; length; i++) {
<a name="385" href="#385">385</a>             byte b1 = (byte) (i % 67);
<a name="386" href="#386">386</a>             byte b2 = (byte) (i % 36);
<a name="387" href="#387">387</a>             <strong class="jxr_keyword">int</strong> sourceIndex = i + start;
<a name="388" href="#388">388</a>             <strong class="jxr_keyword">int</strong> sliceIndex = i;
<a name="389" href="#389">389</a>             ba.put(sourceIndex, b1);
<a name="390" href="#390">390</a>             assertEquals(b1, ba.get(sourceIndex));
<a name="391" href="#391">391</a>             assertEquals(b1, slice.get(sliceIndex));
<a name="392" href="#392">392</a>             slice.put(sliceIndex, b2);
<a name="393" href="#393">393</a>             assertEquals(b2, ba.get(sourceIndex));
<a name="394" href="#394">394</a>             assertEquals(b2, slice.get(sliceIndex));
<a name="395" href="#395">395</a>         }
<a name="396" href="#396">396</a>     }
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a>     <strong class="jxr_keyword">private</strong> ChunkedExpander getExpander(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> chunkSize) {
<a name="399" href="#399">399</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChunkedExpander(getByteArrayFactory(), chunkSize) {
<a name="400" href="#400">400</a>             @Override
<a name="401" href="#401">401</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> expand(CompositeByteArray cba, <strong class="jxr_keyword">int</strong> minSize) {
<a name="402" href="#402">402</a>                 addOperation(<span class="jxr_string">"ChunkedExpander("</span> + chunkSize + <span class="jxr_string">").expand("</span> + cba + <span class="jxr_string">","</span> + minSize + <span class="jxr_string">")"</span>);
<a name="403" href="#403">403</a>                 <strong class="jxr_keyword">super</strong>.expand(cba, minSize);
<a name="404" href="#404">404</a>             }
<a name="405" href="#405">405</a>         };
<a name="406" href="#406">406</a>     }
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a>     <strong class="jxr_keyword">private</strong> Flusher getFlusher() {
<a name="409" href="#409">409</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter.Flusher() {
<a name="410" href="#410">410</a> 
<a name="411" href="#411">411</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> flush(ByteArray ba) {
<a name="412" href="#412">412</a>                 addOperation(<span class="jxr_string">"Flusher().flush("</span> + ba + <span class="jxr_string">")"</span>);
<a name="413" href="#413">413</a>                 ba.free();
<a name="414" href="#414">414</a>             }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>         };
<a name="417" href="#417">417</a>     }
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>     <strong class="jxr_keyword">private</strong> SimpleByteArrayFactory getByteArrayFactory() {
<a name="420" href="#420">420</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> SimpleByteArrayFactory() {
<a name="421" href="#421">421</a>             @Override
<a name="422" href="#422">422</a>             <strong class="jxr_keyword">public</strong> ByteArray create(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> size) {
<a name="423" href="#423">423</a>                 <strong class="jxr_keyword">if</strong> (size &lt; 0) {
<a name="424" href="#424">424</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="425" href="#425">425</a>                             <span class="jxr_string">"Buffer size must not be negative:"</span> + size);
<a name="426" href="#426">426</a>                 }
<a name="427" href="#427">427</a>                 IoBuffer bb = IoBuffer.allocate(size);
<a name="428" href="#428">428</a>                 ByteArray ba = <strong class="jxr_keyword">new</strong> BufferByteArray(bb) {
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>                     @Override
<a name="431" href="#431">431</a>                     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> free() {
<a name="432" href="#432">432</a>                         addOperation(<strong class="jxr_keyword">this</strong> + <span class="jxr_string">".free()"</span>);
<a name="433" href="#433">433</a>                         <em class="jxr_comment">// Nothing to do.</em>
<a name="434" href="#434">434</a>                     }
<a name="435" href="#435">435</a> 
<a name="436" href="#436">436</a>                 };
<a name="437" href="#437">437</a>                 addOperation(<span class="jxr_string">"SimpleByteArrayFactory().create("</span> + size + <span class="jxr_string">") = "</span> + ba);
<a name="438" href="#438">438</a>                 <strong class="jxr_keyword">return</strong> ba;
<a name="439" href="#439">439</a>             }
<a name="440" href="#440">440</a>         };
<a name="441" href="#441">441</a>     }
<a name="442" href="#442">442</a> 
<a name="443" href="#443">443</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testRelativeReaderAndWriter(<strong class="jxr_keyword">int</strong> length, IoRelativeReader reader, IoRelativeWriter writer) {
<a name="444" href="#444">444</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; length; i++) {
<a name="445" href="#445">445</a>             byte b = (byte) (i % 67);
<a name="446" href="#446">446</a>             writer.put(b);
<a name="447" href="#447">447</a>             assertEquals(b, reader.get());
<a name="448" href="#448">448</a>         }
<a name="449" href="#449">449</a>     }
<a name="450" href="#450">450</a> 
<a name="451" href="#451">451</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testAbsoluteReaderAndWriter(<strong class="jxr_keyword">int</strong> start, <strong class="jxr_keyword">int</strong> length, IoAbsoluteReader reader, IoAbsoluteWriter writer) {
<a name="452" href="#452">452</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = start; i &lt; length; i++) {
<a name="453" href="#453">453</a>             byte b = (byte) (i % 67);
<a name="454" href="#454">454</a>             writer.put(i, b);
<a name="455" href="#455">455</a>             assertEquals(b, reader.get(i));
<a name="456" href="#456">456</a>         }
<a name="457" href="#457">457</a>     }
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testByteArrayPrimitiveAccess() {
<a name="460" href="#460">460</a>         ByteArray bbaBig = getByteArrayFactory().create(1000);
<a name="461" href="#461">461</a>         bbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="462" href="#462">462</a>         testPrimitiveAccess(bbaBig.cursor(), bbaBig.cursor());
<a name="463" href="#463">463</a> 
<a name="464" href="#464">464</a>         ByteArray bbaLittle = getByteArrayFactory().create(1000);
<a name="465" href="#465">465</a>         bbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="466" href="#466">466</a>         testPrimitiveAccess(bbaLittle.cursor(), bbaLittle.cursor());
<a name="467" href="#467">467</a>     }
<a name="468" href="#468">468</a> 
<a name="469" href="#469">469</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testByteArrayBufferAccess() {
<a name="470" href="#470">470</a>         ByteArray ba = getByteArrayFactory().create(1);
<a name="471" href="#471">471</a>         ba.put(0, (byte) 99);
<a name="472" href="#472">472</a>         IoBuffer bb = IoBuffer.allocate(2);
<a name="473" href="#473">473</a>         
<a name="474" href="#474">474</a>         bb.clear();
<a name="475" href="#475">475</a>         Cursor cursor = ba.cursor();
<a name="476" href="#476">476</a>         assertEquals(0, cursor.getIndex());
<a name="477" href="#477">477</a>         assertEquals(1, cursor.getRemaining());
<a name="478" href="#478">478</a>         assertEquals(0, bb.position());
<a name="479" href="#479">479</a>         assertEquals(2, bb.remaining());
<a name="480" href="#480">480</a>         cursor.get(bb);
<a name="481" href="#481">481</a>         assertEquals(1, cursor.getIndex());
<a name="482" href="#482">482</a>         assertEquals(0, cursor.getRemaining());
<a name="483" href="#483">483</a>         assertEquals(1, bb.position());
<a name="484" href="#484">484</a>         assertEquals(1, bb.remaining());
<a name="485" href="#485">485</a>     }
<a name="486" href="#486">486</a>     
<a name="487" href="#487">487</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayPrimitiveAccess() {
<a name="488" href="#488">488</a>         CompositeByteArray cbaBig = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="489" href="#489">489</a>         cbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="490" href="#490">490</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="491" href="#491">491</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="492" href="#492">492</a>             component.order(ByteOrder.BIG_ENDIAN);
<a name="493" href="#493">493</a>             cbaBig.addLast(component);
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a>         testPrimitiveAccess(cbaBig.cursor(), cbaBig.cursor());
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>         CompositeByteArray cbaLittle = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="498" href="#498">498</a>         cbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="499" href="#499">499</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="500" href="#500">500</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="501" href="#501">501</a>             component.order(ByteOrder.LITTLE_ENDIAN);
<a name="502" href="#502">502</a>             cbaLittle.addLast(component);
<a name="503" href="#503">503</a>         }
<a name="504" href="#504">504</a>         testPrimitiveAccess(cbaLittle.cursor(), cbaLittle.cursor());
<a name="505" href="#505">505</a>     }
<a name="506" href="#506">506</a> 
<a name="507" href="#507">507</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testCompositeByteArrayWrapperPrimitiveAccess() {
<a name="508" href="#508">508</a>         CompositeByteArray cbaBig = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="509" href="#509">509</a>         cbaBig.order(ByteOrder.BIG_ENDIAN);
<a name="510" href="#510">510</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="511" href="#511">511</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="512" href="#512">512</a>             component.order(ByteOrder.BIG_ENDIAN);
<a name="513" href="#513">513</a>             cbaBig.addLast(component);
<a name="514" href="#514">514</a>         }
<a name="515" href="#515">515</a>         testPrimitiveAccess(<strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cbaBig, getExpander(10), getFlusher(), false), <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cbaBig, <strong class="jxr_keyword">true</strong>));
<a name="516" href="#516">516</a> 
<a name="517" href="#517">517</a>         CompositeByteArray cbaLittle = <strong class="jxr_keyword">new</strong> CompositeByteArray();
<a name="518" href="#518">518</a>         cbaLittle.order(ByteOrder.LITTLE_ENDIAN);
<a name="519" href="#519">519</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 1000; i++) {
<a name="520" href="#520">520</a>             ByteArray component = getByteArrayFactory().create(1);
<a name="521" href="#521">521</a>             component.order(ByteOrder.LITTLE_ENDIAN);
<a name="522" href="#522">522</a>             cbaLittle.addLast(component);
<a name="523" href="#523">523</a>         }
<a name="524" href="#524">524</a>         testPrimitiveAccess(<strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeWriter(cbaLittle, getExpander(10), getFlusher(), false), <strong class="jxr_keyword">new</strong> CompositeByteArrayRelativeReader(cbaLittle, <strong class="jxr_keyword">true</strong>));
<a name="525" href="#525">525</a>     }
<a name="526" href="#526">526</a> 
<a name="527" href="#527">527</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> testPrimitiveAccess(IoRelativeWriter write, IoRelativeReader read) {
<a name="528" href="#528">528</a>         byte b = (byte) 0x12;
<a name="529" href="#529">529</a>         write.put(b);
<a name="530" href="#530">530</a>         assertEquals(b, read.get());
<a name="531" href="#531">531</a> 
<a name="532" href="#532">532</a>         <strong class="jxr_keyword">short</strong> s = (<strong class="jxr_keyword">short</strong>) 0x12;
<a name="533" href="#533">533</a>         write.putShort(s);
<a name="534" href="#534">534</a>         assertEquals(s, read.getShort());
<a name="535" href="#535">535</a> 
<a name="536" href="#536">536</a>         <strong class="jxr_keyword">int</strong> i = 0x12345678;
<a name="537" href="#537">537</a>         write.putInt(i);
<a name="538" href="#538">538</a>         assertEquals(i, read.getInt());
<a name="539" href="#539">539</a> 
<a name="540" href="#540">540</a>         <strong class="jxr_keyword">long</strong> l = 0x1234567890123456L;
<a name="541" href="#541">541</a>         write.putLong(l);
<a name="542" href="#542">542</a>         assertEquals(l, read.getLong());
<a name="543" href="#543">543</a> 
<a name="544" href="#544">544</a>         <strong class="jxr_keyword">float</strong> f = Float.intBitsToFloat(i);
<a name="545" href="#545">545</a>         write.putFloat(f);
<a name="546" href="#546">546</a>         assertEquals(f, read.getFloat());
<a name="547" href="#547">547</a> 
<a name="548" href="#548">548</a>         <strong class="jxr_keyword">double</strong> d = Double.longBitsToDouble(l);
<a name="549" href="#549">549</a>         write.putDouble(d);
<a name="550" href="#550">550</a>         assertEquals(d, read.getDouble());
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a>         <strong class="jxr_keyword">char</strong> c = (<strong class="jxr_keyword">char</strong>) 0x1234;
<a name="553" href="#553">553</a>         write.putChar(c);
<a name="554" href="#554">554</a>         assertEquals(c, read.getChar());
<a name="555" href="#555">555</a>     }
<a name="556" href="#556">556</a> 
<a name="557" href="#557">557</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

