public class MessageQueue
1: import java.util.ArrayList;
3: /**
4: A first-in, first-out bounded collection of messages.
5: */
6: public class MessageQueue
7: {
8: /**
9: Constructs an empty message queue.
10: */
11: public MessageQueue()
12: {
13: queue = new ArrayList<Message>();
14: }
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 queue.remove(0);
24: else
25: throw new IllegalStateException("Queue is empty");
26: }
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: }
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: }
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 queue.get(0);
54: else
55: throw new IllegalStateException("Queue is empty");
56: }
58: private ArrayList<Message> queue;
59: }