001 package com.mockrunner.mock.jms;
002
003 import java.util.Enumeration;
004 import java.util.Vector;
005
006 import javax.jms.JMSException;
007 import javax.jms.Queue;
008 import javax.jms.QueueBrowser;
009
010 /**
011 * Mock implementation of JMS <code>QueueBrowser</code>.
012 */
013 public class MockQueueBrowser implements QueueBrowser
014 {
015 private MockConnection connection;
016 private MockQueue queue;
017 private boolean closed;
018 private String messageSelector;
019
020 public MockQueueBrowser(MockConnection connection, MockQueue queue)
021 {
022 this(connection, queue, null);
023 }
024
025 public MockQueueBrowser(MockConnection connection, MockQueue queue, String messageSelector)
026 {
027 this.connection = connection;
028 this.queue = queue;
029 closed = false;
030 this.messageSelector = messageSelector;
031 }
032
033 /**
034 * Returns if this browser was closed.
035 * @return <code>true</code> if this browser is closed
036 */
037 public boolean isClosed()
038 {
039 return closed;
040 }
041
042 public Queue getQueue() throws JMSException
043 {
044 connection.throwJMSException();
045 return queue;
046 }
047
048 public String getMessageSelector() throws JMSException
049 {
050 connection.throwJMSException();
051 return messageSelector;
052 }
053
054 public Enumeration getEnumeration() throws JMSException
055 {
056 connection.throwJMSException();
057 if(isClosed())
058 {
059 throw new JMSException("Browser is closed");
060 }
061 return new Vector(queue.getCurrentMessageList()).elements();
062 }
063
064 public void close() throws JMSException
065 {
066 connection.throwJMSException();
067 closed = true;
068 }
069 }