<!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>DemuxingIoHandler xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/handler/demux/DemuxingIoHandler.html">View Javadoc</a></div><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.handler.demux;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentHashMap;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoHandler;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.service.IoHandlerAdapter;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.UnknownMessageTypeException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.util.IdentityHashSet;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * A {@link IoHandler} that demuxes &lt;code&gt;messageReceived&lt;/code&gt; events</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * to the appropriate {@link MessageHandler}.</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * You can freely register and deregister {@link MessageHandler}s using</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * {@link #addReceivedMessageHandler(Class, MessageHandler)} and</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * {@link #removeReceivedMessageHandler(Class)}.</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * When &lt;code&gt;message&lt;/code&gt; is received through a call to</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * {@link #messageReceived(IoSession, Object)} the class of the</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * &lt;code&gt;message&lt;/code&gt; object will be used to find a {@link MessageHandler} for</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * that particular message type. If no {@link MessageHandler} instance can be</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * found for the immediate class (i.e. &lt;code&gt;message.getClass()&lt;/code&gt;) the</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * interfaces implemented by the immediate class will be searched in depth-first</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * order. If no match can be found for any of the interfaces the search will be</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * repeated recursively for the superclass of the immediate class</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * (i.e. &lt;code&gt;message.getClass().getSuperclass()&lt;/code&gt;).</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * Consider the following type hierarchy (&lt;code&gt;Cx&lt;/code&gt; are classes while</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * &lt;code&gt;Ix&lt;/code&gt; are interfaces):</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> *     C3 - I7 - I9</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> *      |    |   /\</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> *      |   I8  I3 I4</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> *      |</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> *     C2 - I5 - I6</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> *      |</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> *     C1 - I1 - I2 - I4</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> *      |         |</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> *      |        I3</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> *    Object</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * When &lt;code&gt;message&lt;/code&gt; is of type &lt;code&gt;C3&lt;/code&gt; this hierarchy will be</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * searched in the following order:</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> * &lt;code&gt;C3, I7, I8, I9, I3, I4, C2, I5, I6, C1, I1, I2, I3, I4, Object&lt;/code&gt;.</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * For efficiency searches will be cached. Calls to</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * {@link #addReceivedMessageHandler(Class, MessageHandler)} and</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> * {@link #removeReceivedMessageHandler(Class)} clear this cache.</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> *</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> * @version $Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (jeu, 26 jun 2008) $</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> */</em>
<a name="80" href="#80">80</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/handler/demux/DemuxingIoHandler.html">DemuxingIoHandler</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/core/service/IoHandlerAdapter.html">IoHandlerAdapter</a> {
<a name="81" href="#81">81</a>      
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; receivedMessageHandlerCache =
<a name="83" href="#83">83</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; receivedMessageHandlers =
<a name="86" href="#86">86</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; sentMessageHandlerCache =
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; sentMessageHandlers =
<a name="92" href="#92">92</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt; exceptionHandlerCache =
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt;();
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt; exceptionHandlers =
<a name="98" href="#98">98</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt;();
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>     <em class="jxr_javadoccomment">/**</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * Creates a new instance with no registered {@link MessageHandler}s.</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/handler/demux/DemuxingIoHandler.html">DemuxingIoHandler</a>() {
<a name="104" href="#104">104</a>     }
<a name="105" href="#105">105</a> 
<a name="106" href="#106">106</a>     <em class="jxr_javadoccomment">/**</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * Registers a {@link MessageHandler} that handles the received messages of</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     *</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @return the old handler if there is already a registered handler for</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     *         the specified &lt;tt&gt;type&lt;/tt&gt;.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
<a name="113" href="#113">113</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="114" href="#114">114</a>     <strong class="jxr_keyword">public</strong> &lt;E&gt; MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; addReceivedMessageHandler(Class&lt;E&gt; type,
<a name="115" href="#115">115</a>             MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; handler) {
<a name="116" href="#116">116</a>         receivedMessageHandlerCache.clear();
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) receivedMessageHandlers.put(type, handler);
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <em class="jxr_javadoccomment">/**</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * Deregisters a {@link MessageHandler} that handles the received messages</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * of the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     *</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @return the removed handler if successfully removed.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
<a name="126" href="#126">126</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> &lt;E&gt; MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; removeReceivedMessageHandler(Class&lt;E&gt; type) {
<a name="128" href="#128">128</a>         receivedMessageHandlerCache.clear();
<a name="129" href="#129">129</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) receivedMessageHandlers.remove(type);
<a name="130" href="#130">130</a>     }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>     <em class="jxr_javadoccomment">/**</em>
<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * Registers a {@link MessageHandler} that handles the sent messages of the</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     *</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @return the old handler if there is already a registered handler for</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     *         the specified &lt;tt&gt;type&lt;/tt&gt;.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     */</em>
<a name="139" href="#139">139</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> &lt;E&gt; MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; addSentMessageHandler(Class&lt;E&gt; type,
<a name="141" href="#141">141</a>             MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; handler) {
<a name="142" href="#142">142</a>         sentMessageHandlerCache.clear();
<a name="143" href="#143">143</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) sentMessageHandlers.put(type, handler);
<a name="144" href="#144">144</a>     }
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>     <em class="jxr_javadoccomment">/**</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * Deregisters a {@link MessageHandler} that handles the sent messages of</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     *</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * @return the removed handler if successfully removed.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
<a name="152" href="#152">152</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> &lt;E&gt; MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; removeSentMessageHandler(Class&lt;E&gt; type) {
<a name="154" href="#154">154</a>         sentMessageHandlerCache.clear();
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) sentMessageHandlers.remove(type);
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a>     
<a name="158" href="#158">158</a>     <em class="jxr_javadoccomment">/**</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * Registers a {@link MessageHandler} that receives the messages of</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     *</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * @return the old handler if there is already a registered handler for</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     *         the specified &lt;tt&gt;type&lt;/tt&gt;.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     */</em>
<a name="165" href="#165">165</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> &lt;E <strong class="jxr_keyword">extends</strong> Throwable&gt; 
<a name="167" href="#167">167</a>     ExceptionHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; addExceptionHandler(
<a name="168" href="#168">168</a>             Class&lt;E&gt; type, ExceptionHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; handler) {
<a name="169" href="#169">169</a>         exceptionHandlerCache.clear();
<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> (ExceptionHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) exceptionHandlers.put(type, handler);
<a name="171" href="#171">171</a>     }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>     <em class="jxr_javadoccomment">/**</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * Deregisters a {@link MessageHandler} that receives the messages of</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     *</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @return the removed handler if successfully removed.  &lt;tt&gt;null&lt;/tt&gt; otherwise.</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     */</em>
<a name="179" href="#179">179</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> &lt;E <strong class="jxr_keyword">extends</strong> Throwable&gt; ExceptionHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;
<a name="181" href="#181">181</a>     removeExceptionHandler(Class&lt;E&gt; type) {
<a name="182" href="#182">182</a>         exceptionHandlerCache.clear();
<a name="183" href="#183">183</a>         <strong class="jxr_keyword">return</strong> (ExceptionHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) exceptionHandlers.remove(type);
<a name="184" href="#184">184</a>     }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>     <em class="jxr_javadoccomment">/**</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * Returns the {@link MessageHandler} which is registered to process</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * the specified &lt;code&gt;type&lt;/code&gt;.</em>
<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
<a name="190" href="#190">190</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> &lt;E&gt; MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt; getMessageHandler(Class&lt;E&gt; type) {
<a name="192" href="#192">192</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;? <strong class="jxr_keyword">super</strong> E&gt;) receivedMessageHandlers.get(type);
<a name="193" href="#193">193</a>     }
<a name="194" href="#194">194</a> 
<a name="195" href="#195">195</a>     <em class="jxr_javadoccomment">/**</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * Returns the {@link Map} which contains all messageType-{@link MessageHandler}</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * pairs registered to this handler for received messages.</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
<a name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; getReceivedMessageHandlerMap() {
<a name="200" href="#200">200</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableMap(receivedMessageHandlers);
<a name="201" href="#201">201</a>     }
<a name="202" href="#202">202</a> 
<a name="203" href="#203">203</a>     <em class="jxr_javadoccomment">/**</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * Returns the {@link Map} which contains all messageType-{@link MessageHandler}</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * pairs registered to this handler for sent messages.</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     */</em>
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> Map&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt; getSentMessageHandlerMap() {
<a name="208" href="#208">208</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableMap(sentMessageHandlers);
<a name="209" href="#209">209</a>     }
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>     <em class="jxr_javadoccomment">/**</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * Returns the {@link Map} which contains all messageType-{@link MessageHandler}</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * pairs registered to this handler.</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     */</em>
<a name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> Map&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt; getExceptionHandlerMap() {
<a name="216" href="#216">216</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableMap(exceptionHandlers);
<a name="217" href="#217">217</a>     }
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * Forwards the received events into the appropriate {@link MessageHandler}</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * which is registered by {@link #addReceivedMessageHandler(Class, MessageHandler)}.</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     */</em>
<a name="223" href="#223">223</a>     @Override
<a name="224" href="#224">224</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> messageReceived(<a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, Object message)
<a name="225" href="#225">225</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="226" href="#226">226</a>         MessageHandler&lt;Object&gt; handler = findReceivedMessageHandler(message.getClass());
<a name="227" href="#227">227</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="228" href="#228">228</a>             handler.handleMessage(session, message);
<a name="229" href="#229">229</a>         } <strong class="jxr_keyword">else</strong> {
<a name="230" href="#230">230</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/session/UnknownMessageTypeException.html">UnknownMessageTypeException</a>(
<a name="231" href="#231">231</a>                     <span class="jxr_string">"No message handler found for message type: "</span> +
<a name="232" href="#232">232</a>                     message.getClass().getSimpleName());
<a name="233" href="#233">233</a>         }
<a name="234" href="#234">234</a>     }
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>     @Override
<a name="237" href="#237">237</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> messageSent(<a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, Object message) <strong class="jxr_keyword">throws</strong> Exception {
<a name="238" href="#238">238</a>         MessageHandler&lt;Object&gt; handler = findSentMessageHandler(message.getClass());
<a name="239" href="#239">239</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="240" href="#240">240</a>             handler.handleMessage(session, message);
<a name="241" href="#241">241</a>         } <strong class="jxr_keyword">else</strong> {
<a name="242" href="#242">242</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/session/UnknownMessageTypeException.html">UnknownMessageTypeException</a>(
<a name="243" href="#243">243</a>                     <span class="jxr_string">"No handler found for message type: "</span> +
<a name="244" href="#244">244</a>                     message.getClass().getSimpleName());
<a name="245" href="#245">245</a>         }
<a name="246" href="#246">246</a>     }
<a name="247" href="#247">247</a> 
<a name="248" href="#248">248</a>     @Override
<a name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(<a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, Throwable cause) <strong class="jxr_keyword">throws</strong> Exception {
<a name="250" href="#250">250</a>         ExceptionHandler&lt;Throwable&gt; handler = findExceptionHandler(cause.getClass());
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="252" href="#252">252</a>             handler.exceptionCaught(session, cause);
<a name="253" href="#253">253</a>         } <strong class="jxr_keyword">else</strong> {
<a name="254" href="#254">254</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/session/UnknownMessageTypeException.html">UnknownMessageTypeException</a>(
<a name="255" href="#255">255</a>                     <span class="jxr_string">"No handler found for exception type: "</span> +
<a name="256" href="#256">256</a>                     cause.getClass().getSimpleName());
<a name="257" href="#257">257</a>         }
<a name="258" href="#258">258</a>     }
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <strong class="jxr_keyword">protected</strong> MessageHandler&lt;Object&gt; findReceivedMessageHandler(Class&lt;?&gt; type) {
<a name="261" href="#261">261</a>         <strong class="jxr_keyword">return</strong> findReceivedMessageHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="262" href="#262">262</a>     }
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>     <strong class="jxr_keyword">protected</strong> MessageHandler&lt;Object&gt; findSentMessageHandler(Class&lt;?&gt; type) {
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> findSentMessageHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <strong class="jxr_keyword">protected</strong> ExceptionHandler&lt;Throwable&gt; findExceptionHandler(Class&lt;? <strong class="jxr_keyword">extends</strong> Throwable&gt; type) {
<a name="269" href="#269">269</a>         <strong class="jxr_keyword">return</strong> findExceptionHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="270" href="#270">270</a>     }
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="273" href="#273">273</a>     <strong class="jxr_keyword">private</strong> MessageHandler&lt;Object&gt; findReceivedMessageHandler(
<a name="274" href="#274">274</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="275" href="#275">275</a>         
<a name="276" href="#276">276</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;Object&gt;) findHandler(
<a name="277" href="#277">277</a>                 receivedMessageHandlers, receivedMessageHandlerCache, type, triedClasses);
<a name="278" href="#278">278</a>     }
<a name="279" href="#279">279</a> 
<a name="280" href="#280">280</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="281" href="#281">281</a>     <strong class="jxr_keyword">private</strong> MessageHandler&lt;Object&gt; findSentMessageHandler(
<a name="282" href="#282">282</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="283" href="#283">283</a>         
<a name="284" href="#284">284</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;Object&gt;) findHandler(
<a name="285" href="#285">285</a>                 sentMessageHandlers, sentMessageHandlerCache, type, triedClasses);
<a name="286" href="#286">286</a>     }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="289" href="#289">289</a>     <strong class="jxr_keyword">private</strong> ExceptionHandler&lt;Throwable&gt; findExceptionHandler(
<a name="290" href="#290">290</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="291" href="#291">291</a>         
<a name="292" href="#292">292</a>         <strong class="jxr_keyword">return</strong> (ExceptionHandler&lt;Throwable&gt;) findHandler(
<a name="293" href="#293">293</a>                 exceptionHandlers, exceptionHandlerCache, type, triedClasses);
<a name="294" href="#294">294</a>     }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="297" href="#297">297</a>     <strong class="jxr_keyword">private</strong> Object findHandler(
<a name="298" href="#298">298</a>             Map handlers, Map handlerCache,
<a name="299" href="#299">299</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="300" href="#300">300</a> 
<a name="301" href="#301">301</a>         Object handler = <strong class="jxr_keyword">null</strong>;
<a name="302" href="#302">302</a> 
<a name="303" href="#303">303</a>         <strong class="jxr_keyword">if</strong> (triedClasses != <strong class="jxr_keyword">null</strong> &amp;&amp; triedClasses.contains(type)) {
<a name="304" href="#304">304</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="305" href="#305">305</a>         }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>         <em class="jxr_comment">/*</em>
<a name="308" href="#308">308</a> <em class="jxr_comment">         * Try the cache first.</em>
<a name="309" href="#309">309</a> <em class="jxr_comment">         */</em>
<a name="310" href="#310">310</a>         handler = handlerCache.get(type);
<a name="311" href="#311">311</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="312" href="#312">312</a>             <strong class="jxr_keyword">return</strong> handler;
<a name="313" href="#313">313</a>         }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>         <em class="jxr_comment">/*</em>
<a name="316" href="#316">316</a> <em class="jxr_comment">         * Try the registered handlers for an immediate match.</em>
<a name="317" href="#317">317</a> <em class="jxr_comment">         */</em>
<a name="318" href="#318">318</a>         handler = handlers.get(type);
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="321" href="#321">321</a>             <em class="jxr_comment">/*</em>
<a name="322" href="#322">322</a> <em class="jxr_comment">             * No immediate match could be found. Search the type's interfaces.</em>
<a name="323" href="#323">323</a> <em class="jxr_comment">             */</em>
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>             <strong class="jxr_keyword">if</strong> (triedClasses == <strong class="jxr_keyword">null</strong>) {
<a name="326" href="#326">326</a>                 triedClasses = <strong class="jxr_keyword">new</strong> IdentityHashSet&lt;Class&gt;();
<a name="327" href="#327">327</a>             }
<a name="328" href="#328">328</a>             triedClasses.add(type);
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>             Class[] interfaces = type.getInterfaces();
<a name="331" href="#331">331</a>             <strong class="jxr_keyword">for</strong> (Class element : interfaces) {
<a name="332" href="#332">332</a>                 handler = findHandler(handlers, handlerCache, element, triedClasses);
<a name="333" href="#333">333</a>                 <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="334" href="#334">334</a>                     <strong class="jxr_keyword">break</strong>;
<a name="335" href="#335">335</a>                 }
<a name="336" href="#336">336</a>             }
<a name="337" href="#337">337</a>         }
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="340" href="#340">340</a>             <em class="jxr_comment">/*</em>
<a name="341" href="#341">341</a> <em class="jxr_comment">             * No match in type's interfaces could be found. Search the</em>
<a name="342" href="#342">342</a> <em class="jxr_comment">             * superclass.</em>
<a name="343" href="#343">343</a> <em class="jxr_comment">             */</em>
<a name="344" href="#344">344</a>             Class superclass = type.getSuperclass();
<a name="345" href="#345">345</a>             <strong class="jxr_keyword">if</strong> (superclass != <strong class="jxr_keyword">null</strong>) {
<a name="346" href="#346">346</a>                 handler = findHandler(handlers, handlerCache, superclass, <strong class="jxr_keyword">null</strong>);
<a name="347" href="#347">347</a>             }
<a name="348" href="#348">348</a>         }
<a name="349" href="#349">349</a> 
<a name="350" href="#350">350</a>         <em class="jxr_comment">/*</em>
<a name="351" href="#351">351</a> <em class="jxr_comment">         * Make sure the handler is added to the cache. By updating the cache</em>
<a name="352" href="#352">352</a> <em class="jxr_comment">         * here all the types (superclasses and interfaces) in the path which</em>
<a name="353" href="#353">353</a> <em class="jxr_comment">         * led to a match will be cached along with the immediate message type.</em>
<a name="354" href="#354">354</a> <em class="jxr_comment">         */</em>
<a name="355" href="#355">355</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="356" href="#356">356</a>             handlerCache.put(type, handler);
<a name="357" href="#357">357</a>         }
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>         <strong class="jxr_keyword">return</strong> handler;
<a name="360" href="#360">360</a>     }
<a name="361" href="#361">361</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

