/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/kernel/trunk/kernel-util/src/main/java/org/sakaiproject/util/SortedIterator.java $ * $Id: SortedIterator.java 105077 2012-02-24 22:54:29Z ottenhoff@longsight.com $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006, 2008 Sakai Foundation * * Licensed under the Educational Community License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **********************************************************************************/ package org.sakaiproject.util; import java.util.Iterator; import java.util.Comparator; import java.util.Vector; import java.util.Collections; /** * <p> * SortedIterator is a wrapper iterator that iterates over the wrapped iterator in a sorted order, * the order controlled by a Comparator function provided at construction. * * @deprecated use commons-collection instead, this will be removed after 2.9 - Dec 2011 */ @Deprecated public class SortedIterator implements Iterator { /** The sorted iterator. */ protected Iterator m_iterator = null; /** * Creates new SortedIterator based on the base iterator and the comparator function * * @param aIterator * The original Iterator * @param aComparator * The comparator object */ public SortedIterator(Iterator iterator, Comparator comparator) { // construct a collection (Vector) from the base iterator so we can sort Vector collection = new Vector(); while (iterator.hasNext()) { collection.add(iterator.next()); } // sort the collection based on comparator Collections.sort(collection, comparator); // remember the final sorted iterator m_iterator = collection.iterator(); } /** * Returns true if the iteration has more elements. * * @return True if the iteration has more elements; False otherwise. */ public boolean hasNext() { return m_iterator.hasNext(); } /** * Returns the next element in the iteration. * * @return The next element in the iteration */ public Object next() { return m_iterator.next(); } /** * Removes from the underlying collection the last element returned by the iterator (optional operation) (not supported). */ public void remove() { throw new UnsupportedOperationException(); } }