You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/14 12:00:44 UTC

svn commit: r594834 - /mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java

Author: trustin
Date: Wed Nov 14 03:00:43 2007
New Revision: 594834

URL: http://svn.apache.org/viewvc?rev=594834&view=rev
Log:
Added DefaultIoFilterChainBuilder.setFilters

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java?rev=594834&r1=594833&r2=594834&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChainBuilder.java Wed Nov 14 03:00:43 2007
@@ -21,8 +21,10 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.Map;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.mina.common.IoFilter.NextFilter;
@@ -309,8 +311,35 @@
     /**
      * @see IoFilterChain#clear()
      */
-    public synchronized void clear() throws Exception {
+    public synchronized void clear() {
         entries.clear();
+    }
+    
+    /**
+     * Clears the current list of filters and adds the specified
+     * filter mapping to this builder.  Please make sure to use a {@link Map}
+     * implementation that iterated the filter mapping in the order of addition
+     * such as {@link LinkedHashMap}.
+     */
+    public synchronized void setFilters(Map<String, ? extends IoFilter> filters) {
+        if (filters == null) {
+            throw new NullPointerException("filters");
+        }
+        filters = new LinkedHashMap<String, IoFilter>(filters);
+        for (Map.Entry<String, ? extends IoFilter> e: filters.entrySet()) {
+            if (e.getKey() == null) {
+                throw new NullPointerException("filters contains a null key.");
+            }
+            if (e.getValue() == null) {
+                throw new NullPointerException("filters contains a null value.");
+            }
+        }
+        
+        clear();
+
+        for (Map.Entry<String, ? extends IoFilter> e: filters.entrySet()) {
+            addLast(e.getKey(), e.getValue());
+        }
     }
 
     public void buildFilterChain(IoFilterChain chain) throws Exception {