<!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 &lt;a href="<a href="http://mina.apache.org" target="alexandria_uri">http://mina.apache.org</a>"&gt;Apache MINA Project&lt;/a&gt;</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> */</em>
<a name="79" href="#79">79</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="80" href="#80">80</a>      
<a name="81" href="#81">81</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="82" href="#82">82</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</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="85" href="#85">85</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</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="88" href="#88">88</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="89" href="#89">89</a>  
<a name="90" href="#90">90</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="91" href="#91">91</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, MessageHandler&lt;?&gt;&gt;();
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</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="94" href="#94">94</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt;();
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</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="97" href="#97">97</a>          <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;Class&lt;?&gt;, ExceptionHandler&lt;?&gt;&gt;();
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <em class="jxr_javadoccomment">/**</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * Creates a new instance with no registered {@link MessageHandler}s.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/handler/demux/DemuxingIoHandler.html">DemuxingIoHandler</a>() {
<a name="103" href="#103">103</a>         <em class="jxr_comment">// Do nothing</em>
<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> <em class="jxr_javadoccomment">     * &lt;b&gt;Warning !&lt;/b&gt; If you are to overload this method, be aware that you </em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * _must_ call the messageHandler in your own method, otherwise it won't </em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     * be called.</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">     */</em>
<a name="227" href="#227">227</a>     @Override
<a name="228" href="#228">228</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(<a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, Object message)
<a name="229" href="#229">229</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="230" href="#230">230</a>         MessageHandler&lt;Object&gt; handler = findReceivedMessageHandler(message.getClass());
<a name="231" href="#231">231</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="232" href="#232">232</a>             handler.handleMessage(session, message);
<a name="233" href="#233">233</a>         } <strong class="jxr_keyword">else</strong> {
<a name="234" href="#234">234</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="235" href="#235">235</a>                     <span class="jxr_string">"No message handler found for message type: "</span> +
<a name="236" href="#236">236</a>                     message.getClass().getSimpleName());
<a name="237" href="#237">237</a>         }
<a name="238" href="#238">238</a>     }
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>     <em class="jxr_javadoccomment">/**</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * Invoked when a message written by IoSession.write(Object) is sent out.</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * </em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     * &lt;b&gt;Warning !&lt;/b&gt; If you are to overload this method, be aware that you </em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * _must_ call the messageHandler in your own method, otherwise it won't </em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * be called.</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     */</em>
<a name="247" href="#247">247</a>     @Override
<a name="248" href="#248">248</a>     <strong class="jxr_keyword">public</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="249" href="#249">249</a>         MessageHandler&lt;Object&gt; handler = findSentMessageHandler(message.getClass());
<a name="250" href="#250">250</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="251" href="#251">251</a>             handler.handleMessage(session, message);
<a name="252" href="#252">252</a>         } <strong class="jxr_keyword">else</strong> {
<a name="253" href="#253">253</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="254" href="#254">254</a>                     <span class="jxr_string">"No handler found for message type: "</span> +
<a name="255" href="#255">255</a>                     message.getClass().getSimpleName());
<a name="256" href="#256">256</a>         }
<a name="257" href="#257">257</a>     }
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>     <em class="jxr_javadoccomment">/**</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * Invoked when any exception is thrown by user IoHandler implementation </em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * or by MINA. If cause is an instance of IOException, MINA will close the </em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * connection automatically.</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     *</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     * &lt;b&gt;Warning !&lt;/b&gt; If you are to overload this method, be aware that you </em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     * _must_ call the messageHandler in your own method, otherwise it won't </em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">     * be called.</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     */</em>
<a name="268" href="#268">268</a>     @Override
<a name="269" href="#269">269</a>     <strong class="jxr_keyword">public</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="270" href="#270">270</a>         ExceptionHandler&lt;Throwable&gt; handler = findExceptionHandler(cause.getClass());
<a name="271" href="#271">271</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="272" href="#272">272</a>             handler.exceptionCaught(session, cause);
<a name="273" href="#273">273</a>         } <strong class="jxr_keyword">else</strong> {
<a name="274" href="#274">274</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="275" href="#275">275</a>                     <span class="jxr_string">"No handler found for exception type: "</span> +
<a name="276" href="#276">276</a>                     cause.getClass().getSimpleName());
<a name="277" href="#277">277</a>         }
<a name="278" href="#278">278</a>     }
<a name="279" href="#279">279</a> 
<a name="280" href="#280">280</a>     <strong class="jxr_keyword">protected</strong> MessageHandler&lt;Object&gt; findReceivedMessageHandler(Class&lt;?&gt; type) {
<a name="281" href="#281">281</a>         <strong class="jxr_keyword">return</strong> findReceivedMessageHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="282" href="#282">282</a>     }
<a name="283" href="#283">283</a> 
<a name="284" href="#284">284</a>     <strong class="jxr_keyword">protected</strong> MessageHandler&lt;Object&gt; findSentMessageHandler(Class&lt;?&gt; type) {
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">return</strong> findSentMessageHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="286" href="#286">286</a>     }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</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="289" href="#289">289</a>         <strong class="jxr_keyword">return</strong> findExceptionHandler(type, <strong class="jxr_keyword">null</strong>);
<a name="290" href="#290">290</a>     }
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="293" href="#293">293</a>     <strong class="jxr_keyword">private</strong> MessageHandler&lt;Object&gt; findReceivedMessageHandler(
<a name="294" href="#294">294</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="295" href="#295">295</a>         
<a name="296" href="#296">296</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;Object&gt;) findHandler(
<a name="297" href="#297">297</a>                 receivedMessageHandlers, receivedMessageHandlerCache, type, triedClasses);
<a name="298" href="#298">298</a>     }
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="301" href="#301">301</a>     <strong class="jxr_keyword">private</strong> MessageHandler&lt;Object&gt; findSentMessageHandler(
<a name="302" href="#302">302</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="303" href="#303">303</a>         
<a name="304" href="#304">304</a>         <strong class="jxr_keyword">return</strong> (MessageHandler&lt;Object&gt;) findHandler(
<a name="305" href="#305">305</a>                 sentMessageHandlers, sentMessageHandlerCache, type, triedClasses);
<a name="306" href="#306">306</a>     }
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="309" href="#309">309</a>     <strong class="jxr_keyword">private</strong> ExceptionHandler&lt;Throwable&gt; findExceptionHandler(
<a name="310" href="#310">310</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="311" href="#311">311</a>         
<a name="312" href="#312">312</a>         <strong class="jxr_keyword">return</strong> (ExceptionHandler&lt;Throwable&gt;) findHandler(
<a name="313" href="#313">313</a>                 exceptionHandlers, exceptionHandlerCache, type, triedClasses);
<a name="314" href="#314">314</a>     }
<a name="315" href="#315">315</a> 
<a name="316" href="#316">316</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="317" href="#317">317</a>     <strong class="jxr_keyword">private</strong> Object findHandler(
<a name="318" href="#318">318</a>             Map handlers, Map handlerCache,
<a name="319" href="#319">319</a>             Class type, Set&lt;Class&gt; triedClasses) {
<a name="320" href="#320">320</a> 
<a name="321" href="#321">321</a>         Object handler = <strong class="jxr_keyword">null</strong>;
<a name="322" href="#322">322</a> 
<a name="323" href="#323">323</a>         <strong class="jxr_keyword">if</strong> (triedClasses != <strong class="jxr_keyword">null</strong> &amp;&amp; triedClasses.contains(type)) {
<a name="324" href="#324">324</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="325" href="#325">325</a>         }
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>         <em class="jxr_comment">/*</em>
<a name="328" href="#328">328</a> <em class="jxr_comment">         * Try the cache first.</em>
<a name="329" href="#329">329</a> <em class="jxr_comment">         */</em>
<a name="330" href="#330">330</a>         handler = handlerCache.get(type);
<a name="331" href="#331">331</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="332" href="#332">332</a>             <strong class="jxr_keyword">return</strong> handler;
<a name="333" href="#333">333</a>         }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>         <em class="jxr_comment">/*</em>
<a name="336" href="#336">336</a> <em class="jxr_comment">         * Try the registered handlers for an immediate match.</em>
<a name="337" href="#337">337</a> <em class="jxr_comment">         */</em>
<a name="338" href="#338">338</a>         handler = handlers.get(type);
<a name="339" href="#339">339</a> 
<a name="340" href="#340">340</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="341" href="#341">341</a>             <em class="jxr_comment">/*</em>
<a name="342" href="#342">342</a> <em class="jxr_comment">             * No immediate match could be found. Search the type's interfaces.</em>
<a name="343" href="#343">343</a> <em class="jxr_comment">             */</em>
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>             <strong class="jxr_keyword">if</strong> (triedClasses == <strong class="jxr_keyword">null</strong>) {
<a name="346" href="#346">346</a>                 triedClasses = <strong class="jxr_keyword">new</strong> IdentityHashSet&lt;Class&gt;();
<a name="347" href="#347">347</a>             }
<a name="348" href="#348">348</a>             triedClasses.add(type);
<a name="349" href="#349">349</a> 
<a name="350" href="#350">350</a>             Class[] interfaces = type.getInterfaces();
<a name="351" href="#351">351</a>             <strong class="jxr_keyword">for</strong> (Class element : interfaces) {
<a name="352" href="#352">352</a>                 handler = findHandler(handlers, handlerCache, element, triedClasses);
<a name="353" href="#353">353</a>                 <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="354" href="#354">354</a>                     <strong class="jxr_keyword">break</strong>;
<a name="355" href="#355">355</a>                 }
<a name="356" href="#356">356</a>             }
<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">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="360" href="#360">360</a>             <em class="jxr_comment">/*</em>
<a name="361" href="#361">361</a> <em class="jxr_comment">             * No match in type's interfaces could be found. Search the</em>
<a name="362" href="#362">362</a> <em class="jxr_comment">             * superclass.</em>
<a name="363" href="#363">363</a> <em class="jxr_comment">             */</em>
<a name="364" href="#364">364</a>             Class superclass = type.getSuperclass();
<a name="365" href="#365">365</a>             <strong class="jxr_keyword">if</strong> (superclass != <strong class="jxr_keyword">null</strong>) {
<a name="366" href="#366">366</a>                 handler = findHandler(handlers, handlerCache, superclass, <strong class="jxr_keyword">null</strong>);
<a name="367" href="#367">367</a>             }
<a name="368" href="#368">368</a>         }
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>         <em class="jxr_comment">/*</em>
<a name="371" href="#371">371</a> <em class="jxr_comment">         * Make sure the handler is added to the cache. By updating the cache</em>
<a name="372" href="#372">372</a> <em class="jxr_comment">         * here all the types (superclasses and interfaces) in the path which</em>
<a name="373" href="#373">373</a> <em class="jxr_comment">         * led to a match will be cached along with the immediate message type.</em>
<a name="374" href="#374">374</a> <em class="jxr_comment">         */</em>
<a name="375" href="#375">375</a>         <strong class="jxr_keyword">if</strong> (handler != <strong class="jxr_keyword">null</strong>) {
<a name="376" href="#376">376</a>             handlerCache.put(type, handler);
<a name="377" href="#377">377</a>         }
<a name="378" href="#378">378</a> 
<a name="379" href="#379">379</a>         <strong class="jxr_keyword">return</strong> handler;
<a name="380" href="#380">380</a>     }
<a name="381" href="#381">381</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

