+
+ 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);
+ }
+ }