1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen// GenericsNote: Converted. 2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/* 3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Copyright 2004 The Apache Software Foundation 4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Licensed under the Apache License, Version 2.0 (the "License"); 6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * you may not use this file except in compliance with the License. 7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * You may obtain a copy of the License at 8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * http://www.apache.org/licenses/LICENSE-2.0 10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Unless required by applicable law or agreed to in writing, software 12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * distributed under the License is distributed on an "AS IS" BASIS, 13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * See the License for the specific language governing permissions and 15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * limitations under the License. 16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.jivesoftware.smack.util.collections; 18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenimport java.util.NoSuchElementException; 20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/** 22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Provides an implementation of an empty iterator. 23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * 24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Matt Hall, John Watkinson, Stephen Colebourne 25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @version $Revision: 1.1 $ $Date: 2005/10/11 17:05:24 $ 26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @since Commons Collections 3.1 27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenabstract class AbstractEmptyIterator <E> { 29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen /** 31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Constructor. 32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */ 33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen protected AbstractEmptyIterator() { 34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen super(); 35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public boolean hasNext() { 38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return false; 39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public E next() { 42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new NoSuchElementException("Iterator contains no elements"); 43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public boolean hasPrevious() { 46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return false; 47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public E previous() { 50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new NoSuchElementException("Iterator contains no elements"); 51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public int nextIndex() { 54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return 0; 55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public int previousIndex() { 58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen return -1; 59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 61d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public void add(E obj) { 62d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new UnsupportedOperationException("add() not supported for empty Iterator"); 63d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 64d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 65d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public void set(E obj) { 66d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new IllegalStateException("Iterator contains no elements"); 67d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 68d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 69d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public void remove() { 70d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new IllegalStateException("Iterator contains no elements"); 71d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 72d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 73d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public E getKey() { 74d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new IllegalStateException("Iterator contains no elements"); 75d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 76d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 77d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public E getValue() { 78d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new IllegalStateException("Iterator contains no elements"); 79d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 80d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 81d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public E setValue(E value) { 82d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen throw new IllegalStateException("Iterator contains no elements"); 83d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 84d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 85d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen public void reset() { 86d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen // do nothing 87d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen } 88d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen 89d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen} 90