<!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>TextLineEncoder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/reverser/TextLineEncoder.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: TextLineEncoder.java 123500 2004-12-28 13:11:05Z 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/examples/reverser/package-summary.html">org.apache.mina.examples.reverser</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>  <strong>import</strong> org.apache.mina.protocol.ProtocolEncoder;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolEncoderOutput;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolViolationException;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em>/**<em>*</em></em>
<a name="28" href="#28">28</a>  <em> * Encodes a string into a text line which ends with &lt;code>"\r\n"&lt;/code>.</em>
<a name="29" href="#29">29</a>  <em> * </em>
<a name="30" href="#30">30</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="31" href="#31">31</a>  <em> * @version $Rev: 123500 $, $Date: 2004-12-28 22:11:05 +0900 (화, 28 12월 2004) $,</em>
<a name="32" href="#32">32</a>  <em> */</em>
<a name="33" href="#33">33</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/reverser/TextLineEncoder.html">TextLineEncoder</a> implements ProtocolEncoder
<a name="34" href="#34">34</a>  {
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>      <strong>public</strong> <strong>void</strong> encode( ProtocolSession session, Object message,
<a name="37" href="#37">37</a>                         ProtocolEncoderOutput out )
<a name="38" href="#38">38</a>              throws ProtocolViolationException
<a name="39" href="#39">39</a>      {
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>          String val = message.toString();
<a name="42" href="#42">42</a>          <em class="comment">// Don't accept too long strings.</em>
<a name="43" href="#43">43</a>          <strong>if</strong>( val.length() > 256 )
<a name="44" href="#44">44</a>          {
<a name="45" href="#45">45</a>              <strong>throw</strong> <strong>new</strong> ProtocolViolationException(
<a name="46" href="#46">46</a>                                                    <span class="string">"Cannot encode too long string."</span> );
<a name="47" href="#47">47</a>          }
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>          val += <span class="string">"\r\n"</span>;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>          ByteBuffer buf = ByteBuffer.allocate( val.length() );
<a name="52" href="#52">52</a>          <strong>for</strong>( <strong>int</strong> i = 0; i &lt; val.length(); i++ )
<a name="53" href="#53">53</a>          {
<a name="54" href="#54">54</a>              buf.put( ( byte ) val.charAt( i ) );
<a name="55" href="#55">55</a>          }
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>          buf.flip();
<a name="58" href="#58">58</a>          out.write( buf );
<a name="59" href="#59">59</a>      }
<a name="60" href="#60">60</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

