<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>IoFilterMapping xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/integration/spring/IoFilterMapping.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: IoFilterMapping.java 355016 2005-12-08 07:00:30Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/integration/spring/package-summary.html">org.apache.mina.integration.spring</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.IoFilter;
<a name="22" href="#22">22</a>  <strong>import</strong> org.springframework.beans.factory.InitializingBean;
<a name="23" href="#23">23</a>  <strong>import</strong> org.springframework.util.Assert;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <em>/**<em>*</em></em>
<a name="26" href="#26">26</a>  <em> * Associates a name with an {@link IoFilter}. This makes it possible to configure</em>
<a name="27" href="#27">27</a>  <em> * named filters using Spring.</em>
<a name="28" href="#28">28</a>  <em> * &lt;p> </em>
<a name="29" href="#29">29</a>  <em> * Use this class when you want to configure the</em>
<a name="30" href="#30">30</a>  <em> * filters added to the filter chain of all sessions created from a particular</em>
<a name="31" href="#31">31</a>  <em> * {@link org.apache.mina.common.IoSessionManager} created using one of the</em>
<a name="32" href="#32">32</a>  <em> * {@link org.apache.mina.integration.spring.support.AbstractIoSessionManagerFactoryBean}</em>
<a name="33" href="#33">33</a>  <em> * sub-classes but you don't want the names to be generated automatically.</em>
<a name="34" href="#34">34</a>  <em> * &lt;/p></em>
<a name="35" href="#35">35</a>  <em> * &lt;p></em>
<a name="36" href="#36">36</a>  <em> * This class can also be used when creating {@link Binding} objects. This lets</em>
<a name="37" href="#37">37</a>  <em> * one configure per-port filters. These filters will only be added to the</em>
<a name="38" href="#38">38</a>  <em> * filter chain of sessions for incoming connections on the port specified by</em>
<a name="39" href="#39">39</a>  <em> * the {@link Binding}. Note that {@link Binding} can also be configured to </em>
<a name="40" href="#40">40</a>  <em> * generate filter names automatically. In that case you add the {@link IoFilter}</em>
<a name="41" href="#41">41</a>  <em> * instances directly to the {@link Binding}.</em>
<a name="42" href="#42">42</a>  <em> * &lt;/p></em>
<a name="43" href="#43">43</a>  <em> * </em>
<a name="44" href="#44">44</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="45" href="#45">45</a>  <em> * @version $Rev: 355016 $, $Date: 2005-12-08 16:00:30 +0900 (Thu, 08 Dec 2005) $</em>
<a name="46" href="#46">46</a>  <em> * @see org.apache.mina.integration.spring.support.AbstractIoSessionManagerFactoryBean</em>
<a name="47" href="#47">47</a>  <em> * @see org.apache.mina.integration.spring.Binding</em>
<a name="48" href="#48">48</a>  <em> */</em>
<a name="49" href="#49">49</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/integration/spring/IoFilterMapping.html">IoFilterMapping</a> implements InitializingBean
<a name="50" href="#50">50</a>  {
<a name="51" href="#51">51</a>      <strong>private</strong> String name = <strong>null</strong>;
<a name="52" href="#52">52</a>      <strong>private</strong> <a href="../../../../../org/apache/mina/common/IoFilter.html">IoFilter</a> filter = <strong>null</strong>;
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>      <em>/**<em>*</em></em>
<a name="55" href="#55">55</a>  <em>     * Creates a new empty instance.</em>
<a name="56" href="#56">56</a>  <em>     */</em>
<a name="57" href="#57">57</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/integration/spring/IoFilterMapping.html">IoFilterMapping</a>()
<a name="58" href="#58">58</a>      {
<a name="59" href="#59">59</a>      }
<a name="60" href="#60">60</a>      
<a name="61" href="#61">61</a>      <em>/**<em>*</em></em>
<a name="62" href="#62">62</a>  <em>     * Creates a new instance using the specified name and filter.</em>
<a name="63" href="#63">63</a>  <em>     * </em>
<a name="64" href="#64">64</a>  <em>     * @param name the name.</em>
<a name="65" href="#65">65</a>  <em>     * @param filter the filter.</em>
<a name="66" href="#66">66</a>  <em>     * @throws IllegalArgumentException if any of the arguments are </em>
<a name="67" href="#67">67</a>  <em>     *         &lt;code>null&lt;/code>.</em>
<a name="68" href="#68">68</a>  <em>     */</em>
<a name="69" href="#69">69</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/integration/spring/IoFilterMapping.html">IoFilterMapping</a>( String name, IoFilter filter )
<a name="70" href="#70">70</a>      {
<a name="71" href="#71">71</a>          Assert.notNull( name, <span class="string">"Argument 'name' may not be null"</span> );
<a name="72" href="#72">72</a>          Assert.notNull( filter, <span class="string">"Argument 'filter' may not be null"</span> );
<a name="73" href="#73">73</a>          
<a name="74" href="#74">74</a>          <strong>this</strong>.name = name;
<a name="75" href="#75">75</a>          <strong>this</strong>.filter = filter;
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>      
<a name="78" href="#78">78</a>      <em>/**<em>*</em></em>
<a name="79" href="#79">79</a>  <em>     * Returns the filter of this mapping.</em>
<a name="80" href="#80">80</a>  <em>     * </em>
<a name="81" href="#81">81</a>  <em>     * @return the filter.</em>
<a name="82" href="#82">82</a>  <em>     */</em>
<a name="83" href="#83">83</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/common/IoFilter.html">IoFilter</a> getFilter()
<a name="84" href="#84">84</a>      {
<a name="85" href="#85">85</a>          <strong>return</strong> filter;
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <em>/**<em>*</em></em>
<a name="89" href="#89">89</a>  <em>     * Returns the name associated with the filter.</em>
<a name="90" href="#90">90</a>  <em>     * </em>
<a name="91" href="#91">91</a>  <em>     * @return the name.</em>
<a name="92" href="#92">92</a>  <em>     */</em>
<a name="93" href="#93">93</a>      <strong>public</strong> String getName()
<a name="94" href="#94">94</a>      {
<a name="95" href="#95">95</a>          <strong>return</strong> name;
<a name="96" href="#96">96</a>      }
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>      <em>/**<em>*</em></em>
<a name="99" href="#99">99</a>  <em>     * Sets the filter of this mapping.</em>
<a name="100" href="#100">100</a> <em>     * </em>
<a name="101" href="#101">101</a> <em>     * @param filter the filter.</em>
<a name="102" href="#102">102</a> <em>     * @throws IllegalArgumentException if the specified value is </em>
<a name="103" href="#103">103</a> <em>     *         &lt;code>null&lt;/code>.</em>
<a name="104" href="#104">104</a> <em>     */</em>
<a name="105" href="#105">105</a>     <strong>public</strong> <strong>void</strong> setFilter( IoFilter filter )
<a name="106" href="#106">106</a>     {
<a name="107" href="#107">107</a>         Assert.notNull( filter, <span class="string">"Argument 'filter' may not be null"</span> );
<a name="108" href="#108">108</a>         <strong>this</strong>.filter = filter;
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>     <em>/**<em>*</em></em>
<a name="112" href="#112">112</a> <em>     * Sets the name associated with the filter.</em>
<a name="113" href="#113">113</a> <em>     * </em>
<a name="114" href="#114">114</a> <em>     * @param name the name.</em>
<a name="115" href="#115">115</a> <em>     * @throws IllegalArgumentException if the specified value is </em>
<a name="116" href="#116">116</a> <em>     *         &lt;code>null&lt;/code>.</em>
<a name="117" href="#117">117</a> <em>     */</em>
<a name="118" href="#118">118</a>     <strong>public</strong> <strong>void</strong> setName( String name )
<a name="119" href="#119">119</a>     {
<a name="120" href="#120">120</a>         Assert.notNull( name, <span class="string">"Argument 'name' may not be null"</span> );
<a name="121" href="#121">121</a>         <strong>this</strong>.name = name;
<a name="122" href="#122">122</a>     }
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>     <strong>public</strong> <strong>void</strong> afterPropertiesSet() throws Exception
<a name="125" href="#125">125</a>     {
<a name="126" href="#126">126</a>         Assert.notNull( name, <span class="string">"Argument 'name' may not be null"</span> );
<a name="127" href="#127">127</a>         Assert.notNull( filter, <span class="string">"Argument 'filter' may not be null"</span> );
<a name="128" href="#128">128</a>     }
<a name="129" href="#129">129</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

