KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > queue > MemQueue


1 /* Copyright (C) 2003 Internet Archive.
2  *
3  * This file is part of the Heritrix web crawler (crawler.archive.org).
4  *
5  * Heritrix is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser Public License as published by
7  * the Free Software Foundation; either version 2.1 of the License, or
8  * any later version.
9  *
10  * Heritrix is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser Public License
16  * along with Heritrix; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * MemQueue.java
20  * Created on Oct 14, 2003
21  *
22  * $Header: /cvsroot/archive-crawler/ArchiveOpenCrawler/src/java/org/archive/queue/MemQueue.java,v 1.2.24.1 2007/01/13 01:31:39 stack-sf Exp $
23  */

24 package org.archive.queue;
25
26 import java.util.Iterator JavaDoc;
27 import java.util.LinkedList JavaDoc;
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 JavaDoc<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         // nothing to release
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 JavaDoc<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 JavaDoc<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     /* (non-Javadoc)
105      * @see org.archive.queue.Queue#unpeek()
106      */

107     public void unpeek() {
108         // nothing necessary
109
}
110
111
112
113 }
114
Popular Tags