Javolution 6.0.0 java
SharedTableImpl.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 
18 
22 public class SharedTableImpl<E> extends SharedCollectionImpl<E> implements
23  TableService<E> {
24 
25  private static final long serialVersionUID = 0x600L; // Version.
26 
28  super(target);
29  }
30 
31  @Override
32  public void add(int index, E element) {
34  try {
35  target().add(index, element);
36  } finally {
38  }
39  }
40 
41  @Override
42  public boolean addAll(int index, Collection<? extends E> c) {
44  try {
45  return target().addAll(index, c);
46  } finally {
48  }
49  }
50 
51  @Override
52  public void addFirst(E element) {
54  try {
55  target().addFirst(element);
56  } finally {
58  }
59  }
60 
61  @Override
62  public void addLast(E element) {
64  try {
65  target().addLast(element);
66  } finally {
68  }
69  }
70 
71  @Override
72  public Iterator<E> descendingIterator() {
73  return new ReversedTableImpl<E>(this).iterator(); // View on this.
74  }
75 
76  @Override
77  public E element() {
78  return getFirst();
79  }
80 
81  @Override
82  public E get(int index) {
83  lock.readLock.lock();
84  try {
85  return target().get(index);
86  } finally {
88  }
89  }
90 
91  @Override
92  public E getFirst() {
93  lock.readLock.lock();
94  try {
95  return target().getFirst();
96  } finally {
98  }
99  }
100 
101  @Override
102  public E getLast() {
103  lock.readLock.lock();
104  try {
105  return target().getLast();
106  } finally {
107  lock.readLock.unlock();
108  }
109  }
110 
111  @Override
112  public int indexOf(Object element) {
113  lock.readLock.lock();
114  try {
115  return target().indexOf(element);
116  } finally {
117  lock.readLock.unlock();
118  }
119  }
120 
121  @Override
122  public ListIterator<E> iterator() {
123  return target().listIterator(0);
124  }
125 
126  @Override
127  public int lastIndexOf(Object element) {
128  lock.readLock.lock();
129  try {
130  return target().lastIndexOf(element);
131  } finally {
132  lock.readLock.unlock();
133  }
134  }
135 
136  @Override
137  public ListIterator<E> listIterator() {
138  return target().listIterator(0);
139  }
140 
141  @Override
142  public ListIterator<E> listIterator(int index) {
143  return new TableIteratorImpl<E>(this, index); // View on this.
144  }
145 
146  @Override
147  public boolean offer(E e) {
148  return offerLast(e);
149  }
150 
151  @Override
152  public boolean offerFirst(E e) {
153  lock.writeLock.lock();
154  try {
155  return target().offerFirst(e);
156  } finally {
158  }
159  }
160 
161  @Override
162  public boolean offerLast(E e) {
163  lock.writeLock.lock();
164  try {
165  return target().offerLast(e);
166  } finally {
168  }
169  }
170 
171  @Override
172  public E peek() {
173  return peekFirst();
174  }
175 
176  @Override
177  public E peekFirst() {
178  lock.readLock.lock();
179  try {
180  return target().peekFirst();
181  } finally {
182  lock.readLock.unlock();
183  }
184  }
185 
186  @Override
187  public E peekLast() {
188  lock.readLock.lock();
189  try {
190  return target().peekLast();
191  } finally {
192  lock.readLock.unlock();
193  }
194  }
195 
196  @Override
197  public E poll() {
198  return pollFirst();
199  }
200 
201  @Override
202  public E pollFirst() {
203  lock.writeLock.lock();
204  try {
205  return target().pollFirst();
206  } finally {
208  }
209  }
210 
211  @Override
212  public E pollLast() {
213  lock.writeLock.lock();
214  try {
215  return target().pollLast();
216  } finally {
218  }
219  }
220 
221  @Override
222  public E pop() {
223  return removeFirst();
224  }
225 
226  @Override
227  public void push(E e) {
228  addFirst(e);
229  }
230 
231  @Override
232  public E remove() {
233  return removeFirst();
234  }
235 
236  @Override
237  public E remove(int index) {
238  lock.writeLock.lock();
239  try {
240  return target().remove(index);
241  } finally {
243  }
244  }
245 
246  @Override
247  public E removeFirst() {
248  lock.writeLock.lock();
249  try {
250  return target().removeFirst();
251  } finally {
253  }
254  }
255 
256  @Override
257  public boolean removeFirstOccurrence(Object o) {
258  lock.writeLock.lock();
259  try {
260  return target().removeFirstOccurrence(o);
261  } finally {
263  }
264  }
265 
266  @Override
267  public E removeLast() {
268  lock.writeLock.lock();
269  try {
270  return target().removeLast();
271  } finally {
273  }
274  }
275 
276  @Override
277  public boolean removeLastOccurrence(Object o) {
278  lock.writeLock.lock();
279  try {
280  return target().removeLastOccurrence(o);
281  } finally {
283  }
284  }
285 
286  @Override
287  public E set(int index, E element) {
288  lock.writeLock.lock();
289  try {
290  return target().set(index, element);
291  } finally {
293  }
294  }
295 
296  @Override
297  public CollectionService<E>[] split(int n) {
298  return SubTableImpl.splitOf(this, n); // Sub-views over this.
299  }
300 
301  @Override
302  public TableService<E> subList(int fromIndex, int toIndex) {
303  return new SubTableImpl<E>(this, fromIndex, toIndex); // View on this.
304  }
305 
306  @Override
308  return this;
309  }
310 
312  @Override
313  protected TableService<E> target() {
314  return (TableService<E>) super.target();
315  }
316 
317 }
javolution.util.internal.table.SharedTableImpl.addAll
boolean addAll(int index, Collection<? extends E > c)
Definition: SharedTableImpl.java:42
javolution.util.internal.table.SharedTableImpl.offerFirst
boolean offerFirst(E e)
Definition: SharedTableImpl.java:152
javolution.util.internal.table.SharedTableImpl.iterator
ListIterator< E > iterator()
Definition: SharedTableImpl.java:122
javolution.util.internal.table.SharedTableImpl.pollFirst
E pollFirst()
Definition: SharedTableImpl.java:202
javolution
javolution.util.internal
javolution.util.internal.table.SharedTableImpl.threadSafe
TableService< E > threadSafe()
Definition: SharedTableImpl.java:307
javolution.util.service
Definition: BitSetService.java:9
javolution.util.internal.table.TableIteratorImpl
Definition: TableIteratorImpl.java:19
javolution.util.internal.table.SharedTableImpl.lastIndexOf
int lastIndexOf(Object element)
Definition: SharedTableImpl.java:127
javolution.util.internal.table.SharedTableImpl.pollLast
E pollLast()
Definition: SharedTableImpl.java:212
javolution.util.internal.collection.ReadWriteLockImpl.writeLock
final WriteLock writeLock
Definition: ReadWriteLockImpl.java:124
javolution.util.internal.table.TableView.iterator
Iterator< E > iterator()
Definition: TableView.java:103
javolution.util.internal.table.SharedTableImpl.split
CollectionService< E >[] split(int n)
Definition: SharedTableImpl.java:297
javolution.util.internal.table.SharedTableImpl.listIterator
ListIterator< E > listIterator()
Definition: SharedTableImpl.java:137
javolution.util.internal.table.SharedTableImpl.addFirst
void addFirst(E element)
Definition: SharedTableImpl.java:52
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.SharedTableImpl.removeLast
E removeLast()
Definition: SharedTableImpl.java:267
javolution.util.internal.table.SharedTableImpl.offerLast
boolean offerLast(E e)
Definition: SharedTableImpl.java:162
javolution.util.internal.collection.ReadWriteLockImpl.readLock
final ReadLock readLock
Definition: ReadWriteLockImpl.java:123
javolution.util.internal.collection.SharedCollectionImpl
Definition: SharedCollectionImpl.java:21
javolution.util.internal.table.SharedTableImpl.peekLast
E peekLast()
Definition: SharedTableImpl.java:187
javolution.util.internal.table.ReversedTableImpl
Definition: ReversedTableImpl.java:17
javolution.util.service.CollectionService
Definition: CollectionService.java:25
javolution.util.internal.table.SharedTableImpl.listIterator
ListIterator< E > listIterator(int index)
Definition: SharedTableImpl.java:142
javolution.util.internal.table.SharedTableImpl.push
void push(E e)
Definition: SharedTableImpl.java:227
javolution.util.internal.table.SharedTableImpl.SharedTableImpl
SharedTableImpl(TableService< E > target)
Definition: SharedTableImpl.java:27
javolution.util.internal.table.SharedTableImpl.descendingIterator
Iterator< E > descendingIterator()
Definition: SharedTableImpl.java:72
javolution.util.internal.table.SharedTableImpl.element
E element()
Definition: SharedTableImpl.java:77
javolution.util.internal.collection.ReadWriteLockImpl.WriteLock.unlock
void unlock()
Definition: ReadWriteLockImpl.java:114
javolution.util.internal.table.SharedTableImpl.pop
E pop()
Definition: SharedTableImpl.java:222
javolution.util.internal.table.SharedTableImpl.serialVersionUID
static final long serialVersionUID
Definition: SharedTableImpl.java:25
javolution.util.internal.table.SharedTableImpl.peekFirst
E peekFirst()
Definition: SharedTableImpl.java:177
javolution.util.internal.table.SharedTableImpl.peek
E peek()
Definition: SharedTableImpl.java:172
javolution.util.internal.table.SharedTableImpl.indexOf
int indexOf(Object element)
Definition: SharedTableImpl.java:112
javolution.util.internal.table.SubTableImpl
Definition: SubTableImpl.java:18
javolution.util.internal.table.SharedTableImpl.removeFirst
E removeFirst()
Definition: SharedTableImpl.java:247
javolution.util.internal.table.SharedTableImpl.poll
E poll()
Definition: SharedTableImpl.java:197
javolution.util.internal.table.SharedTableImpl.subList
TableService< E > subList(int fromIndex, int toIndex)
Definition: SharedTableImpl.java:302
javolution.util.internal.table.SharedTableImpl.addLast
void addLast(E element)
Definition: SharedTableImpl.java:62
javolution.util.internal.table.SharedTableImpl.offer
boolean offer(E e)
Definition: SharedTableImpl.java:147
javolution.util.service.TableService
Definition: TableService.java:21
javolution.util.internal.collection.ReadWriteLockImpl.ReadLock.lock
void lock()
Definition: ReadWriteLockImpl.java:30
javolution.util.internal.collection.SharedCollectionImpl.lock
ReadWriteLockImpl lock
Definition: SharedCollectionImpl.java:57
javolution.util.internal.table.SharedTableImpl.removeLastOccurrence
boolean removeLastOccurrence(Object o)
Definition: SharedTableImpl.java:277
javolution.util.internal.collection.ReadWriteLockImpl.WriteLock.lock
void lock()
Definition: ReadWriteLockImpl.java:79
javolution.util.internal.table.SharedTableImpl.add
void add(int index, E element)
Definition: SharedTableImpl.java:32
javolution.util.internal.collection.ReadWriteLockImpl.ReadLock.unlock
void unlock()
Definition: ReadWriteLockImpl.java:64
javolution.util.internal.table.SharedTableImpl.getFirst
E getFirst()
Definition: SharedTableImpl.java:92
javolution.util.internal.table.SharedTableImpl.getLast
E getLast()
Definition: SharedTableImpl.java:102
javolution.util
Definition: FastBitSet.java:9
javolution.util.internal.table.SharedTableImpl.target
TableService< E > target()
Definition: SharedTableImpl.java:313
javolution.util.internal.table.SharedTableImpl
Definition: SharedTableImpl.java:23
javolution.util.internal.table.SharedTableImpl.removeFirstOccurrence
boolean removeFirstOccurrence(Object o)
Definition: SharedTableImpl.java:257