<!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>IoSessionEvent xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/proxy/event/IoSessionEvent.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.proxy.event;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilter.NextFilter;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IdleStatus;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * IoSessionEvent.java - Wrapper Class for enqueued events.</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * </em>
<a name="31" href="#31">31</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="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @since MINA 2.0.0-M3</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> */</em>
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a> {
<a name="35" href="#35">35</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Logger logger = LoggerFactory
<a name="36" href="#36">36</a>              .getLogger(IoSessionEvent.<strong class="jxr_keyword">class</strong>);
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <em class="jxr_javadoccomment">/**</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     * The next filter in the chain.</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     */</em>
<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> NextFilter nextFilter;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <em class="jxr_javadoccomment">/**</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * The session.</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     */</em>
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>      <em class="jxr_javadoccomment">/**</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * The event type.</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEventType.html">IoSessionEventType</a> type;
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * The idle status if type value is {@link IoSessionEventType#IDLE},</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * null otherwise.</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     */</em>
<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/session/IdleStatus.html">IdleStatus</a> status;
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Creates an instance of this class when event type differs from </em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * {@link IoSessionEventType#IDLE}.</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * </em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @param session the session</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * @param type the event type</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     */</em>
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(<strong class="jxr_keyword">final</strong> NextFilter nextFilter, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session,
<a name="68" href="#68">68</a>              <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEventType.html">IoSessionEventType</a> type) {
<a name="69" href="#69">69</a>          <strong class="jxr_keyword">this</strong>.nextFilter = nextFilter;
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">this</strong>.session = session;
<a name="71" href="#71">71</a>          <strong class="jxr_keyword">this</strong>.type = type;
<a name="72" href="#72">72</a>      }
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <em class="jxr_javadoccomment">/**</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * Creates an instance of this class when event type is </em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * {@link IoSessionEventType#IDLE}.</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * </em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @param session the session</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @param status the idle status</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEvent.html">IoSessionEvent</a>(<strong class="jxr_keyword">final</strong> NextFilter nextFilter, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session,
<a name="83" href="#83">83</a>              <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IdleStatus.html">IdleStatus</a> status) {
<a name="84" href="#84">84</a>          <strong class="jxr_keyword">this</strong>(nextFilter, session, IoSessionEventType.IDLE);
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>.status = status;
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>      
<a name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Delivers this event to the next filter.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deliverEvent() {
<a name="92" href="#92">92</a>          logger.debug(<span class="jxr_string">"Delivering event {}"</span>, <strong class="jxr_keyword">this</strong>);
<a name="93" href="#93">93</a>          deliverEvent(<strong class="jxr_keyword">this</strong>.nextFilter, <strong class="jxr_keyword">this</strong>.session, <strong class="jxr_keyword">this</strong>.type, <strong class="jxr_keyword">this</strong>.status);
<a name="94" href="#94">94</a>      }
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * Static method which effectively delivers the specified event to the next filter</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * &lt;code&gt;nextFilter&lt;/code&gt; on the &lt;code&gt;session&lt;/code&gt;.</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * </em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * @param nextFilter the next filter</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @param session the session on which the event occured</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @param type the event type</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * @param status the idle status should only be non null only if the event type is </em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * {@link IoSessionEventType#IDLE} </em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
<a name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> deliverEvent(<strong class="jxr_keyword">final</strong> NextFilter nextFilter,
<a name="107" href="#107">107</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEventType.html">IoSessionEventType</a> type,
<a name="108" href="#108">108</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IdleStatus.html">IdleStatus</a> status) {
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">switch</strong> (type) {
<a name="110" href="#110">110</a>         <strong class="jxr_keyword">case</strong> CREATED:
<a name="111" href="#111">111</a>             nextFilter.sessionCreated(session);
<a name="112" href="#112">112</a>             <strong class="jxr_keyword">break</strong>;
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">case</strong> OPENED:
<a name="114" href="#114">114</a>             nextFilter.sessionOpened(session);
<a name="115" href="#115">115</a>             <strong class="jxr_keyword">break</strong>;
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">case</strong> IDLE:
<a name="117" href="#117">117</a>             nextFilter.sessionIdle(session, status);
<a name="118" href="#118">118</a>             <strong class="jxr_keyword">break</strong>;
<a name="119" href="#119">119</a>         <strong class="jxr_keyword">case</strong> CLOSED:
<a name="120" href="#120">120</a>             nextFilter.sessionClosed(session);
<a name="121" href="#121">121</a>             <strong class="jxr_keyword">break</strong>;
<a name="122" href="#122">122</a>         }
<a name="123" href="#123">123</a>     }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     */</em>
<a name="128" href="#128">128</a>     @Override
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> String toString() {
<a name="130" href="#130">130</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(IoSessionEvent.<strong class="jxr_keyword">class</strong>
<a name="131" href="#131">131</a>                 .getSimpleName());
<a name="132" href="#132">132</a>         sb.append('@');
<a name="133" href="#133">133</a>         sb.append(Integer.toHexString(hashCode()));
<a name="134" href="#134">134</a>         sb.append(<span class="jxr_string">" - [ "</span>).append(session);
<a name="135" href="#135">135</a>         sb.append(<span class="jxr_string">", "</span>).append(type);
<a name="136" href="#136">136</a>         sb.append(']');
<a name="137" href="#137">137</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <em class="jxr_javadoccomment">/**</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * Returns the idle status of the event.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * </em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @return the idle status of the event</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     */</em>
<a name="145" href="#145">145</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/session/IdleStatus.html">IdleStatus</a> getStatus() {
<a name="146" href="#146">146</a>         <strong class="jxr_keyword">return</strong> status;
<a name="147" href="#147">147</a>     }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>     <em class="jxr_javadoccomment">/**</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * Returns the next filter to which the event should be sent.</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * </em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @return the next filter</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> NextFilter getNextFilter() {
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> nextFilter;
<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">     * Returns the session on which the event occured.</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * </em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @return the session</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     */</em>
<a name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> getSession() {
<a name="164" href="#164">164</a>         <strong class="jxr_keyword">return</strong> session;
<a name="165" href="#165">165</a>     }
<a name="166" href="#166">166</a> 
<a name="167" href="#167">167</a>     <em class="jxr_javadoccomment">/**</em>
<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * Returns the event type that occured.</em>
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * </em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @return the event type</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     */</em>
<a name="172" href="#172">172</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/event/IoSessionEventType.html">IoSessionEventType</a> getType() {
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">return</strong> type;
<a name="174" href="#174">174</a>     }
<a name="175" href="#175">175</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

