Javolution 6.0.0 java
TableView.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.Collection;
12 import java.util.Iterator;
13 import java.util.ListIterator;
14 import java.util.NoSuchElementException;
15 
20 
25 public abstract class TableView<E> extends CollectionView<E> implements TableService<E> {
26 
27  private static final long serialVersionUID = 0x600L; // Version.
28 
33  super(target);
34  }
35 
36  @Override
37  public abstract void add(int index, E element);
38 
39  @Override
40  public boolean addAll(int index, Collection<? extends E> c) {
41  return subList(index, index).addAll(c);
42  }
43 
44  @Override
45  public void addFirst(E element) {
46  add(0, element);
47  }
48 
49  @Override
50  public void addLast(E element) {
51  add(size(), element);
52  }
53 
54  @Override
55  public abstract void clear();
56 
57  @Override
58  public final boolean contains(Object o) {
59  return indexOf(o) >= 0;
60  }
61 
62  @Override
63  public Iterator<E> descendingIterator() {
64  return new ReversedTableImpl<E>(this).iterator();
65  }
66 
67  @Override
68  public final E element() {
69  return getFirst();
70  }
71 
72  @Override
73  public abstract E get(int index);
74 
75  @Override
76  public E getFirst() {
77  if (size() == 0) emptyError();
78  return get(0);
79  }
80 
81  @Override
82  public E getLast() {
83  if (size() == 0) emptyError();
84  return get(size() - 1);
85  }
86 
87  @SuppressWarnings("unchecked")
88  @Override
89  public int indexOf(Object o) {
91  for (int i = 0, n = size(); i < n; i++) {
92  if (cmp.areEqual(o, get(i))) return i;
93  }
94  return -1;
95  }
96 
97  @Override
98  public final boolean isEmpty() {
99  return size() == 0;
100  }
101 
102  @Override
103  public Iterator<E> iterator() {
104  return listIterator(0);
105  }
106 
107  @SuppressWarnings("unchecked")
108  @Override
109  public int lastIndexOf(Object o) {
111  for (int i = size() - 1; i >= 0; i--) {
112  if (cmp.areEqual(o, get(i))) return i;
113  }
114  return -1;
115  }
116 
117  @Override
118  public final ListIterator<E> listIterator() {
119  return listIterator(0);
120  }
121 
122  @Override
123  public ListIterator<E> listIterator(int index) {
124  return new TableIteratorImpl<E>(this, index);
125  }
126 
127  @Override
128  public final boolean offer(E e) {
129  return offerLast(e);
130  }
131 
132  @Override
133  public final boolean offerFirst(E e) {
134  addFirst(e);
135  return true;
136  }
137 
138  @Override
139  public final boolean offerLast(E e) {
140  addLast(e);
141  return true;
142  }
143 
144  @Override
145  public final E peek() {
146  return peekFirst();
147  }
148 
149  @Override
150  public E peekFirst() {
151  return (size() == 0) ? null : getFirst();
152  }
153 
154  @Override
155  public E peekLast() {
156  return (size() == 0) ? null : getLast();
157  }
158 
159  @Override
160  public final E poll() {
161  return pollFirst();
162  }
163 
164  @Override
165  public E pollFirst() {
166  return (size() == 0) ? null : removeFirst();
167  }
168 
169  @Override
170  public E pollLast() {
171  return (size() == 0) ? null : removeLast();
172  }
173 
174  @Override
175  public final E pop() {
176  return removeFirst();
177  }
178 
179  @Override
180  public final void push(E e) {
181  addFirst(e);
182  }
183 
184  @Override
185  public final E remove() {
186  return removeFirst();
187  }
188 
189  @Override
190  public abstract E remove(int index);
191 
192  @Override
193  public final boolean remove(Object o) {
194  int i = indexOf(o);
195  if (i < 0) return false;
196  remove(i);
197  return true;
198  }
199 
200  @Override
201  public E removeFirst() {
202  if (size() == 0) emptyError();
203  return remove(0);
204  }
205 
206  @Override
207  public boolean removeFirstOccurrence(Object o) {
208  int i = indexOf(o);
209  if (i < 0) return false;
210  remove(i);
211  return true;
212  }
213 
214  @Override
215  public E removeLast() {
216  if (size() == 0) emptyError();
217  return remove(size() - 1);
218  }
219 
220  @Override
221  public boolean removeLastOccurrence(Object o) {
222  int i = lastIndexOf(o);
223  if (i < 0) return false;
224  remove(i);
225  return true;
226  }
227 
228  @Override
229  public abstract E set(int index, E element);
230 
231  @Override
232  public abstract int size();
233 
234  @Override
235  public CollectionService<E>[] split(int n) {
236  return SubTableImpl.splitOf(this, n); // Sub-views over this.
237  }
238 
239  @Override
240  public TableService<E> subList(int fromIndex, int toIndex) {
241  return new SubTableImpl<E>(this, fromIndex, toIndex);
242  }
243 
244  @Override
246  return new SharedTableImpl<E>(this);
247  }
248 
250  protected void emptyError() {
251  throw new NoSuchElementException("Empty Table");
252  }
253 
255  protected void indexError(int index) {
256  throw new IndexOutOfBoundsException("index: " + index + ", size: "
257  + size());
258  }
259 
261  @Override
262  protected TableService<E> target() {
263  return (TableService<E>) super.target();
264  }
265 }
javolution.util.function.Equality.areEqual
boolean areEqual(T left, T right)
javolution.util.internal.table.TableView.offer
final boolean offer(E e)
Definition: TableView.java:128
javolution
javolution.util.internal.table.TableView.pollFirst
E pollFirst()
Definition: TableView.java:165
javolution.util.internal
javolution.util.service
Definition: BitSetService.java:9
javolution.util.internal.table.TableIteratorImpl
Definition: TableIteratorImpl.java:19
javolution.util.internal.collection.CollectionView
Definition: CollectionView.java:29
javolution.util.internal.table.TableView.iterator
Iterator< E > iterator()
Definition: TableView.java:103
javolution.util.internal.table.SubTableImpl.splitOf
static< E > CollectionService< E >[] splitOf(TableService< E > table, int n)
Definition: SubTableImpl.java:24
javolution.util.internal.collection
Definition: AtomicCollectionImpl.java:9
javolution.util.internal.table.TableView
Definition: TableView.java:25
javolution.util.internal.table.TableView.offerLast
final boolean offerLast(E e)
Definition: TableView.java:139
javolution.util.internal.table.TableView.isEmpty
final boolean isEmpty()
Definition: TableView.java:98
javolution.util.internal.table.TableView.addAll
boolean addAll(int index, Collection<? extends E > c)
Definition: TableView.java:40
javolution.util.internal.table.TableView.peek
final E peek()
Definition: TableView.java:145
javolution.util.internal.table.TableView.listIterator
ListIterator< E > listIterator(int index)
Definition: TableView.java:123
javolution.util.internal.table.TableView.getFirst
E getFirst()
Definition: TableView.java:76
javolution.util.internal.table.ReversedTableImpl
Definition: ReversedTableImpl.java:17
javolution.util.service.CollectionService
Definition: CollectionService.java:25
javolution.util.internal.table.TableView.lastIndexOf
int lastIndexOf(Object o)
Definition: TableView.java:109
javolution.util.internal.collection.CollectionView.comparator
abstract Equality<? super E > comparator()
javolution.util.internal.table.TableView.addLast
void addLast(E element)
Definition: TableView.java:50
javolution.util.function.Equality
Definition: Equality.java:39
javolution.util.internal.table.TableView.split
CollectionService< E >[] split(int n)
Definition: TableView.java:235
javolution.util.internal.table.TableView.add
abstract void add(int index, E element)
javolution.util.internal.table.TableView.removeFirst
E removeFirst()
Definition: TableView.java:201
javolution.util.internal.table.TableView.TableView
TableView(TableService< E > target)
Definition: TableView.java:32
javolution.util.internal.table.TableView.pop
final E pop()
Definition: TableView.java:175
javolution.util.internal.table.TableView.removeLast
E removeLast()
Definition: TableView.java:215
javolution.util.internal.table.TableView.removeLastOccurrence
boolean removeLastOccurrence(Object o)
Definition: TableView.java:221
javolution.util.internal.table.TableView.removeFirstOccurrence
boolean removeFirstOccurrence(Object o)
Definition: TableView.java:207
javolution.util.internal.table.TableView.element
final E element()
Definition: TableView.java:68
javolution.util.internal.table.TableView.size
abstract int size()
javolution.util.internal.table.TableView.getLast
E getLast()
Definition: TableView.java:82
javolution.util.internal.table.TableView.target
TableService< E > target()
Definition: TableView.java:262
javolution.util.function
Definition: Consumer.java:9
javolution.util.internal.table.SubTableImpl
Definition: SubTableImpl.java:18
javolution.util.internal.table.TableView.pollLast
E pollLast()
Definition: TableView.java:170
javolution.util.internal.table.TableView.indexError
void indexError(int index)
Definition: TableView.java:255
javolution.util.internal.table.TableView.subList
TableService< E > subList(int fromIndex, int toIndex)
Definition: TableView.java:240
javolution.util.internal.table.TableView.indexOf
int indexOf(Object o)
Definition: TableView.java:89
javolution.util.internal.table.TableView.clear
abstract void clear()
javolution.util.internal.table.TableView.serialVersionUID
static final long serialVersionUID
Definition: TableView.java:27
javolution.util.service.TableService
Definition: TableService.java:21
javolution.util.internal.table.TableView.poll
final E poll()
Definition: TableView.java:160
javolution.util.internal.table.TableView.offerFirst
final boolean offerFirst(E e)
Definition: TableView.java:133
javolution.util.internal.table.TableView.addFirst
void addFirst(E element)
Definition: TableView.java:45
javolution.util.internal.table.TableView.emptyError
void emptyError()
Definition: TableView.java:250
javolution.util.internal.table.TableView.contains
final boolean contains(Object o)
Definition: TableView.java:58
javolution.util.internal.table.TableView.listIterator
final ListIterator< E > listIterator()
Definition: TableView.java:118
javolution.util.internal.table.TableView.threadSafe
TableService< E > threadSafe()
Definition: TableView.java:245
javolution.util
Definition: FastBitSet.java:9
javolution.util.internal.table.TableView.peekLast
E peekLast()
Definition: TableView.java:155
javolution.util.internal.table.SharedTableImpl
Definition: SharedTableImpl.java:23
javolution.util.internal.table.TableView.descendingIterator
Iterator< E > descendingIterator()
Definition: TableView.java:63
javolution.util.internal.table.TableView.peekFirst
E peekFirst()
Definition: TableView.java:150
javolution.util.internal.table.TableView.push
final void push(E e)
Definition: TableView.java:180