<!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>ProxyIoSessionInitializer xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/proxy/session/ProxyIoSessionInitializer.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.session;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.future.ConnectFuture;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSessionInitializer;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * ProxyIoSessionInitializer.java - {@link IoSessionInitializer} wrapper class to inject the </em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * {@link ProxyIoSession} object that contains all the attributes of the target connection </em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * into the {@link IoSession}.</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> ProxyIoSessionInitializer&lt;T <strong class="jxr_keyword">extends</strong> ConnectFuture&gt; implements
<a name="35" href="#35">35</a>          IoSessionInitializer&lt;T&gt; {
<a name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> IoSessionInitializer&lt;T&gt; wrappedSessionInitializer;
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSessionInitializer.html">ProxyIoSessionInitializer</a>(
<a name="41" href="#41">41</a>              <strong class="jxr_keyword">final</strong> IoSessionInitializer&lt;T&gt; wrappedSessionInitializer,
<a name="42" href="#42">42</a>              <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> proxyIoSession) {
<a name="43" href="#43">43</a>          <strong class="jxr_keyword">this</strong>.wrappedSessionInitializer = wrappedSessionInitializer;
<a name="44" href="#44">44</a>          <strong class="jxr_keyword">this</strong>.proxyIoSession = proxyIoSession;
<a name="45" href="#45">45</a>      }
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/proxy/session/ProxyIoSession.html">ProxyIoSession</a> getProxySession() {
<a name="48" href="#48">48</a>          <strong class="jxr_keyword">return</strong> proxyIoSession;
<a name="49" href="#49">49</a>      }
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initializeSession(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/core/session/IoSession.html">IoSession</a> session, T future) {
<a name="52" href="#52">52</a>          <strong class="jxr_keyword">if</strong> (wrappedSessionInitializer != <strong class="jxr_keyword">null</strong>) {
<a name="53" href="#53">53</a>              wrappedSessionInitializer.initializeSession(session, future);
<a name="54" href="#54">54</a>          }
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>          <strong class="jxr_keyword">if</strong> (proxyIoSession != <strong class="jxr_keyword">null</strong>) {
<a name="57" href="#57">57</a>              proxyIoSession.setSession(session);
<a name="58" href="#58">58</a>              session.setAttribute(ProxyIoSession.PROXY_SESSION, proxyIoSession);
<a name="59" href="#59">59</a>          }
<a name="60" href="#60">60</a>      }
<a name="61" href="#61">61</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

