<!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=ISO-8859-1" /><title>ByteBufferHexDumper xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/common/ByteBufferHexDumper.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: ByteBufferHexDumper.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../org/apache/mina/common/package-summary.html">org.apache.mina.common</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <em>/**<em>*</em></em>
<a name="24" href="#24">24</a>  <em> * Provides utility methods for ByteBuffers.</em>
<a name="25" href="#25">25</a>  <em> * </em>
<a name="26" href="#26">26</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="27" href="#27">27</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="28" href="#28">28</a>  <em> */</em>
<a name="29" href="#29">29</a>  <strong>class</strong> <a href="../../../../org/apache/mina/common/ByteBufferHexDumper.html">ByteBufferHexDumper</a>
<a name="30" href="#30">30</a>  {
<a name="31" href="#31">31</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> byte[] highDigits;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> byte[] lowDigits;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>      <em class="comment">// initialize lookup tables</em>
<a name="36" href="#36">36</a>      <strong>static</strong>
<a name="37" href="#37">37</a>      {
<a name="38" href="#38">38</a>          <strong>final</strong> byte[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
<a name="39" href="#39">39</a>                                 '9', 'A', 'B', 'C', 'D', 'E', 'F' };
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>          <strong>int</strong> i;
<a name="42" href="#42">42</a>          byte[] high = <strong>new</strong> byte[ 256 ];
<a name="43" href="#43">43</a>          byte[] low = <strong>new</strong> byte[ 256 ];
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>          <strong>for</strong>( i = 0; i &lt; 256; i++ )
<a name="46" href="#46">46</a>          {
<a name="47" href="#47">47</a>              high[ i ] = digits[ i >>> 4 ];
<a name="48" href="#48">48</a>              low[ i ] = digits[ i &amp; 0x0F ];
<a name="49" href="#49">49</a>          }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>          highDigits = high;
<a name="52" href="#52">52</a>          lowDigits = low;
<a name="53" href="#53">53</a>      }
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>      <strong>static</strong> String getHexdump( ByteBuffer in )
<a name="56" href="#56">56</a>      {
<a name="57" href="#57">57</a>          <strong>int</strong> size = in.remaining();
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>          <strong>if</strong>( size == 0 )
<a name="60" href="#60">60</a>          {
<a name="61" href="#61">61</a>              <strong>return</strong> <span class="string">"empty"</span>;
<a name="62" href="#62">62</a>          }
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>          StringBuffer out = <strong>new</strong> StringBuffer( ( in.remaining() * 3 ) - 1 );
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>          <strong>int</strong> mark = in.position();
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>          <em class="comment">// fill the first</em>
<a name="69" href="#69">69</a>          <strong>int</strong> byteValue = in.get() &amp; 0xFF;
<a name="70" href="#70">70</a>          out.append( ( <strong>char</strong> ) highDigits[ byteValue ] );
<a name="71" href="#71">71</a>          out.append( ( <strong>char</strong> ) lowDigits[ byteValue ] );
<a name="72" href="#72">72</a>          size--;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>          <em class="comment">// and the others, too</em>
<a name="75" href="#75">75</a>          <strong>for</strong>( ; size > 0; size-- )
<a name="76" href="#76">76</a>          {
<a name="77" href="#77">77</a>              out.append( ' ' );
<a name="78" href="#78">78</a>              byteValue = in.get() &amp; 0xFF;
<a name="79" href="#79">79</a>              out.append( ( <strong>char</strong> ) highDigits[ byteValue ] );
<a name="80" href="#80">80</a>              out.append( ( <strong>char</strong> ) lowDigits[ byteValue ] );
<a name="81" href="#81">81</a>          }
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>          in.position( mark );
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>          <strong>return</strong> out.toString();
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

