<!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>DefaultIoFilterChainBuilder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.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.core.filterchain;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.ListIterator;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Random;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CopyOnWriteArrayList;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilter.NextFilter;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterChain.Entry;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<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 default implementation of {@link IoFilterChainBuilder} which is useful</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * in most cases.  {@link DefaultIoFilterChainBuilder} has an identical interface</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * with {@link IoFilter}; it contains a list of {@link IoFilter}s that you can</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * modify. The {@link IoFilter}s which are added to this builder will be appended</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * to the {@link IoFilterChain} when {@link #buildFilterChain(IoFilterChain)} is</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * invoked.</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * However, the identical interface doesn't mean that it behaves in an exactly</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * same way with {@link IoFilterChain}.  {@link DefaultIoFilterChainBuilder}</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * doesn't manage the life cycle of the {@link IoFilter}s at all, and the</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * existing {@link IoSession}s won't get affected by the changes in this builder.</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * {@link IoFilterChainBuilder}s affect only newly created {@link IoSession}s.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> *</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * IoAcceptor acceptor = ...;</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * DefaultIoFilterChainBuilder builder = acceptor.getFilterChain();</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * builder.addLast( "myFilter", new MyFilter() );</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * ...</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> *</em>
<a name="59" href="#59">59</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="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * @org.apache.xbean.XBean</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> */</em>
<a name="62" href="#62">62</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html">DefaultIoFilterChainBuilder</a> implements <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChainBuilder.html">IoFilterChainBuilder</a> {
<a name="63" href="#63">63</a>      
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> Logger LOGGER = 
<a name="65" href="#65">65</a>          LoggerFactory.getLogger(DefaultIoFilterChainBuilder.<strong class="jxr_keyword">class</strong>);
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;Entry&gt; entries;
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * Creates a new instance with an empty filter list.</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html">DefaultIoFilterChainBuilder</a>() {
<a name="72" href="#72">72</a>          entries = <strong class="jxr_keyword">new</strong> CopyOnWriteArrayList&lt;Entry&gt;();
<a name="73" href="#73">73</a>      }
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Creates a new copy of the specified {@link DefaultIoFilterChainBuilder}.</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html">DefaultIoFilterChainBuilder</a>(<a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html">DefaultIoFilterChainBuilder</a> filterChain) {
<a name="79" href="#79">79</a>          <strong class="jxr_keyword">if</strong> (filterChain == <strong class="jxr_keyword">null</strong>) {
<a name="80" href="#80">80</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filterChain"</span>);
<a name="81" href="#81">81</a>          }
<a name="82" href="#82">82</a>          entries = <strong class="jxr_keyword">new</strong> CopyOnWriteArrayList&lt;Entry&gt;(filterChain.entries);
<a name="83" href="#83">83</a>      }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(String)</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     */</em>
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> getEntry(String name) {
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">for</strong> (Entry e: entries) {
<a name="90" href="#90">90</a>              <strong class="jxr_keyword">if</strong> (e.getName().equals(name)) {
<a name="91" href="#91">91</a>                  <strong class="jxr_keyword">return</strong> e;
<a name="92" href="#92">92</a>              }
<a name="93" href="#93">93</a>          }
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="96" href="#96">96</a>      }
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(IoFilter)</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
<a name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> getEntry(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="102" href="#102">102</a>         <strong class="jxr_keyword">for</strong> (Entry e: entries) {
<a name="103" href="#103">103</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == filter) {
<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">return</strong> e;
<a name="105" href="#105">105</a>             }
<a name="106" href="#106">106</a>         }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(Class)</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
<a name="114" href="#114">114</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> getEntry(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a name="115" href="#115">115</a>         <strong class="jxr_keyword">for</strong> (Entry e: entries) {
<a name="116" href="#116">116</a>             <strong class="jxr_keyword">if</strong> (filterType.isAssignableFrom(e.getFilter().getClass())) {
<a name="117" href="#117">117</a>                 <strong class="jxr_keyword">return</strong> e;
<a name="118" href="#118">118</a>             }
<a name="119" href="#119">119</a>         }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="122" href="#122">122</a>     }
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>     <em class="jxr_javadoccomment">/**</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#get(String)</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     */</em>
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> get(String name) {
<a name="128" href="#128">128</a>         <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e = getEntry(name);
<a name="129" href="#129">129</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="130" href="#130">130</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="131" href="#131">131</a>         }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> e.getFilter();
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>     <em class="jxr_javadoccomment">/**</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#get(Class)</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     */</em>
<a name="139" href="#139">139</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> get(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a name="140" href="#140">140</a>         <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e = getEntry(filterType);
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="142" href="#142">142</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="143" href="#143">143</a>         }
<a name="144" href="#144">144</a> 
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">return</strong> e.getFilter();
<a name="146" href="#146">146</a>     }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>     <em class="jxr_javadoccomment">/**</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getAll()</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     */</em>
<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> List&lt;Entry&gt; getAll() {
<a name="152" href="#152">152</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ArrayList&lt;Entry&gt;(entries);
<a name="153" href="#153">153</a>     }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>     <em class="jxr_javadoccomment">/**</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getAllReversed()</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> List&lt;Entry&gt; getAllReversed() {
<a name="159" href="#159">159</a>         List&lt;Entry&gt; result = getAll();
<a name="160" href="#160">160</a>         Collections.reverse(result);
<a name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> result;
<a name="162" href="#162">162</a>     }
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>     <em class="jxr_javadoccomment">/**</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(String)</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     */</em>
<a name="167" href="#167">167</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> contains(String name) {
<a name="168" href="#168">168</a>         <strong class="jxr_keyword">return</strong> getEntry(name) != <strong class="jxr_keyword">null</strong>;
<a name="169" href="#169">169</a>     }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>     <em class="jxr_javadoccomment">/**</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(IoFilter)</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     */</em>
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> contains(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="175" href="#175">175</a>         <strong class="jxr_keyword">return</strong> getEntry(filter) != <strong class="jxr_keyword">null</strong>;
<a name="176" href="#176">176</a>     }
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>     <em class="jxr_javadoccomment">/**</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(Class)</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
<a name="181" href="#181">181</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> contains(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> getEntry(filterType) != <strong class="jxr_keyword">null</strong>;
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>     <em class="jxr_javadoccomment">/**</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addFirst(String, IoFilter)</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addFirst(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="189" href="#189">189</a>         register(0, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a>(name, filter));
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <em class="jxr_javadoccomment">/**</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addLast(String, IoFilter)</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     */</em>
<a name="195" href="#195">195</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addLast(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="196" href="#196">196</a>         register(entries.size(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a name="197" href="#197">197</a>     }
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>     <em class="jxr_javadoccomment">/**</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addBefore(String, String, IoFilter)</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     */</em>
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addBefore(String baseName, String name,
<a name="203" href="#203">203</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="204" href="#204">204</a>         checkBaseName(baseName);
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a name="207" href="#207">207</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> base = i.next();
<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> (base.getName().equals(baseName)) {
<a name="209" href="#209">209</a>                 register(i.previousIndex(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a name="210" href="#210">210</a>                 <strong class="jxr_keyword">break</strong>;
<a name="211" href="#211">211</a>             }
<a name="212" href="#212">212</a>         }
<a name="213" href="#213">213</a>     }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>     <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addAfter(String, String, IoFilter)</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     */</em>
<a name="218" href="#218">218</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addAfter(String baseName, String name,
<a name="219" href="#219">219</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="220" href="#220">220</a>         checkBaseName(baseName);
<a name="221" href="#221">221</a> 
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a name="223" href="#223">223</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> base = i.next();
<a name="224" href="#224">224</a>             <strong class="jxr_keyword">if</strong> (base.getName().equals(baseName)) {
<a name="225" href="#225">225</a>                 register(i.nextIndex(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a name="226" href="#226">226</a>                 <strong class="jxr_keyword">break</strong>;
<a name="227" href="#227">227</a>             }
<a name="228" href="#228">228</a>         }
<a name="229" href="#229">229</a>     }
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>     <em class="jxr_javadoccomment">/**</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(String)</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     */</em>
<a name="234" href="#234">234</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> remove(String name) {
<a name="235" href="#235">235</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a name="236" href="#236">236</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"name"</span>);
<a name="237" href="#237">237</a>         }
<a name="238" href="#238">238</a> 
<a name="239" href="#239">239</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a name="240" href="#240">240</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e = i.next();
<a name="241" href="#241">241</a>             <strong class="jxr_keyword">if</strong> (e.getName().equals(name)) {
<a name="242" href="#242">242</a>                 entries.remove(i.previousIndex());
<a name="243" href="#243">243</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a name="244" href="#244">244</a>             }
<a name="245" href="#245">245</a>         }
<a name="246" href="#246">246</a> 
<a name="247" href="#247">247</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown filter name: "</span> + name);
<a name="248" href="#248">248</a>     }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>     <em class="jxr_javadoccomment">/**</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(IoFilter)</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     */</em>
<a name="253" href="#253">253</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> remove(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="254" href="#254">254</a>         <strong class="jxr_keyword">if</strong> (filter == <strong class="jxr_keyword">null</strong>) {
<a name="255" href="#255">255</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filter"</span>);
<a name="256" href="#256">256</a>         }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a name="259" href="#259">259</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e = i.next();
<a name="260" href="#260">260</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == filter) {
<a name="261" href="#261">261</a>                 entries.remove(i.previousIndex());
<a name="262" href="#262">262</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a name="263" href="#263">263</a>             }
<a name="264" href="#264">264</a>         }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span> + filter.getClass().getName());
<a name="267" href="#267">267</a>     }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>     <em class="jxr_javadoccomment">/**</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(Class)</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     */</em>
<a name="272" href="#272">272</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> remove(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a name="273" href="#273">273</a>         <strong class="jxr_keyword">if</strong> (filterType == <strong class="jxr_keyword">null</strong>) {
<a name="274" href="#274">274</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filterType"</span>);
<a name="275" href="#275">275</a>         }
<a name="276" href="#276">276</a> 
<a name="277" href="#277">277</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a name="278" href="#278">278</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e = i.next();
<a name="279" href="#279">279</a>             <strong class="jxr_keyword">if</strong> (filterType.isAssignableFrom(e.getFilter().getClass())) {
<a name="280" href="#280">280</a>                 entries.remove(i.previousIndex());
<a name="281" href="#281">281</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a name="282" href="#282">282</a>             }
<a name="283" href="#283">283</a>         }
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span> + filterType.getName());
<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">public</strong> <strong class="jxr_keyword">synchronized</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> replace(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> newFilter) {
<a name="289" href="#289">289</a>         checkBaseName(name);
<a name="290" href="#290">290</a>         <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a> e = (EntryImpl)getEntry(name);
<a name="291" href="#291">291</a>         <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> oldFilter = e.getFilter();
<a name="292" href="#292">292</a>         e.setFilter(newFilter);
<a name="293" href="#293">293</a>         <strong class="jxr_keyword">return</strong> oldFilter;
<a name="294" href="#294">294</a>     }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> replace(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> oldFilter, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> newFilter) {
<a name="297" href="#297">297</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a name="298" href="#298">298</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == oldFilter) {
<a name="299" href="#299">299</a>                 ((<a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a>) e).setFilter(newFilter);
<a name="300" href="#300">300</a>                 <strong class="jxr_keyword">return</strong>;
<a name="301" href="#301">301</a>             }
<a name="302" href="#302">302</a>         }
<a name="303" href="#303">303</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span>
<a name="304" href="#304">304</a>                 + oldFilter.getClass().getName());
<a name="305" href="#305">305</a>     }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> replace(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; oldFilterType,
<a name="308" href="#308">308</a>             <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> newFilter) {
<a name="309" href="#309">309</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a name="310" href="#310">310</a>             <strong class="jxr_keyword">if</strong> (oldFilterType.isAssignableFrom(e.getFilter().getClass())) {
<a name="311" href="#311">311</a>                 ((<a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a>) e).setFilter(newFilter);
<a name="312" href="#312">312</a>                 <strong class="jxr_keyword">return</strong>;
<a name="313" href="#313">313</a>             }
<a name="314" href="#314">314</a>         }
<a name="315" href="#315">315</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span>
<a name="316" href="#316">316</a>                 + oldFilterType.getName());
<a name="317" href="#317">317</a>     }
<a name="318" href="#318">318</a> 
<a name="319" href="#319">319</a>     <em class="jxr_javadoccomment">/**</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#clear()</em>
<a name="321" href="#321">321</a> <em class="jxr_javadoccomment">     */</em>
<a name="322" href="#322">322</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> clear() {
<a name="323" href="#323">323</a>         entries.clear();
<a name="324" href="#324">324</a>     }
<a name="325" href="#325">325</a>     
<a name="326" href="#326">326</a>     <em class="jxr_javadoccomment">/**</em>
<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * Clears the current list of filters and adds the specified</em>
<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     * filter mapping to this builder.  Please note that you must specify</em>
<a name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * a {@link Map} implementation that iterates the filter mapping in the</em>
<a name="330" href="#330">330</a> <em class="jxr_javadoccomment">     * order of insertion such as {@link LinkedHashMap}.  Otherwise, it will</em>
<a name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * throw an {@link IllegalArgumentException}.</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     */</em>
<a name="333" href="#333">333</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilters(Map&lt;String, ? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filters) {
<a name="334" href="#334">334</a>         <strong class="jxr_keyword">if</strong> (filters == <strong class="jxr_keyword">null</strong>) {
<a name="335" href="#335">335</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filters"</span>);
<a name="336" href="#336">336</a>         }
<a name="337" href="#337">337</a>         
<a name="338" href="#338">338</a>         <strong class="jxr_keyword">if</strong> (!isOrderedMap(filters)) {
<a name="339" href="#339">339</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="340" href="#340">340</a>                     <span class="jxr_string">"filters is not an ordered map. Please try "</span> + 
<a name="341" href="#341">341</a>                     LinkedHashMap.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">"."</span>);
<a name="342" href="#342">342</a>         }
<a name="343" href="#343">343</a> 
<a name="344" href="#344">344</a>         filters = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, IoFilter&gt;(filters);
<a name="345" href="#345">345</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> IoFilter&gt; e: filters.entrySet()) {
<a name="346" href="#346">346</a>             <strong class="jxr_keyword">if</strong> (e.getKey() == <strong class="jxr_keyword">null</strong>) {
<a name="347" href="#347">347</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filters contains a null key."</span>);
<a name="348" href="#348">348</a>             }
<a name="349" href="#349">349</a>             <strong class="jxr_keyword">if</strong> (e.getValue() == <strong class="jxr_keyword">null</strong>) {
<a name="350" href="#350">350</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filters contains a null value."</span>);
<a name="351" href="#351">351</a>             }
<a name="352" href="#352">352</a>         }
<a name="353" href="#353">353</a>         
<a name="354" href="#354">354</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="355" href="#355">355</a>             clear();
<a name="356" href="#356">356</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> IoFilter&gt; e: filters.entrySet()) {
<a name="357" href="#357">357</a>                 addLast(e.getKey(), e.getValue());
<a name="358" href="#358">358</a>             }
<a name="359" href="#359">359</a>         }
<a name="360" href="#360">360</a>     }
<a name="361" href="#361">361</a>     
<a name="362" href="#362">362</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="363" href="#363">363</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isOrderedMap(Map map) {
<a name="364" href="#364">364</a>         Class&lt;?&gt; mapType = map.getClass();
<a name="365" href="#365">365</a>         <strong class="jxr_keyword">if</strong> (LinkedHashMap.<strong class="jxr_keyword">class</strong>.isAssignableFrom(mapType)) {
<a name="366" href="#366">366</a>             <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="367" href="#367">367</a>                 LOGGER.debug(mapType.getSimpleName() + <span class="jxr_string">" is an ordered map."</span>);
<a name="368" href="#368">368</a>             }
<a name="369" href="#369">369</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="370" href="#370">370</a>         }
<a name="371" href="#371">371</a>         
<a name="372" href="#372">372</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="373" href="#373">373</a>             LOGGER.debug(mapType.getName() + <span class="jxr_string">" is not a "</span> + LinkedHashMap.<strong class="jxr_keyword">class</strong>.getSimpleName());
<a name="374" href="#374">374</a>         }
<a name="375" href="#375">375</a> 
<a name="376" href="#376">376</a>         <em class="jxr_comment">// Detect Jakarta Commons Collections OrderedMap implementations.</em>
<a name="377" href="#377">377</a>         Class&lt;?&gt; type = mapType;
<a name="378" href="#378">378</a>         <strong class="jxr_keyword">while</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a name="379" href="#379">379</a>             <strong class="jxr_keyword">for</strong> (Class&lt;?&gt; i: type.getInterfaces()) {
<a name="380" href="#380">380</a>                 <strong class="jxr_keyword">if</strong> (i.getName().endsWith(<span class="jxr_string">"OrderedMap"</span>)) {
<a name="381" href="#381">381</a>                     <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="382" href="#382">382</a>                         LOGGER.debug(
<a name="383" href="#383">383</a>                                 mapType.getSimpleName() +
<a name="384" href="#384">384</a>                                 <span class="jxr_string">" is an ordered map (guessed from that it "</span> +
<a name="385" href="#385">385</a>                                 <span class="jxr_string">" implements OrderedMap interface.)"</span>);
<a name="386" href="#386">386</a>                     }
<a name="387" href="#387">387</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="388" href="#388">388</a>                 }
<a name="389" href="#389">389</a>             }
<a name="390" href="#390">390</a>             type = type.getSuperclass();
<a name="391" href="#391">391</a>         }
<a name="392" href="#392">392</a>         
<a name="393" href="#393">393</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="394" href="#394">394</a>             LOGGER.debug(
<a name="395" href="#395">395</a>                     mapType.getName() +
<a name="396" href="#396">396</a>                     <span class="jxr_string">" doesn't implement OrderedMap interface."</span>);
<a name="397" href="#397">397</a>         }
<a name="398" href="#398">398</a>         
<a name="399" href="#399">399</a>         <em class="jxr_comment">// Last resort: try to create a new instance and test if it maintains</em>
<a name="400" href="#400">400</a>         <em class="jxr_comment">// the insertion order.</em>
<a name="401" href="#401">401</a>         LOGGER.debug(
<a name="402" href="#402">402</a>                 <span class="jxr_string">"Last resort; trying to create a new map instance with a "</span> +
<a name="403" href="#403">403</a>                 <span class="jxr_string">"default constructor and test if insertion order is "</span> +
<a name="404" href="#404">404</a>                 <span class="jxr_string">"maintained."</span>);
<a name="405" href="#405">405</a>         
<a name="406" href="#406">406</a>         Map newMap;
<a name="407" href="#407">407</a>         <strong class="jxr_keyword">try</strong> {
<a name="408" href="#408">408</a>             newMap = (Map) mapType.newInstance();
<a name="409" href="#409">409</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="410" href="#410">410</a>             <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="411" href="#411">411</a>                 LOGGER.debug(
<a name="412" href="#412">412</a>                         <span class="jxr_string">"Failed to create a new map instance of '"</span> + 
<a name="413" href="#413">413</a>                         mapType.getName() +<span class="jxr_string">"'."</span>, e);
<a name="414" href="#414">414</a>             }
<a name="415" href="#415">415</a>             <strong class="jxr_keyword">return</strong> false;
<a name="416" href="#416">416</a>         }
<a name="417" href="#417">417</a>         
<a name="418" href="#418">418</a>         Random rand = <strong class="jxr_keyword">new</strong> Random();
<a name="419" href="#419">419</a>         List&lt;String&gt; expectedNames = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="420" href="#420">420</a>         <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> dummyFilter = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilterAdapter.html">IoFilterAdapter</a>();
<a name="421" href="#421">421</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 65536; i ++) {
<a name="422" href="#422">422</a>             String filterName;
<a name="423" href="#423">423</a>             <strong class="jxr_keyword">do</strong> {
<a name="424" href="#424">424</a>                 filterName = String.valueOf(rand.nextInt());
<a name="425" href="#425">425</a>             } <strong class="jxr_keyword">while</strong> (newMap.containsKey(filterName));
<a name="426" href="#426">426</a>             
<a name="427" href="#427">427</a>             newMap.put(filterName, dummyFilter);
<a name="428" href="#428">428</a>             expectedNames.add(filterName);
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>             Iterator&lt;String&gt; it = expectedNames.iterator();
<a name="431" href="#431">431</a>             <strong class="jxr_keyword">for</strong> (Object key: newMap.keySet()) {
<a name="432" href="#432">432</a>                 <strong class="jxr_keyword">if</strong> (!it.next().equals(key)) {
<a name="433" href="#433">433</a>                     <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="434" href="#434">434</a>                         LOGGER.debug(
<a name="435" href="#435">435</a>                                 <span class="jxr_string">"The specified map didn't pass the insertion "</span> +
<a name="436" href="#436">436</a>                                 <span class="jxr_string">"order test after "</span> + (i + 1) + <span class="jxr_string">" tries."</span>);
<a name="437" href="#437">437</a>                     }
<a name="438" href="#438">438</a>                     <strong class="jxr_keyword">return</strong> false;
<a name="439" href="#439">439</a>                 }
<a name="440" href="#440">440</a>             }
<a name="441" href="#441">441</a>         }
<a name="442" href="#442">442</a>         
<a name="443" href="#443">443</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a name="444" href="#444">444</a>             LOGGER.debug(
<a name="445" href="#445">445</a>                     <span class="jxr_string">"The specified map passed the insertion order test."</span>);
<a name="446" href="#446">446</a>         }
<a name="447" href="#447">447</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="448" href="#448">448</a>     }
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> buildFilterChain(<a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">IoFilterChain</a> chain) <strong class="jxr_keyword">throws</strong> Exception {
<a name="451" href="#451">451</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a name="452" href="#452">452</a>             chain.addLast(e.getName(), e.getFilter());
<a name="453" href="#453">453</a>         }
<a name="454" href="#454">454</a>     }
<a name="455" href="#455">455</a> 
<a name="456" href="#456">456</a>     @Override
<a name="457" href="#457">457</a>     <strong class="jxr_keyword">public</strong> String toString() {
<a name="458" href="#458">458</a>         StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="459" href="#459">459</a>         buf.append(<span class="jxr_string">"{ "</span>);
<a name="460" href="#460">460</a> 
<a name="461" href="#461">461</a>         <strong class="jxr_keyword">boolean</strong> empty = <strong class="jxr_keyword">true</strong>;
<a name="462" href="#462">462</a> 
<a name="463" href="#463">463</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a name="464" href="#464">464</a>             <strong class="jxr_keyword">if</strong> (!empty) {
<a name="465" href="#465">465</a>                 buf.append(<span class="jxr_string">", "</span>);
<a name="466" href="#466">466</a>             } <strong class="jxr_keyword">else</strong> {
<a name="467" href="#467">467</a>                 empty = false;
<a name="468" href="#468">468</a>             }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>             buf.append('(');
<a name="471" href="#471">471</a>             buf.append(e.getName());
<a name="472" href="#472">472</a>             buf.append(':');
<a name="473" href="#473">473</a>             buf.append(e.getFilter());
<a name="474" href="#474">474</a>             buf.append(')');
<a name="475" href="#475">475</a>         }
<a name="476" href="#476">476</a> 
<a name="477" href="#477">477</a>         <strong class="jxr_keyword">if</strong> (empty) {
<a name="478" href="#478">478</a>             buf.append(<span class="jxr_string">"empty"</span>);
<a name="479" href="#479">479</a>         }
<a name="480" href="#480">480</a> 
<a name="481" href="#481">481</a>         buf.append(<span class="jxr_string">" }"</span>);
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a name="484" href="#484">484</a>     }
<a name="485" href="#485">485</a> 
<a name="486" href="#486">486</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkBaseName(String baseName) {
<a name="487" href="#487">487</a>         <strong class="jxr_keyword">if</strong> (baseName == <strong class="jxr_keyword">null</strong>) {
<a name="488" href="#488">488</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"baseName"</span>);
<a name="489" href="#489">489</a>         }
<a name="490" href="#490">490</a> 
<a name="491" href="#491">491</a>         <strong class="jxr_keyword">if</strong> (!contains(baseName)) {
<a name="492" href="#492">492</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown filter name: "</span>
<a name="493" href="#493">493</a>                     + baseName);
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a>     }
<a name="496" href="#496">496</a> 
<a name="497" href="#497">497</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> register(<strong class="jxr_keyword">int</strong> index, <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> e) {
<a name="498" href="#498">498</a>         <strong class="jxr_keyword">if</strong> (contains(e.getName())) {
<a name="499" href="#499">499</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="500" href="#500">500</a>                     <span class="jxr_string">"Other filter is using the same name: "</span> + e.getName());
<a name="501" href="#501">501</a>         }
<a name="502" href="#502">502</a> 
<a name="503" href="#503">503</a>         entries.add(index, e);
<a name="504" href="#504">504</a>     }
<a name="505" href="#505">505</a> 
<a name="506" href="#506">506</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a> implements <a href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html">Entry</a> {
<a name="507" href="#507">507</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
<a name="508" href="#508">508</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter;
<a name="509" href="#509">509</a> 
<a name="510" href="#510">510</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChain.html">EntryImpl</a>(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="511" href="#511">511</a>             <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a name="512" href="#512">512</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"name"</span>);
<a name="513" href="#513">513</a>             }
<a name="514" href="#514">514</a>             <strong class="jxr_keyword">if</strong> (filter == <strong class="jxr_keyword">null</strong>) {
<a name="515" href="#515">515</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"filter"</span>);
<a name="516" href="#516">516</a>             }
<a name="517" href="#517">517</a> 
<a name="518" href="#518">518</a>             <strong class="jxr_keyword">this</strong>.name = name;
<a name="519" href="#519">519</a>             <strong class="jxr_keyword">this</strong>.filter = filter;
<a name="520" href="#520">520</a>         }
<a name="521" href="#521">521</a> 
<a name="522" href="#522">522</a>         <strong class="jxr_keyword">public</strong> String getName() {
<a name="523" href="#523">523</a>             <strong class="jxr_keyword">return</strong> name;
<a name="524" href="#524">524</a>         }
<a name="525" href="#525">525</a> 
<a name="526" href="#526">526</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> getFilter() {
<a name="527" href="#527">527</a>             <strong class="jxr_keyword">return</strong> filter;
<a name="528" href="#528">528</a>         }
<a name="529" href="#529">529</a> 
<a name="530" href="#530">530</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setFilter(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="531" href="#531">531</a>             <strong class="jxr_keyword">this</strong>.filter = filter;
<a name="532" href="#532">532</a>         }
<a name="533" href="#533">533</a> 
<a name="534" href="#534">534</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">NextFilter</a> getNextFilter() {
<a name="535" href="#535">535</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="536" href="#536">536</a>         }
<a name="537" href="#537">537</a> 
<a name="538" href="#538">538</a>         @Override
<a name="539" href="#539">539</a>         <strong class="jxr_keyword">public</strong> String toString() {
<a name="540" href="#540">540</a>             <strong class="jxr_keyword">return</strong> <span class="jxr_string">"("</span> + getName() + ':' + filter + ')';
<a name="541" href="#541">541</a>         }
<a name="542" href="#542">542</a> 
<a name="543" href="#543">543</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAfter(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="544" href="#544">544</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.addAfter(getName(), name, filter);
<a name="545" href="#545">545</a>         }
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addBefore(String name, <a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> filter) {
<a name="548" href="#548">548</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.addBefore(getName(), name, filter);
<a name="549" href="#549">549</a>         }
<a name="550" href="#550">550</a> 
<a name="551" href="#551">551</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove() {
<a name="552" href="#552">552</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.remove(getName());
<a name="553" href="#553">553</a>         }
<a name="554" href="#554">554</a> 
<a name="555" href="#555">555</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> replace(<a href="../../../../../org/apache/mina/core/filterchain/IoFilter.html">IoFilter</a> newFilter) {
<a name="556" href="#556">556</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.replace(getName(), newFilter);
<a name="557" href="#557">557</a>         }
<a name="558" href="#558">558</a>     }
<a name="559" href="#559">559</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

