Source of MessageQueue.java


  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: }