1 package com.atlassian.core.task;
2
3 import org.apache.commons.collections.Buffer;
4 import org.apache.commons.collections.BufferUtils;
5 import org.apache.commons.collections.buffer.UnboundedFifoBuffer;
6
7 import java.util.Collection;
8
9 public class LocalFifoBuffer<T> implements FifoBuffer<T>
10 {
11 private final Buffer buffer = BufferUtils.synchronizedBuffer(new UnboundedFifoBuffer());
12
13 public synchronized T remove()
14 {
15 if (!buffer.isEmpty())
16 return (T) buffer.remove();
17 else
18 return null;
19 }
20
21 public void add(T o)
22 {
23 buffer.add(o);
24 }
25
26 public int size()
27 {
28 return buffer.size();
29 }
30
31 public Collection<T> getItems()
32 {
33 return buffer;
34 }
35
36 public void clear()
37 {
38 buffer.clear();
39 }
40 }