1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.archive.queue;
25
26 import java.util.Iterator;
27 import java.util.LinkedList;
28
29 import org.apache.commons.collections.Predicate;
30
31 /*** An in-memory implementation of a {@link Queue}.
32 *
33 * @author Gordon Mohr
34 *
35 */
36 public class MemQueue<T> extends LinkedList<T> implements Queue<T> {
37
38 private static final long serialVersionUID = -9077824759011044247L;
39
40 /*** Create a new, empty MemQueue
41 */
42 public MemQueue() {
43 super();
44 }
45
46 /***
47 * @see org.archive.queue.Queue#enqueue(Object)
48 */
49 public void enqueue(T o) {
50 add(o);
51 }
52
53 /***
54 * @see org.archive.queue.Queue#dequeue()
55 */
56 public T dequeue() {
57 return removeFirst();
58 }
59
60 /***
61 * @see org.archive.queue.Queue#length()
62 */
63 public long length() {
64 return size();
65 }
66
67 /***
68 * @see org.archive.queue.Queue#release()
69 */
70 public void release() {
71
72 }
73
74 /***
75 * @see org.archive.queue.Queue#peek()
76 */
77 public T peek() {
78 return getFirst();
79 }
80
81
82 /***
83 * @see org.archive.queue.Queue#getIterator(boolean)
84 */
85 public Iterator<T> getIterator(boolean inCacheOnly) {
86 return listIterator();
87 }
88
89 /***
90 * @see org.archive.queue.Queue#deleteMatchedItems(org.apache.commons.collections.Predicate)
91 */
92 public long deleteMatchedItems(Predicate matcher) {
93 Iterator<T> it = listIterator();
94 long numberOfDeletes = 0;
95 while(it.hasNext()){
96 if(matcher.evaluate(it.next())){
97 it.remove();
98 numberOfDeletes++;
99 }
100 }
101 return numberOfDeletes;
102 }
103
104
105
106
107 public void unpeek() {
108
109 }
110
111
112
113 }