<!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>DemuxingProtocolHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/protocol/handler/DemuxingProtocolHandler.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: DemuxingProtocolHandler.java 332218 2005-11-10 03:52:42Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> */</em>
<a name="4" href="#4">4</a>   <strong>package</strong> <a href="../../../../../org/apache/mina/protocol/handler/package-summary.html">org.apache.mina.protocol.handler</a>;
<a name="5" href="#5">5</a>   
<a name="6" href="#6">6</a>   <strong>import</strong> java.util.Collections;
<a name="7" href="#7">7</a>   <strong>import</strong> java.util.HashMap;
<a name="8" href="#8">8</a>   <strong>import</strong> java.util.HashSet;
<a name="9" href="#9">9</a>   <strong>import</strong> java.util.Map;
<a name="10" href="#10">10</a>  <strong>import</strong> java.util.Set;
<a name="11" href="#11">11</a>  
<a name="12" href="#12">12</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolHandler;
<a name="13" href="#13">13</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolHandlerAdapter;
<a name="14" href="#14">14</a>  <strong>import</strong> org.apache.mina.protocol.ProtocolSession;
<a name="15" href="#15">15</a>  
<a name="16" href="#16">16</a>  <em>/**<em>*</em></em>
<a name="17" href="#17">17</a>  <em> * A {@link ProtocolHandler} that demuxes &lt;code>messageReceived&lt;/code> events</em>
<a name="18" href="#18">18</a>  <em> * to the appropriate {@link MessageHandler}.</em>
<a name="19" href="#19">19</a>  <em> * </em>
<a name="20" href="#20">20</a>  <em> * You can freely register and deregister {@link MessageHandler}s using</em>
<a name="21" href="#21">21</a>  <em> * {@link #addMessageHandler(Class, MessageHandler)} and</em>
<a name="22" href="#22">22</a>  <em> * {@link #removeMessageHandler(Class)}.</em>
<a name="23" href="#23">23</a>  <em> * </em>
<a name="24" href="#24">24</a>  <em> * @author The Apache Directory Project</em>
<a name="25" href="#25">25</a>  <em> * @version $Rev: 332218 $, $Date: 2005-11-10 12:52:42 +0900 $</em>
<a name="26" href="#26">26</a>  <em> */</em>
<a name="27" href="#27">27</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/protocol/handler/DemuxingProtocolHandler.html">DemuxingProtocolHandler</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/protocol/ProtocolHandlerAdapter.html">ProtocolHandlerAdapter</a>
<a name="28" href="#28">28</a>  {
<a name="29" href="#29">29</a>      <strong>private</strong> <strong>final</strong> Map type2handler = <strong>new</strong> HashMap();
<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>     * Creates a new instance with no registered {@link MessageHandler}s.</em>
<a name="33" href="#33">33</a>  <em>     */</em>
<a name="34" href="#34">34</a>      <strong>protected</strong> <a href="../../../../../org/apache/mina/protocol/handler/DemuxingProtocolHandler.html">DemuxingProtocolHandler</a>()
<a name="35" href="#35">35</a>      {
<a name="36" href="#36">36</a>      }
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <em>/**<em>*</em></em>
<a name="39" href="#39">39</a>  <em>     * Registers a {@link MessageHandler} that receives the messages of</em>
<a name="40" href="#40">40</a>  <em>     * the specified &lt;code>type&lt;/code>.</em>
<a name="41" href="#41">41</a>  <em>     * </em>
<a name="42" href="#42">42</a>  <em>     * @return the old handler if there is already a registered handler for</em>
<a name="43" href="#43">43</a>  <em>     *         the specified &lt;tt>type&lt;/tt>.  &lt;tt>null&lt;/tt> otherwise.</em>
<a name="44" href="#44">44</a>  <em>     */</em>
<a name="45" href="#45">45</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> addMessageHandler( Class type, MessageHandler handler )
<a name="46" href="#46">46</a>      {
<a name="47" href="#47">47</a>          <strong>synchronized</strong>( type2handler )
<a name="48" href="#48">48</a>          {
<a name="49" href="#49">49</a>              <strong>return</strong> ( MessageHandler ) type2handler.put( type, handler );
<a name="50" href="#50">50</a>          }
<a name="51" href="#51">51</a>      }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <em>/**<em>*</em></em>
<a name="54" href="#54">54</a>  <em>     * Deregisters a {@link MessageHandler} that receives the messages of</em>
<a name="55" href="#55">55</a>  <em>     * the specified &lt;code>type&lt;/code>.</em>
<a name="56" href="#56">56</a>  <em>     * </em>
<a name="57" href="#57">57</a>  <em>     * @return the removed handler if successfully removed.  &lt;tt>null&lt;/tt> otherwise.</em>
<a name="58" href="#58">58</a>  <em>     */</em>
<a name="59" href="#59">59</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> removeMessageHandler( Class type )
<a name="60" href="#60">60</a>      {
<a name="61" href="#61">61</a>          <strong>synchronized</strong>( type2handler )
<a name="62" href="#62">62</a>          {
<a name="63" href="#63">63</a>              <strong>return</strong> (MessageHandler) type2handler.remove( type );
<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>      <em>/**<em>*</em></em>
<a name="68" href="#68">68</a>  <em>     * Returns the {@link MessageHandler} which is registered to process</em>
<a name="69" href="#69">69</a>  <em>     * the specified &lt;code>type&lt;/code>. </em>
<a name="70" href="#70">70</a>  <em>     */</em>
<a name="71" href="#71">71</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> getMessageHandler( Class type )
<a name="72" href="#72">72</a>      {
<a name="73" href="#73">73</a>          <strong>return</strong> ( MessageHandler ) type2handler.get( type );
<a name="74" href="#74">74</a>      }
<a name="75" href="#75">75</a>      
<a name="76" href="#76">76</a>      <em>/**<em>*</em></em>
<a name="77" href="#77">77</a>  <em>     * Returns the {@link Map} which contains all messageType-{@link MessageHandler}</em>
<a name="78" href="#78">78</a>  <em>     * pairs registered to this handler.</em>
<a name="79" href="#79">79</a>  <em>     */</em>
<a name="80" href="#80">80</a>      <strong>public</strong> Map getMessageHandlerMap()
<a name="81" href="#81">81</a>      {
<a name="82" href="#82">82</a>          <strong>return</strong> Collections.unmodifiableMap( type2handler );
<a name="83" href="#83">83</a>      }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>      <em>/**<em>*</em></em>
<a name="86" href="#86">86</a>  <em>     * Forwards the received events into the appropriate {@link MessageHandler}</em>
<a name="87" href="#87">87</a>  <em>     * which is registered by {@link #addMessageHandler(Class, MessageHandler)}.</em>
<a name="88" href="#88">88</a>  <em>     */</em>
<a name="89" href="#89">89</a>      <strong>public</strong> <strong>void</strong> messageReceived( ProtocolSession session, Object message ) throws Exception
<a name="90" href="#90">90</a>      {
<a name="91" href="#91">91</a>          <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> handler = findHandler( message.getClass() );
<a name="92" href="#92">92</a>          <strong>if</strong>( handler != <strong>null</strong> )
<a name="93" href="#93">93</a>          {
<a name="94" href="#94">94</a>              handler.messageReceived( session, message );
<a name="95" href="#95">95</a>          }
<a name="96" href="#96">96</a>          <strong>else</strong>
<a name="97" href="#97">97</a>          {
<a name="98" href="#98">98</a>              <strong>throw</strong> <strong>new</strong> <a href="../../../../../org/apache/mina/protocol/handler/UnknownMessageTypeException.html">UnknownMessageTypeException</a>(
<a name="99" href="#99">99</a>                      <span class="string">"No message handler found for message: "</span> + message );
<a name="100" href="#100">100</a>         }
<a name="101" href="#101">101</a>     }
<a name="102" href="#102">102</a> 
<a name="103" href="#103">103</a>     <strong>private</strong> <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> findHandler( Class type )
<a name="104" href="#104">104</a>     {
<a name="105" href="#105">105</a>         <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> handler = ( MessageHandler ) type2handler.get( type );
<a name="106" href="#106">106</a>         <strong>if</strong>( handler == <strong>null</strong> )
<a name="107" href="#107">107</a>         {
<a name="108" href="#108">108</a>             handler = findHandler( type, <strong>new</strong> HashSet() );
<a name="109" href="#109">109</a>         }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         <strong>return</strong> handler;
<a name="112" href="#112">112</a>     }
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>     <strong>private</strong> <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> findHandler( Class type, Set triedClasses )
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         <a href="../../../../../org/apache/mina/protocol/handler/MessageHandler.html">MessageHandler</a> handler;
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>         <strong>if</strong>( triedClasses.contains( type ) )
<a name="119" href="#119">119</a>             <strong>return</strong> <strong>null</strong>;
<a name="120" href="#120">120</a>         triedClasses.add( type );
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>         handler = ( MessageHandler ) type2handler.get( type );
<a name="123" href="#123">123</a>         <strong>if</strong>( handler == <strong>null</strong> )
<a name="124" href="#124">124</a>         {
<a name="125" href="#125">125</a>             handler = findHandler( type, triedClasses );
<a name="126" href="#126">126</a>             <strong>if</strong>( handler != <strong>null</strong> )
<a name="127" href="#127">127</a>                 <strong>return</strong> handler;
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>             Class[] interfaces = type.getInterfaces();
<a name="130" href="#130">130</a>             <strong>for</strong>( <strong>int</strong> i = 0; i &lt; <strong>int</strong>erfaces.length; i ++ )
<a name="131" href="#131">131</a>             {
<a name="132" href="#132">132</a>                 handler = findHandler( interfaces[ i ], triedClasses );
<a name="133" href="#133">133</a>                 <strong>if</strong>( handler != <strong>null</strong> )
<a name="134" href="#134">134</a>                     <strong>return</strong> handler;
<a name="135" href="#135">135</a>             }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>             <strong>return</strong> <strong>null</strong>;
<a name="138" href="#138">138</a>         }
<a name="139" href="#139">139</a>         <strong>else</strong>
<a name="140" href="#140">140</a>             <strong>return</strong> handler;
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

