1 package com.atlassian.bonnie.index;
2
3 import java.util.Collection;
4
5
6
7
8
9 public final class QueueProcessingRunnableImpl implements QueueProcessingRunnable
10 {
11 private ObjectQueue objectQueue;
12 private BatchOpIndexer.DocumentWritingScheme documentWritingScheme;
13 private ObjectQueue.Processor processor;
14
15 public QueueProcessingRunnableImpl()
16 {
17 }
18
19 public QueueProcessingRunnableImpl(ObjectQueue objectQueue, BatchOpIndexer.DocumentWritingScheme documentWritingScheme)
20 {
21 setObjectQueue(objectQueue);
22 setDocumentWritingScheme(documentWritingScheme);
23 }
24
25 public final void run()
26 {
27 Collection collection = null;
28 while (true)
29 {
30 synchronized (objectQueue)
31 {
32 if (objectQueue.hasMore())
33 {
34 collection = objectQueue.pop();
35 }
36 else break;
37 }
38
39 processor.indexCollection(collection, documentWritingScheme);
40 }
41 documentWritingScheme.runComplete();
42 }
43
44 public void setObjectQueue(ObjectQueue objectQueue)
45 {
46 this.objectQueue = objectQueue;
47 this.processor = objectQueue.getProcessor();
48 }
49
50 public void setDocumentWritingScheme(BatchOpIndexer.DocumentWritingScheme documentWritingScheme)
51 {
52 this.documentWritingScheme = documentWritingScheme;
53 }
54 }