Move utility classes to utils.
[jFCPlib.git] / src / main / java / net / pterodactylus / util / filter / Filters.java
diff --git a/src/main/java/net/pterodactylus/util/filter/Filters.java b/src/main/java/net/pterodactylus/util/filter/Filters.java
deleted file mode 100644 (file)
index d2bbb49..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * jFCPlib - Filters.java - Copyright © 2009 David Roden
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-package net.pterodactylus.util.filter;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.Map.Entry;
-
-/**
- * Defines various methods to filter {@link Collection}s.
- *
- * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- */
-public class Filters {
-
-       /**
-        * Returns a list that contains only the elements from the given list that
-        * match the given filter.
-        *
-        * @param <E>
-        *            The type of the list elements
-        * @param list
-        *            The list to filter
-        * @param listFilter
-        *            The list filter
-        * @return The filtered list
-        */
-       public static <E> List<E> filteredList(List<E> list, Filter<E> listFilter) {
-               List<E> filteredList = new ArrayList<E>();
-               for (E element : list) {
-                       if (listFilter.filterObject(element)) {
-                               filteredList.add(element);
-                       }
-               }
-               return filteredList;
-       }
-
-       /**
-        * Returns a set that contains only the elements from the given set that
-        * match the given filter.
-        *
-        * @param <E>
-        *            The type of the set elements
-        * @param set
-        *            The set to filter
-        * @param setFilter
-        *            The set filter
-        * @return The filtered set
-        */
-       public static <E> Set<E> filteredSet(Set<E> set, Filter<E> setFilter) {
-               Set<E> filteredSet = new HashSet<E>();
-               for (E element : set) {
-                       if (setFilter.filterObject(element)) {
-                               filteredSet.add(element);
-                       }
-               }
-               return filteredSet;
-       }
-
-       /**
-        * Returns a map that contains only the elements from the given map that
-        * match the given filter.
-        *
-        * @param <K>
-        *            The type of the map keys
-        * @param <V>
-        *            The type of the map values
-        * @param map
-        *            The map to filter
-        * @param mapFilter
-        *            The map filter
-        * @return The filtered map
-        */
-       public static <K, V> Map<K, V> filteredMap(Map<K, V> map, Filter<Entry<K, V>> mapFilter) {
-               Map<K, V> filteredMap = new HashMap<K, V>();
-               for (Entry<K, V> element : map.entrySet()) {
-                       if (mapFilter.filterObject(element)) {
-                               filteredMap.put(element.getKey(), element.getValue());
-                       }
-               }
-               return filteredMap;
-       }
-
-       /**
-        * Returns a collection that contains only the elements from the given
-        * collection that match the given filter.
-        *
-        * @param <K>
-        *            The type of the collection values
-        * @param collection
-        *            The collection to filter
-        * @param collectionFilter
-        *            The collection filter
-        * @return The filtered collection
-        */
-       public static <K> Collection<K> filteredCollection(Collection<K> collection, Filter<K> collectionFilter) {
-               return filteredList(new ArrayList<K>(collection), collectionFilter);
-       }
-
-       /**
-        * Returns an iterator that contains only the elements from the given
-        * iterator that match the given filter.
-        *
-        * @param <E>
-        *            The type of the iterator elements
-        * @param iterator
-        *            The iterator to filter
-        * @param iteratorFilter
-        *            The iterator filter
-        * @return The filtered iterator
-        */
-       public static <E> Iterator<E> filteredIterator(final Iterator<E> iterator, final Filter<E> iteratorFilter) {
-               return new Iterator<E>() {
-
-                       private boolean gotNextElement = false;
-
-                       private E nextElement;
-
-                       private void getNextElement() {
-                               if (gotNextElement) {
-                                       return;
-                               }
-                               while (iterator.hasNext()) {
-                                       nextElement = iterator.next();
-                                       if (iteratorFilter.filterObject(nextElement)) {
-                                               gotNextElement = true;
-                                               break;
-                                       }
-                               }
-                       }
-
-                       /**
-                        * {@inheritDoc}
-                        *
-                        * @see java.util.Iterator#hasNext()
-                        */
-                       public boolean hasNext() {
-                               getNextElement();
-                               return gotNextElement;
-                       }
-
-                       /**
-                        * {@inheritDoc}
-                        *
-                        * @see java.util.Iterator#next()
-                        */
-                       public E next() {
-                               getNextElement();
-                               if (!gotNextElement) {
-                                       throw new NoSuchElementException("no more elements in iteration");
-                               }
-                               gotNextElement = false;
-                               return nextElement;
-                       }
-
-                       /**
-                        * {@inheritDoc}
-                        *
-                        * @see java.util.Iterator#remove()
-                        */
-                       public void remove() {
-                               throw new UnsupportedOperationException("remove() not supported on this iteration");
-                       }
-
-               };
-       }
-
-}