01: import java.util.ArrayList;
02:
03: /**
04: A first-in, first-out bounded collection of messages.
05: */
06: public class MessageQueue
07: {
08: /**
09: Constructs an empty message queue.
10: */
11: public MessageQueue()
12: {
13: queue = new ArrayList();
14: }
15:
16: /**
17: Remove message at head.
18: @return message that has been removed from the queue
19: */
20: public Message remove()
21: {
22: if (!queue.isEmpty())
23: return (Message) queue.remove(0);
24: else
25: throw new IllegalStateException("Queue is empty");
26: }
27:
28: /**
29: Append message at tail.
30: @param newMessage the message to be appended
31: */
32: public void add(Message newMessage)
33: {
34: queue.add(newMessage);
35: }
36:
37: /**
38: Get the total number of messages in the queue.
39: @return the total number of messages in the queue
40: */
41: public int getLength()
42: {
43: return queue.size();
44: }
45:
46: /**
47: Get message at head.
48: @return message that is at the head of the queue
49: */
50: public Message getHead()
51: {
52: if (!queue.isEmpty())
53: return (Message) queue.get(0);
54: else
55: throw new IllegalStateException("Queue is empty");
56: }
57:
58: private ArrayList queue;
59: }