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