<!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 class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L10" href="#L10">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 class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.core.filterchain;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.ListIterator;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Random;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CopyOnWriteArrayList;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilter.NextFilter;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.filterchain.IoFilterChain.Entry;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.core.session.IoSession;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> * The default implementation of {@link IoFilterChainBuilder} which is useful</em>
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> * in most cases.  {@link DefaultIoFilterChainBuilder} has an identical interface</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * with {@link IoFilter}; it contains a list of {@link IoFilter}s that you can</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> * modify. The {@link IoFilter}s which are added to this builder will be appended</em>
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment"> * to the {@link IoFilterChain} when {@link #buildFilterChain(IoFilterChain)} is</em>
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <em class="jxr_javadoccomment"> * invoked.</em>
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> * However, the identical interface doesn't mean that it behaves in an exactly</em>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> * same way with {@link IoFilterChain}.  {@link DefaultIoFilterChainBuilder}</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment"> * doesn't manage the life cycle of the {@link IoFilter}s at all, and the</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * existing {@link IoSession}s won't get affected by the changes in this builder.</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> * {@link IoFilterChainBuilder}s affect only newly created {@link IoSession}s.</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <em class="jxr_javadoccomment"> * IoAcceptor acceptor = ...;</em>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment"> * DefaultIoFilterChainBuilder builder = acceptor.getFilterChain();</em>
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment"> * builder.addLast( "myFilter", new MyFilter() );</em>
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment"> * ...</em>
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L59" href="#L59">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 class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment"> * @org.apache.xbean.XBean</em>
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a name="DefaultIoFilterChainBuilder" href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html#DefaultIoFilterChainBuilder">DefaultIoFilterChainBuilder</a> <strong class="jxr_keyword">implements</strong> <a name="IoFilterChainBuilder" href="../../../../../org/apache/mina/core/filterchain/IoFilterChainBuilder.html#IoFilterChainBuilder">IoFilterChainBuilder</a> {
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <em class="jxr_javadoccomment">/** The logger */</em>
<a class="jxr_linenumber" name="L64" href="#L64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOGGER = LoggerFactory.getLogger(DefaultIoFilterChainBuilder.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
<a class="jxr_linenumber" name="L66" href="#L66">66</a>      <em class="jxr_javadoccomment">/** The list of filters */</em>
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;Entry&gt; entries;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">     * Creates a new instance with an empty filter list.</em>
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>      <strong class="jxr_keyword">public</strong> <a name="DefaultIoFilterChainBuilder" href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html#DefaultIoFilterChainBuilder">DefaultIoFilterChainBuilder</a>() {
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          entries = <strong class="jxr_keyword">new</strong> CopyOnWriteArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      }
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment">     * Creates a new copy of the specified {@link DefaultIoFilterChainBuilder}.</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment">     * @param filterChain The FilterChain we will copy</em>
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L81" href="#L81">81</a>      <strong class="jxr_keyword">public</strong> <a name="DefaultIoFilterChai<a name="DefaultIoFilterChainBuilder" href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html#DefaultIoFilterChainBuilder">DefaultIoFilterChainBuilder</a>/../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html#DefaultIoFilterChainBuilder">DefaultIoFilterChainBuilder</a>(<a name="DefaultIoFilterChainBuilder" href="../../../../../org/apache/mina/core/filterchain/DefaultIoFilterChainBuilder.html#DefaultIoFilterChainBuilder">DefaultIoFilterChainBuilder</a> filterChain) {
<a class="jxr_linenumber" name="L82" href="#L82">82</a>          <strong class="jxr_keyword">if</strong> (filterChain == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L83" href="#L83">83</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filterChain"</span>);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>          }
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          entries = <strong class="jxr_keyword">new</strong> CopyOnWriteArrayList&lt;&gt;(filterChain.entries);
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      }
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(String)</em>
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment">     * @param name The Filter's name we are looking for</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment">     * @return The found Entry</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">public</strong> Entry getEntry(String name) {
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>              <strong class="jxr_keyword">if</strong> (e.getName().equals(name)) {
<a class="jxr_linenumber" name="L97" href="#L97">97</a>                  <strong class="jxr_keyword">return</strong> e;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              }
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          }
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     }
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 
<a class="jxr_linenumber" name="L104" href="#L104">104</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(IoFilter)</em>
<a class="jxr_linenumber" name="L106" href="#L106">106</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment">     * @param filter The Filter we are looking for</em>
<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment">     * @return The found Entry</em>
<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L110" href="#L110">110</a>     <strong class="jxr_keyword">public</strong> Entry getEntry(<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L112" href="#L112">112</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == filter) {
<a class="jxr_linenumber" name="L113" href="#L113">113</a>                 <strong class="jxr_keyword">return</strong> e;
<a class="jxr_linenumber" name="L114" href="#L114">114</a>             }
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         }
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     }
<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getEntry(Class)</em>
<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">     * @param filterType The FilterType we are looking for</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">     * @return The found Entry</em>
<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     <strong class="jxr_keyword">public</strong> Entry getEntry(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>             <strong class="jxr_keyword">if</strong> (filterType.isAssignableFrom(e.getFilter().getClass())) {
<a class="jxr_linenumber" name="L129" href="#L129">129</a>                 <strong class="jxr_keyword">return</strong> e;
<a class="jxr_linenumber" name="L130" href="#L130">130</a>             }
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         }
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L134" href="#L134">134</a>     }
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
<a class="jxr_linenumber" name="L136" href="#L136">136</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#get(String)</em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a> <em class="jxr_javadoccomment">     * @param name The Filter's name we are looking for</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_javadoccomment">     * @return The found Filter, or null</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     <strong class="jxr_keyword">public</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> get(String name) {
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         Entry e = getEntry(name);
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         }
<a class="jxr_linenumber" name="L148" href="#L148">148</a> 
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         <strong class="jxr_keyword">return</strong> e.getFilter();
<a class="jxr_linenumber" name="L150" href="#L150">150</a>     }
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#get(Class)</em>
<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">     * @param filterType The FilterType we are looking for</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a> <em class="jxr_javadoccomment">     * @return The found Filter, or null</em>
<a class="jxr_linenumber" name="L157" href="#L157">157</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>     <strong class="jxr_keyword">public</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> get(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         Entry e = getEntry(filterType);
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L162" href="#L162">162</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         }
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         <strong class="jxr_keyword">return</strong> e.getFilter();
<a class="jxr_linenumber" name="L166" href="#L166">166</a>     }
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 
<a class="jxr_linenumber" name="L168" href="#L168">168</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getAll()</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L171" href="#L171">171</a> <em class="jxr_javadoccomment">     * @return The list of Filters</em>
<a class="jxr_linenumber" name="L172" href="#L172">172</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a>     <strong class="jxr_keyword">public</strong> List&lt;Entry&gt; getAll() {
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(entries);
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     }
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L178" href="#L178">178</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#getAllReversed()</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     * @return The list of Filters, reversed</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a>     <strong class="jxr_keyword">public</strong> List&lt;Entry&gt; getAllReversed() {
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         List&lt;Entry&gt; result = getAll();
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         Collections.reverse(result);
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L187" href="#L187">187</a>     }
<a class="jxr_linenumber" name="L188" href="#L188">188</a> 
<a class="jxr_linenumber" name="L189" href="#L189">189</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(String)</em>
<a class="jxr_linenumber" name="L191" href="#L191">191</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L192" href="#L192">192</a> <em class="jxr_javadoccomment">     * @param name The Filter's name we want to check if it's in the chain</em>
<a class="jxr_linenumber" name="L193" href="#L193">193</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;true&lt;/tt&gt; if the chain contains the given filter name</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> contains(String name) {
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         <strong class="jxr_keyword">return</strong> getEntry(name) != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L197" href="#L197">197</a>     }
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(IoFilter)</em>
<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a> <em class="jxr_javadoccomment">     * @param filter The Filter we want to check if it's in the chain</em>
<a class="jxr_linenumber" name="L203" href="#L203">203</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;true&lt;/tt&gt; if the chain contains the given filter</em>
<a class="jxr_linenumber" name="L204" href="#L204">204</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L205" href="#L205">205</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> contains(<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L206" href="#L206">206</a>         <strong class="jxr_keyword">return</strong> getEntry(filter) != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L207" href="#L207">207</a>     }
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 
<a class="jxr_linenumber" name="L209" href="#L209">209</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L210" href="#L210">210</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#contains(Class)</em>
<a class="jxr_linenumber" name="L211" href="#L211">211</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L212" href="#L212">212</a> <em class="jxr_javadoccomment">     * @param filterType The FilterType we want to check if it's in the chain</em>
<a class="jxr_linenumber" name="L213" href="#L213">213</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;true&lt;/tt&gt; if the chain contains the given filterType</em>
<a class="jxr_linenumber" name="L214" href="#L214">214</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L215" href="#L215">215</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 class="jxr_linenumber" name="L216" href="#L216">216</a>         <strong class="jxr_keyword">return</strong> getEntry(filterType) != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L217" href="#L217">217</a>     }
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L220" href="#L220">220</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addFirst(String, IoFilter)</em>
<a class="jxr_linenumber" name="L221" href="#L221">221</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L222" href="#L222">222</a> <em class="jxr_javadoccomment">     * @param name The filter's name</em>
<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">     * @param filter The filter to add</em>
<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addFirst(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L226" href="#L226">226</a>         register(0, <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a class="jxr_linenumber" name="L227" href="#L227">227</a>     }
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 
<a class="jxr_linenumber" name="L229" href="#L229">229</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L230" href="#L230">230</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addLast(String, IoFilter)</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">     * @param name The filter's name</em>
<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">     * @param filter The filter to add</em>
<a class="jxr_linenumber" name="L234" href="#L234">234</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> addLast(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         register(entries.size(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L240" href="#L240">240</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addBefore(String, String, IoFilter)</em>
<a class="jxr_linenumber" name="L241" href="#L241">241</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L242" href="#L242">242</a> <em class="jxr_javadoccomment">     * @param baseName The filter baseName</em>
<a class="jxr_linenumber" name="L243" href="#L243">243</a> <em class="jxr_javadoccomment">     * @param name The filter's name</em>
<a class="jxr_linenumber" name="L244" href="#L244">244</a> <em class="jxr_javadoccomment">     * @param filter The filter to add</em>
<a class="jxr_linenumber" name="L245" href="#L245">245</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L246" href="#L246">246</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="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         checkBaseName(baseName);
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L250" href="#L250">250</a>             Entry base = i.next();
<a class="jxr_linenumber" name="L251" href="#L251">251</a>             
<a class="jxr_linenumber" name="L252" href="#L252">252</a>             <strong class="jxr_keyword">if</strong> (base.getName().equals(baseName)) {
<a class="jxr_linenumber" name="L253" href="#L253">253</a>                 register(i.previousIndex(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a class="jxr_linenumber" name="L254" href="#L254">254</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L255" href="#L255">255</a>             }
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         }
<a class="jxr_linenumber" name="L257" href="#L257">257</a>     }
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L260" href="#L260">260</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#addAfter(String, String, IoFilter)</em>
<a class="jxr_linenumber" name="L261" href="#L261">261</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L262" href="#L262">262</a> <em class="jxr_javadoccomment">     * @param baseName The filter baseName</em>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> <em class="jxr_javadoccomment">     * @param name The filter's name</em>
<a class="jxr_linenumber" name="L264" href="#L264">264</a> <em class="jxr_javadoccomment">     * @param filter The filter to add</em>
<a class="jxr_linenumber" name="L265" href="#L265">265</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L266" href="#L266">266</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="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         checkBaseName(baseName);
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L270" href="#L270">270</a>             Entry base = i.next();
<a class="jxr_linenumber" name="L271" href="#L271">271</a>             
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             <strong class="jxr_keyword">if</strong> (base.getName().equals(baseName)) {
<a class="jxr_linenumber" name="L273" href="#L273">273</a>                 register(i.nextIndex(), <strong class="jxr_keyword">new</strong> EntryImpl(name, filter));
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L275" href="#L275">275</a>             }
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         }
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     }
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
<a class="jxr_linenumber" name="L279" href="#L279">279</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(String)</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a> <em class="jxr_javadoccomment">     * @param name The Filter's name to remove from the list of Filters</em>
<a class="jxr_linenumber" name="L283" href="#L283">283</a> <em class="jxr_javadoccomment">     * @return The removed IoFilter</em>
<a class="jxr_linenumber" name="L284" href="#L284">284</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> remove(String name) {
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L287" href="#L287">287</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         }
<a class="jxr_linenumber" name="L289" href="#L289">289</a> 
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L291" href="#L291">291</a>             Entry e = i.next();
<a class="jxr_linenumber" name="L292" href="#L292">292</a>             
<a class="jxr_linenumber" name="L293" href="#L293">293</a>             <strong class="jxr_keyword">if</strong> (e.getName().equals(name)) {
<a class="jxr_linenumber" name="L294" href="#L294">294</a>                 entries.remove(i.previousIndex());
<a class="jxr_linenumber" name="L295" href="#L295">295</a>                 
<a class="jxr_linenumber" name="L296" href="#L296">296</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a class="jxr_linenumber" name="L297" href="#L297">297</a>             }
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         }
<a class="jxr_linenumber" name="L299" href="#L299">299</a> 
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown filter name: "</span> + name);
<a class="jxr_linenumber" name="L301" href="#L301">301</a>     }
<a class="jxr_linenumber" name="L302" href="#L302">302</a> 
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(IoFilter)</em>
<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">     * @param filter The Filter we want to remove from the list of Filters</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">     * @return The removed IoFilter</em>
<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a name="IoFilte<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a>"../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> remove(<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L310" href="#L310">310</a>         <strong class="jxr_keyword">if</strong> (filter == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L311" href="#L311">311</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filter"</span>);
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         }
<a class="jxr_linenumber" name="L313" href="#L313">313</a> 
<a class="jxr_linenumber" name="L314" href="#L314">314</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L315" href="#L315">315</a>             Entry e = i.next();
<a class="jxr_linenumber" name="L316" href="#L316">316</a>             
<a class="jxr_linenumber" name="L317" href="#L317">317</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == filter) {
<a class="jxr_linenumber" name="L318" href="#L318">318</a>                 entries.remove(i.previousIndex());
<a class="jxr_linenumber" name="L319" href="#L319">319</a>                 
<a class="jxr_linenumber" name="L320" href="#L320">320</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a class="jxr_linenumber" name="L321" href="#L321">321</a>             }
<a class="jxr_linenumber" name="L322" href="#L322">322</a>         }
<a class="jxr_linenumber" name="L323" href="#L323">323</a> 
<a class="jxr_linenumber" name="L324" href="#L324">324</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 class="jxr_linenumber" name="L325" href="#L325">325</a>     }
<a class="jxr_linenumber" name="L326" href="#L326">326</a> 
<a class="jxr_linenumber" name="L327" href="#L327">327</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#remove(Class)</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">     * @param filterType The FilterType we want to remove from the list of Filters</em>
<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">     * @return The removed IoFilter</em>
<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L333" href="#L333">333</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> remove(Class&lt;? <strong class="jxr_keyword">extends</strong> IoFilter&gt; filterType) {
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         <strong class="jxr_keyword">if</strong> (filterType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filterType"</span>);
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         }
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 
<a class="jxr_linenumber" name="L338" href="#L338">338</a>         <strong class="jxr_keyword">for</strong> (ListIterator&lt;Entry&gt; i = entries.listIterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L339" href="#L339">339</a>             Entry e = i.next();
<a class="jxr_linenumber" name="L340" href="#L340">340</a>             
<a class="jxr_linenumber" name="L341" href="#L341">341</a>             <strong class="jxr_keyword">if</strong> (filterType.isAssignableFrom(e.getFilter().getClass())) {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>                 entries.remove(i.previousIndex());
<a class="jxr_linenumber" name="L343" href="#L343">343</a>                 
<a class="jxr_linenumber" name="L344" href="#L344">344</a>                 <strong class="jxr_keyword">return</strong> e.getFilter();
<a class="jxr_linenumber" name="L345" href="#L345">345</a>             }
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         }
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
<a class="jxr_linenumber" name="L348" href="#L348">348</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 class="jxr_linenumber" name="L349" href="#L349">349</a>     }
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 
<a class="jxr_linenumber" name="L351" href="#L351">351</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L352" href="#L352">352</a> <em class="jxr_javadoccomment">     * Replace a filter by a new one.</em>
<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">     * @param name The name of the filter to replace</em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a> <em class="jxr_javadoccomment">     * @param newFilter The new filter to use</em>
<a class="jxr_linenumber" name="L356" href="#L356">356</a> <em class="jxr_javadoccomment">     * @return The replaced filter</em>
<a class="jxr_linenumber" name="L357" href="#L357">357</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L358" href="#L358">358</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <a name="IoFilter" href="../..<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a>./org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> replace(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> newFilter) {
<a class="jxr_linenumber" name="L359" href="#L359">359</a>         checkBaseName(name);
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         EntryImpl e = (EntryImpl) getEntry(name);
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> oldFilter = e.getFilter();
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         e.setFilter(newFilter);
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         <strong class="jxr_keyword">return</strong> oldFilter;
<a class="jxr_linenumber" name="L365" href="#L365">365</a>     }
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">     * Replace a filter by a new one.</em>
<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L370" href="#L370">370</a> <em class="jxr_javadoccomment">     * @param oldFilter The filter to replace</em>
<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em class="jxr_javadoccomment">     * @param newFilter The new filter to use</em>
<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L373" href="#L373">373</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> replace(<a name="IoFilter" h<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a>../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> oldFilter, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> newFilter) {
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L375" href="#L375">375</a>             <strong class="jxr_keyword">if</strong> (e.getFilter() == oldFilter) {
<a class="jxr_linenumber" name="L376" href="#L376">376</a>                 ((EntryImpl) e).setFilter(newFilter);
<a class="jxr_linenumber" name="L377" href="#L377">377</a>                 
<a class="jxr_linenumber" name="L378" href="#L378">378</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L379" href="#L379">379</a>             }
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         }
<a class="jxr_linenumber" name="L381" href="#L381">381</a>         
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span> + oldFilter.getClass().getName());
<a class="jxr_linenumber" name="L383" href="#L383">383</a>     }
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 
<a class="jxr_linenumber" name="L385" href="#L385">385</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L386" href="#L386">386</a> <em class="jxr_javadoccomment">     * Replace a filter by a new one. We are looking for a filter type,</em>
<a class="jxr_linenumber" name="L387" href="#L387">387</a> <em class="jxr_javadoccomment">     * but if we have more than one with the same type, only the first</em>
<a class="jxr_linenumber" name="L388" href="#L388">388</a> <em class="jxr_javadoccomment">     * found one will be replaced</em>
<a class="jxr_linenumber" name="L389" href="#L389">389</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L390" href="#L390">390</a> <em class="jxr_javadoccomment">     * @param oldFilterType The filter type to replace</em>
<a class="jxr_linenumber" name="L391" href="#L391">391</a> <em class="jxr_javadoccomment">     * @param newFilter The new filter to use</em>
<a class="jxr_linenumber" name="L392" href="#L392">392</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L393" href="#L393">393</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="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> newFilter) {
<a class="jxr_linenumber" name="L394" href="#L394">394</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             <strong class="jxr_keyword">if</strong> (oldFilterType.isAssignableFrom(e.getFilter().getClass())) {
<a class="jxr_linenumber" name="L396" href="#L396">396</a>                 ((EntryImpl) e).setFilter(newFilter);
<a class="jxr_linenumber" name="L397" href="#L397">397</a>                 
<a class="jxr_linenumber" name="L398" href="#L398">398</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             }
<a class="jxr_linenumber" name="L400" href="#L400">400</a>         }
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         
<a class="jxr_linenumber" name="L402" href="#L402">402</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Filter not found: "</span> + oldFilterType.getName());
<a class="jxr_linenumber" name="L403" href="#L403">403</a>     }
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a> <em class="jxr_javadoccomment">     * @see IoFilterChain#clear()</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L408" href="#L408">408</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">void</strong> clear() {
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         entries.clear();
<a class="jxr_linenumber" name="L410" href="#L410">410</a>     }
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L413" href="#L413">413</a> <em class="jxr_javadoccomment">     * Clears the current list of filters and adds the specified</em>
<a class="jxr_linenumber" name="L414" href="#L414">414</a> <em class="jxr_javadoccomment">     * filter mapping to this builder.  Please note that you must specify</em>
<a class="jxr_linenumber" name="L415" href="#L415">415</a> <em class="jxr_javadoccomment">     * a {@link Map} implementation that iterates the filter mapping in the</em>
<a class="jxr_linenumber" name="L416" href="#L416">416</a> <em class="jxr_javadoccomment">     * order of insertion such as {@link LinkedHashMap}.  Otherwise, it will</em>
<a class="jxr_linenumber" name="L417" href="#L417">417</a> <em class="jxr_javadoccomment">     * throw an {@link IllegalArgumentException}.</em>
<a class="jxr_linenumber" name="L418" href="#L418">418</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L419" href="#L419">419</a> <em class="jxr_javadoccomment">     * @param filters The list of filters to set</em>
<a class="jxr_linenumber" name="L420" href="#L420">420</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L421" href="#L421">421</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 class="jxr_linenumber" name="L422" href="#L422">422</a>         <strong class="jxr_keyword">if</strong> (filters == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filters"</span>);
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         }
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         <strong class="jxr_keyword">if</strong> (!isOrderedMap(filters)) {
<a class="jxr_linenumber" name="L427" href="#L427">427</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filters is not an ordered map. Please try "</span>
<a class="jxr_linenumber" name="L428" href="#L428">428</a>                     + LinkedHashMap.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">"."</span>);
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         }
<a class="jxr_linenumber" name="L430" href="#L430">430</a> 
<a class="jxr_linenumber" name="L431" href="#L431">431</a>         filters = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;&gt;(filters);
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> IoFilter&gt; e : filters.entrySet()) {
<a class="jxr_linenumber" name="L434" href="#L434">434</a>             <strong class="jxr_keyword">if</strong> (e.getKey() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filters contains a null key."</span>);
<a class="jxr_linenumber" name="L436" href="#L436">436</a>             }
<a class="jxr_linenumber" name="L437" href="#L437">437</a>             
<a class="jxr_linenumber" name="L438" href="#L438">438</a>             <strong class="jxr_keyword">if</strong> (e.getValue() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L439" href="#L439">439</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filters contains a null value."</span>);
<a class="jxr_linenumber" name="L440" href="#L440">440</a>             }
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         }
<a class="jxr_linenumber" name="L442" href="#L442">442</a> 
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a class="jxr_linenumber" name="L444" href="#L444">444</a>             clear();
<a class="jxr_linenumber" name="L445" href="#L445">445</a>             
<a class="jxr_linenumber" name="L446" href="#L446">446</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> IoFilter&gt; e : filters.entrySet()) {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>                 addLast(e.getKey(), e.getValue());
<a class="jxr_linenumber" name="L448" href="#L448">448</a>             }
<a class="jxr_linenumber" name="L449" href="#L449">449</a>         }
<a class="jxr_linenumber" name="L450" href="#L450">450</a>     }
<a class="jxr_linenumber" name="L451" href="#L451">451</a> 
<a class="jxr_linenumber" name="L452" href="#L452">452</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="L453" href="#L453">453</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isOrderedMap(Map&lt;String,? <strong class="jxr_keyword">extends</strong> IoFilter&gt; map) {
<a class="jxr_linenumber" name="L454" href="#L454">454</a>         <strong class="jxr_keyword">if</strong> (map == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L455" href="#L455">455</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         }
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         Class&lt;?&gt; mapType = map.getClass();
<a class="jxr_linenumber" name="L459" href="#L459">459</a>         
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         <strong class="jxr_keyword">if</strong> (LinkedHashMap.<strong class="jxr_keyword">class</strong>.isAssignableFrom(mapType)) {
<a class="jxr_linenumber" name="L461" href="#L461">461</a>             <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L462" href="#L462">462</a>                 LOGGER.debug(<span class="jxr_string">"{} is an ordered map."</span>, mapType.getSimpleName() );
<a class="jxr_linenumber" name="L463" href="#L463">463</a>             }
<a class="jxr_linenumber" name="L464" href="#L464">464</a>             
<a class="jxr_linenumber" name="L465" href="#L465">465</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L466" href="#L466">466</a>         }
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 
<a class="jxr_linenumber" name="L468" href="#L468">468</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L469" href="#L469">469</a>             LOGGER.debug(<span class="jxr_string">"{} is not a {}"</span>, mapType.getName(), LinkedHashMap.<strong class="jxr_keyword">class</strong>.getSimpleName());
<a class="jxr_linenumber" name="L470" href="#L470">470</a>         }
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         <em class="jxr_comment">// Detect Jakarta Commons Collections OrderedMap implementations.</em>
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         Class&lt;?&gt; type = mapType;
<a class="jxr_linenumber" name="L474" href="#L474">474</a>         
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         <strong class="jxr_keyword">while</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L476" href="#L476">476</a>             <strong class="jxr_keyword">for</strong> (Class&lt;?&gt; i : type.getInterfaces()) {
<a class="jxr_linenumber" name="L477" href="#L477">477</a>                 <strong class="jxr_keyword">if</strong> (i.getName().endsWith(<span class="jxr_string">"OrderedMap"</span>)) {
<a class="jxr_linenumber" name="L478" href="#L478">478</a>                     <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L479" href="#L479">479</a>                         LOGGER.debug(<span class="jxr_string">"{} is an ordered map (guessed from that it implements OrderedMap interface.)"</span>,
<a class="jxr_linenumber" name="L480" href="#L480">480</a>                                 mapType.getSimpleName());
<a class="jxr_linenumber" name="L481" href="#L481">481</a>                     }
<a class="jxr_linenumber" name="L482" href="#L482">482</a>                     
<a class="jxr_linenumber" name="L483" href="#L483">483</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L484" href="#L484">484</a>                 }
<a class="jxr_linenumber" name="L485" href="#L485">485</a>             }
<a class="jxr_linenumber" name="L486" href="#L486">486</a>             
<a class="jxr_linenumber" name="L487" href="#L487">487</a>             type = type.getSuperclass();
<a class="jxr_linenumber" name="L488" href="#L488">488</a>         }
<a class="jxr_linenumber" name="L489" href="#L489">489</a> 
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L491" href="#L491">491</a>             LOGGER.debug(<span class="jxr_string">"{} doesn't implement OrderedMap interface."</span>, mapType.getName() );
<a class="jxr_linenumber" name="L492" href="#L492">492</a>         }
<a class="jxr_linenumber" name="L493" href="#L493">493</a> 
<a class="jxr_linenumber" name="L494" href="#L494">494</a>         <em class="jxr_comment">// Last resort: try to create a new instance and test if it maintains</em>
<a class="jxr_linenumber" name="L495" href="#L495">495</a>         <em class="jxr_comment">// the insertion order.</em>
<a class="jxr_linenumber" name="L496" href="#L496">496</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L497" href="#L497">497</a>             LOGGER.debug(<span class="jxr_string">"Last resort; trying to create a new map instance with a "</span>
<a class="jxr_linenumber" name="L498" href="#L498">498</a>                     + <span class="jxr_string">"default constructor and test if insertion order is maintained."</span>);
<a class="jxr_linenumber" name="L499" href="#L499">499</a>         }
<a class="jxr_linenumber" name="L500" href="#L500">500</a> 
<a class="jxr_linenumber" name="L501" href="#L501">501</a>         Map&lt;String,IoFilter&gt; newMap;
<a class="jxr_linenumber" name="L502" href="#L502">502</a>         
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L504" href="#L504">504</a>             newMap = (Map&lt;String,IoFilter&gt;) mapType.newInstance();
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="L506" href="#L506">506</a>             <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L507" href="#L507">507</a>                 LOGGER.debug(<span class="jxr_string">"Failed to create a new map instance of '{}'."</span>, mapType.getName(), e);
<a class="jxr_linenumber" name="L508" href="#L508">508</a>             }
<a class="jxr_linenumber" name="L509" href="#L509">509</a>             
<a class="jxr_linenumber" name="L510" href="#L510">510</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L511" href="#L511">511</a>         }
<a class="jxr_linenumber" name="L512" href="#L512">512</a> 
<a class="jxr_linenumber" name="L513" href="#L513">513</a>         Random rand = <strong class="jxr_keyword">new</strong> Random();
<a class="jxr_linenumber" name="L514" href="#L514">514</a>         List&lt;String&gt; expectedNames = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L515" href="#L515">515</a>         <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> dummyFilter = <strong class="jxr_keyword">new</strong> <a name="IoFilterAdapter" href="../../../../../org/apache/mina/core/filterchain/IoFilterAdapter.html#IoFilterAdapter">IoFilterAdapter</a>();
<a class="jxr_linenumber" name="L516" href="#L516">516</a>         
<a class="jxr_linenumber" name="L517" href="#L517">517</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 65536; i++) {
<a class="jxr_linenumber" name="L518" href="#L518">518</a>             String filterName;
<a class="jxr_linenumber" name="L519" href="#L519">519</a>             
<a class="jxr_linenumber" name="L520" href="#L520">520</a>             <strong class="jxr_keyword">do</strong> {
<a class="jxr_linenumber" name="L521" href="#L521">521</a>                 filterName = String.valueOf(rand.nextInt());
<a class="jxr_linenumber" name="L522" href="#L522">522</a>             } <strong class="jxr_keyword">while</strong> (newMap.containsKey(filterName));
<a class="jxr_linenumber" name="L523" href="#L523">523</a> 
<a class="jxr_linenumber" name="L524" href="#L524">524</a>             newMap.put(filterName, dummyFilter);
<a class="jxr_linenumber" name="L525" href="#L525">525</a>             expectedNames.add(filterName);
<a class="jxr_linenumber" name="L526" href="#L526">526</a> 
<a class="jxr_linenumber" name="L527" href="#L527">527</a>             Iterator&lt;String&gt; it = expectedNames.iterator();
<a class="jxr_linenumber" name="L528" href="#L528">528</a>             
<a class="jxr_linenumber" name="L529" href="#L529">529</a>             <strong class="jxr_keyword">for</strong> (Object key : newMap.keySet()) {
<a class="jxr_linenumber" name="L530" href="#L530">530</a>                 <strong class="jxr_keyword">if</strong> (!it.next().equals(key)) {
<a class="jxr_linenumber" name="L531" href="#L531">531</a>                     <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L532" href="#L532">532</a>                         LOGGER.debug(<span class="jxr_string">"The specified map didn't pass the insertion order test after {} tries."</span>, (i + 1));
<a class="jxr_linenumber" name="L533" href="#L533">533</a>                     }
<a class="jxr_linenumber" name="L534" href="#L534">534</a>                     
<a class="jxr_linenumber" name="L535" href="#L535">535</a>                     <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L536" href="#L536">536</a>                 }
<a class="jxr_linenumber" name="L537" href="#L537">537</a>             }
<a class="jxr_linenumber" name="L538" href="#L538">538</a>         }
<a class="jxr_linenumber" name="L539" href="#L539">539</a> 
<a class="jxr_linenumber" name="L540" href="#L540">540</a>         <strong class="jxr_keyword">if</strong> (LOGGER.isDebugEnabled()) {
<a class="jxr_linenumber" name="L541" href="#L541">541</a>             LOGGER.debug(<span class="jxr_string">"The specified map passed the insertion order test."</span>);
<a class="jxr_linenumber" name="L542" href="#L542">542</a>         }
<a class="jxr_linenumber" name="L543" href="#L543">543</a>         
<a class="jxr_linenumber" name="L544" href="#L544">544</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L545" href="#L545">545</a>     }
<a class="jxr_linenumber" name="L546" href="#L546">546</a> 
<a class="jxr_linenumber" name="L547" href="#L547">547</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L548" href="#L548">548</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L549" href="#L549">549</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L550" href="#L550">550</a>     @Override
<a class="jxr_linenumber" name="L551" href="#L551">551</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> buildFilterChain(<a name="IoFilterChain" href="../../../../../org/apache/mina/core/filterchain/IoFilterChain.html#IoFilterChain">IoFilterChain</a> chain) <strong class="jxr_keyword">throws</strong> Exception {
<a class="jxr_linenumber" name="L552" href="#L552">552</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L553" href="#L553">553</a>             chain.addLast(e.getName(), e.getFilter());
<a class="jxr_linenumber" name="L554" href="#L554">554</a>         }
<a class="jxr_linenumber" name="L555" href="#L555">555</a>     }
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 
<a class="jxr_linenumber" name="L557" href="#L557">557</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L558" href="#L558">558</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L559" href="#L559">559</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L560" href="#L560">560</a>     @Override
<a class="jxr_linenumber" name="L561" href="#L561">561</a>     <strong class="jxr_keyword">public</strong> String toString() {
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L563" href="#L563">563</a>         buf.append(<span class="jxr_string">"{ "</span>);
<a class="jxr_linenumber" name="L564" href="#L564">564</a> 
<a class="jxr_linenumber" name="L565" href="#L565">565</a>         <strong class="jxr_keyword">boolean</strong> empty = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L566" href="#L566">566</a> 
<a class="jxr_linenumber" name="L567" href="#L567">567</a>         <strong class="jxr_keyword">for</strong> (Entry e : entries) {
<a class="jxr_linenumber" name="L568" href="#L568">568</a>             <strong class="jxr_keyword">if</strong> (!empty) {
<a class="jxr_linenumber" name="L569" href="#L569">569</a>                 buf.append(<span class="jxr_string">", "</span>);
<a class="jxr_linenumber" name="L570" href="#L570">570</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L571" href="#L571">571</a>                 empty = false;
<a class="jxr_linenumber" name="L572" href="#L572">572</a>             }
<a class="jxr_linenumber" name="L573" href="#L573">573</a> 
<a class="jxr_linenumber" name="L574" href="#L574">574</a>             buf.append('(');
<a class="jxr_linenumber" name="L575" href="#L575">575</a>             buf.append(e.getName());
<a class="jxr_linenumber" name="L576" href="#L576">576</a>             buf.append(':');
<a class="jxr_linenumber" name="L577" href="#L577">577</a>             buf.append(e.getFilter());
<a class="jxr_linenumber" name="L578" href="#L578">578</a>             buf.append(')');
<a class="jxr_linenumber" name="L579" href="#L579">579</a>         }
<a class="jxr_linenumber" name="L580" href="#L580">580</a> 
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         <strong class="jxr_keyword">if</strong> (empty) {
<a class="jxr_linenumber" name="L582" href="#L582">582</a>             buf.append(<span class="jxr_string">"empty"</span>);
<a class="jxr_linenumber" name="L583" href="#L583">583</a>         }
<a class="jxr_linenumber" name="L584" href="#L584">584</a> 
<a class="jxr_linenumber" name="L585" href="#L585">585</a>         buf.append(<span class="jxr_string">" }"</span>);
<a class="jxr_linenumber" name="L586" href="#L586">586</a> 
<a class="jxr_linenumber" name="L587" href="#L587">587</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L588" href="#L588">588</a>     }
<a class="jxr_linenumber" name="L589" href="#L589">589</a> 
<a class="jxr_linenumber" name="L590" href="#L590">590</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkBaseName(String baseName) {
<a class="jxr_linenumber" name="L591" href="#L591">591</a>         <strong class="jxr_keyword">if</strong> (baseName == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L592" href="#L592">592</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"baseName"</span>);
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         }
<a class="jxr_linenumber" name="L594" href="#L594">594</a> 
<a class="jxr_linenumber" name="L595" href="#L595">595</a>         <strong class="jxr_keyword">if</strong> (!contains(baseName)) {
<a class="jxr_linenumber" name="L596" href="#L596">596</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown filter name: "</span> + baseName);
<a class="jxr_linenumber" name="L597" href="#L597">597</a>         }
<a class="jxr_linenumber" name="L598" href="#L598">598</a>     }
<a class="jxr_linenumber" name="L599" href="#L599">599</a> 
<a class="jxr_linenumber" name="L600" href="#L600">600</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> register(<strong class="jxr_keyword">int</strong> index, Entry e) {
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         <strong class="jxr_keyword">if</strong> (contains(e.getName())) {
<a class="jxr_linenumber" name="L602" href="#L602">602</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Other filter is using the same name: "</span> + e.getName());
<a class="jxr_linenumber" name="L603" href="#L603">603</a>         }
<a class="jxr_linenumber" name="L604" href="#L604">604</a> 
<a class="jxr_linenumber" name="L605" href="#L605">605</a>         entries.add(index, e);
<a class="jxr_linenumber" name="L606" href="#L606">606</a>     }
<a class="jxr_linenumber" name="L607" href="#L607">607</a> 
<a class="jxr_linenumber" name="L608" href="#L608">608</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> EntryImpl <strong class="jxr_keyword">implements</strong> Entry {
<a class="jxr_linenumber" name="L609" href="#L609">609</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
<a class="jxr_linenumber" name="L610" href="#L610">610</a> 
<a class="jxr_linenumber" name="L611" href="#L611">611</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter;
<a class="jxr_linenumber" name="L612" href="#L612">612</a> 
<a class="jxr_linenumber" name="L613" href="#L613">613</a>         <strong class="jxr_keyword">private</strong> EntryImpl(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L614" href="#L614">614</a>             <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L615" href="#L615">615</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L616" href="#L616">616</a>             }
<a class="jxr_linenumber" name="L617" href="#L617">617</a>             
<a class="jxr_linenumber" name="L618" href="#L618">618</a>             <strong class="jxr_keyword">if</strong> (filter == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L619" href="#L619">619</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"filter"</span>);
<a class="jxr_linenumber" name="L620" href="#L620">620</a>             }
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a>             <strong class="jxr_keyword">this</strong>.name = name;
<a class="jxr_linenumber" name="L623" href="#L623">623</a>             <strong class="jxr_keyword">this</strong>.filter = filter;
<a class="jxr_linenumber" name="L624" href="#L624">624</a>         }
<a class="jxr_linenumber" name="L625" href="#L625">625</a> 
<a class="jxr_linenumber" name="L626" href="#L626">626</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L627" href="#L627">627</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L628" href="#L628">628</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         @Override
<a class="jxr_linenumber" name="L630" href="#L630">630</a>         <strong class="jxr_keyword">public</strong> String getName() {
<a class="jxr_linenumber" name="L631" href="#L631">631</a>             <strong class="jxr_keyword">return</strong> name;
<a class="jxr_linenumber" name="L632" href="#L632">632</a>         }
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L635" href="#L635">635</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L636" href="#L636">636</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         @Override
<a class="jxr_linenumber" name="L638" href="#L638">638</a>         <strong class="jxr_keyword">public</strong> <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> getFilter() {
<a class="jxr_linenumber" name="L639" href="#L639">639</a>             <strong class="jxr_keyword">return</strong> filter;
<a class="jxr_linenumber" name="L640" href="#L640">640</a>         }
<a class="jxr_linenumber" name="L641" href="#L641">641</a> 
<a class="jxr_linenumber" name="L642" href="#L642">642</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> setFilter(<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L643" href="#L643">643</a>             <strong class="jxr_keyword">this</strong>.filter = filter;
<a class="jxr_linenumber" name="L644" href="#L644">644</a>         }
<a class="jxr_linenumber" name="L645" href="#L645">645</a> 
<a class="jxr_linenumber" name="L646" href="#L646">646</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L647" href="#L647">647</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L648" href="#L648">648</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L649" href="#L649">649</a>         @Override
<a class="jxr_linenumber" name="L650" href="#L650">650</a>         <strong class="jxr_keyword">public</strong> NextFilter getNextFilter() {
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a class="jxr_linenumber" name="L652" href="#L652">652</a>         }
<a class="jxr_linenumber" name="L653" href="#L653">653</a> 
<a class="jxr_linenumber" name="L654" href="#L654">654</a>         @Override
<a class="jxr_linenumber" name="L655" href="#L655">655</a>         <strong class="jxr_keyword">public</strong> String toString() {
<a class="jxr_linenumber" name="L656" href="#L656">656</a>             <strong class="jxr_keyword">return</strong> <span class="jxr_string">"("</span> + getName() + ':' + filter + ')';
<a class="jxr_linenumber" name="L657" href="#L657">657</a>         }
<a class="jxr_linenumber" name="L658" href="#L658">658</a> 
<a class="jxr_linenumber" name="L659" href="#L659">659</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L660" href="#L660">660</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L661" href="#L661">661</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L662" href="#L662">662</a>         @Override
<a class="jxr_linenumber" name="L663" href="#L663">663</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAfter(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L664" href="#L664">664</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.addAfter(getName(), name, filter);
<a class="jxr_linenumber" name="L665" href="#L665">665</a>         }
<a class="jxr_linenumber" name="L666" href="#L666">666</a> 
<a class="jxr_linenumber" name="L667" href="#L667">667</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L668" href="#L668">668</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L669" href="#L669">669</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L670" href="#L670">670</a>         @Override
<a class="jxr_linenumber" name="L671" href="#L671">671</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addBefore(String name, <a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> filter) {
<a class="jxr_linenumber" name="L672" href="#L672">672</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.addBefore(getName(), name, filter);
<a class="jxr_linenumber" name="L673" href="#L673">673</a>         }
<a class="jxr_linenumber" name="L674" href="#L674">674</a> 
<a class="jxr_linenumber" name="L675" href="#L675">675</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L676" href="#L676">676</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L677" href="#L677">677</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L678" href="#L678">678</a>         @Override
<a class="jxr_linenumber" name="L679" href="#L679">679</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> remove() {
<a class="jxr_linenumber" name="L680" href="#L680">680</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.remove(getName());
<a class="jxr_linenumber" name="L681" href="#L681">681</a>         }
<a class="jxr_linenumber" name="L682" href="#L682">682</a> 
<a class="jxr_linenumber" name="L683" href="#L683">683</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L684" href="#L684">684</a> <em class="jxr_javadoccomment">         * {@inheritDoc}</em>
<a class="jxr_linenumber" name="L685" href="#L685">685</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="L686" href="#L686">686</a>         @Override
<a class="jxr_linenumber" name="L687" href="#L687">687</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> replace(<a name="IoFilter" href="../../../../../org/apache/mina/core/filterchain/IoFilter.html#IoFilter">IoFilter</a> newFilter) {
<a class="jxr_linenumber" name="L688" href="#L688">688</a>             DefaultIoFilterChainBuilder.<strong class="jxr_keyword">this</strong>.replace(getName(), newFilter);
<a class="jxr_linenumber" name="L689" href="#L689">689</a>         }
<a class="jxr_linenumber" name="L690" href="#L690">690</a>     }
<a class="jxr_linenumber" name="L691" href="#L691">691</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2004&#x2013;2019 <a href="http://mina.apache.org/">Apache MINA Project</a>. All rights reserved.</div>
</body>
</html>
