Javolution 6.0.0 java
TableIteratorImpl.java
Go to the documentation of this file.
1 /*
2  * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3  * Copyright (C) 2012 - Javolution (http://javolution.org/)
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and distribute this software is
7  * freely granted, provided that this notice is preserved.
8  */
9 package javolution.util.internal.table;
10 
11 import java.util.ListIterator;
12 import java.util.NoSuchElementException;
13 
15 
19 public final class TableIteratorImpl<E> implements ListIterator<E> {
20 
21  private int currentIndex = -1;
22  private int end;
23  private int nextIndex;
24  private final TableService<E> table;
25 
27  this.table = table;
28  this.nextIndex = index;
29  this.end = table.size();
30  }
31 
32  @Override
33  public void add(E e) {
34  table.add(nextIndex++, e);
35  end++;
36  currentIndex = -1;
37  }
38 
39  @Override
40  public boolean hasNext() {
41  return (nextIndex < end);
42  }
43 
44  @Override
45  public boolean hasPrevious() {
46  return nextIndex > 0;
47  }
48 
49  @Override
50  public E next() {
51  if (nextIndex >= end) throw new NoSuchElementException();
53  return table.get(currentIndex);
54  }
55 
56  @Override
57  public int nextIndex() {
58  return nextIndex;
59  }
60 
61  @Override
62  public E previous() {
63  if (nextIndex <= 0) throw new NoSuchElementException();
65  return table.get(currentIndex);
66  }
67 
68  @Override
69  public int previousIndex() {
70  return nextIndex - 1;
71  }
72 
73  @Override
74  public void remove() {
75  if (currentIndex < 0) throw new IllegalStateException();
76  table.remove(currentIndex);
77  end--;
78  if (currentIndex < nextIndex) {
79  nextIndex--;
80  }
81  currentIndex = -1;
82  }
83 
84  @Override
85  public void set(E e) {
86  if (currentIndex >= 0) {
87  table.set(currentIndex, e);
88  } else {
89  throw new IllegalStateException();
90  }
91  }
92 
93 }
javolution
javolution.util.internal.table.TableIteratorImpl.hasPrevious
boolean hasPrevious()
Definition: TableIteratorImpl.java:45
javolution.util.service
Definition: BitSetService.java:9
javolution.util.internal.table.TableIteratorImpl
Definition: TableIteratorImpl.java:19
javolution.util.internal.table.TableIteratorImpl.previous
E previous()
Definition: TableIteratorImpl.java:62
javolution.util.internal.table.TableIteratorImpl.nextIndex
int nextIndex
Definition: TableIteratorImpl.java:23
javolution.util.internal.table.TableIteratorImpl.table
final TableService< E > table
Definition: TableIteratorImpl.java:24
javolution.util.internal.table.TableIteratorImpl.next
E next()
Definition: TableIteratorImpl.java:50
javolution.util.internal.table.TableIteratorImpl.previousIndex
int previousIndex()
Definition: TableIteratorImpl.java:69
javolution.util.internal.table.TableIteratorImpl.TableIteratorImpl
TableIteratorImpl(TableService< E > table, int index)
Definition: TableIteratorImpl.java:26
javolution.util.internal.table.TableIteratorImpl.nextIndex
int nextIndex()
Definition: TableIteratorImpl.java:57
javolution.util.internal.table.TableIteratorImpl.hasNext
boolean hasNext()
Definition: TableIteratorImpl.java:40
javolution.util.service.TableService
Definition: TableService.java:21
javolution.util.internal.table.TableIteratorImpl.end
int end
Definition: TableIteratorImpl.java:22
javolution.util.internal.table.TableIteratorImpl.add
void add(E e)
Definition: TableIteratorImpl.java:33
javolution.util
Definition: FastBitSet.java:9
javolution.util.internal.table.TableIteratorImpl.currentIndex
int currentIndex
Definition: TableIteratorImpl.java:21