<!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>ResultMessageEncoder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/mina/examples/sumup/codec/ResultMessageEncoder.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: ResultMessageEncoder.java 327113 2005-10-21 06:59:15Z 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/sumup/codec/package-summary.html">org.apache.mina.examples.sumup.codec</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.util.Collections;
<a name="22" href="#22">22</a>  <strong>import</strong> java.util.HashSet;
<a name="23" href="#23">23</a>  <strong>import</strong> java.util.Set;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.AbstractMessage;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.examples.sumup.message.ResultMessage;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.mina.protocol.codec.MessageEncoder;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <em>/**<em>*</em></em>
<a name="32" href="#32">32</a>  <em> * A {@link MessageEncoder} that encodes {@link ResultMessage}.</em>
<a name="33" href="#33">33</a>  <em> *</em>
<a name="34" href="#34">34</a>  <em> * @author The Apache Directory Project</em>
<a name="35" href="#35">35</a>  <em> * @version $Rev: 327113 $, $Date: 2005-10-21 15:59:15 +0900 $</em>
<a name="36" href="#36">36</a>  <em> */</em>
<a name="37" href="#37">37</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/ResultMessageEncoder.html">ResultMessageEncoder</a> <strong>extends</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/AbstractMessageEncoder.html">AbstractMessageEncoder</a>
<a name="38" href="#38">38</a>  {
<a name="39" href="#39">39</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> Set TYPES;
<a name="40" href="#40">40</a>      
<a name="41" href="#41">41</a>      <strong>static</strong>
<a name="42" href="#42">42</a>      {
<a name="43" href="#43">43</a>          Set types = <strong>new</strong> HashSet();
<a name="44" href="#44">44</a>          types.add( ResultMessage.<strong>class</strong> );
<a name="45" href="#45">45</a>          TYPES = Collections.unmodifiableSet( types );
<a name="46" href="#46">46</a>      }
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      <strong>public</strong> <a href="../../../../../../org/apache/mina/examples/sumup/codec/ResultMessageEncoder.html">ResultMessageEncoder</a>()
<a name="49" href="#49">49</a>      {
<a name="50" href="#50">50</a>          <strong>super</strong>( Constants.RESULT );
<a name="51" href="#51">51</a>      }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <strong>protected</strong> <strong>void</strong> encodeBody( ProtocolSession session, AbstractMessage message, ByteBuffer out )
<a name="54" href="#54">54</a>      {
<a name="55" href="#55">55</a>          <a href="../../../../../../org/apache/mina/examples/sumup/message/ResultMessage.html">ResultMessage</a> m = ( ResultMessage ) message;
<a name="56" href="#56">56</a>          <strong>if</strong>( m.isOk() )
<a name="57" href="#57">57</a>          {
<a name="58" href="#58">58</a>              out.putShort( ( <strong>short</strong> ) Constants.RESULT_OK );
<a name="59" href="#59">59</a>              out.putInt( m.getValue() );
<a name="60" href="#60">60</a>          }
<a name="61" href="#61">61</a>          <strong>else</strong>
<a name="62" href="#62">62</a>          {
<a name="63" href="#63">63</a>              out.putShort( ( <strong>short</strong> ) Constants.RESULT_ERROR );
<a name="64" href="#64">64</a>          }
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong>public</strong> Set getMessageTypes()
<a name="68" href="#68">68</a>      {
<a name="69" href="#69">69</a>          <strong>return</strong> TYPES;
<a name="70" href="#70">70</a>      }
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

