]> WPIA git - gigi.git/blobdiff - lib/jetty/org/eclipse/jetty/http/PathMap.java
updating jetty to jetty-9.2.16.v2016040
[gigi.git] / lib / jetty / org / eclipse / jetty / http / PathMap.java
index b78f5728d30822092e6816267323e8ce77b85f95..d2196874245663db2b0fb1802aff6012ee68a1da 100644 (file)
@@ -1,6 +1,6 @@
 //
 //  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
+//  Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
 //  ------------------------------------------------------------------------
 //  All rights reserved. This program and the accompanying materials
 //  are made available under the terms of the Eclipse Public License v1.0
 
 package org.eclipse.jetty.http;
 
+import java.util.AbstractSet;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
 
 import org.eclipse.jetty.util.ArrayTernaryTrie;
+import org.eclipse.jetty.util.IncludeExclude;
+import org.eclipse.jetty.util.Predicate;
 import org.eclipse.jetty.util.Trie;
 import org.eclipse.jetty.util.URIUtil;
 
@@ -569,4 +573,54 @@ public class PathMap<O> extends HashMap<String,O>
             this.mapped = mapped;
         }
     }
+    
+    public static class PathSet extends AbstractSet<String> implements Predicate<String>
+    {
+        private final PathMap<Boolean> _map = new PathMap<>();
+        
+        @Override
+        public Iterator<String> iterator()
+        {
+            return _map.keySet().iterator();
+        }
+
+        @Override
+        public int size()
+        {
+            return _map.size();
+        }
+        
+        @Override
+        public boolean add(String item)
+        {
+            return _map.put(item,Boolean.TRUE)==null;
+        }
+        
+        @Override
+        public boolean remove(Object item)
+        {
+            return _map.remove(item)!=null;
+        }
+
+        @Override
+        public boolean contains(Object o) 
+        { 
+            return _map.containsKey(o); 
+        }
+        
+        @Override
+        public boolean test(String s)
+        {
+            return _map.containsMatch(s);
+        }
+        
+        public boolean containsMatch(String s) 
+        { 
+            return _map.containsMatch(s); 
+        }
+        public boolean matches(String item)
+        {
+            return _map.containsMatch(item);
+        }
+    }
 }