package org.jboss.jms.client;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueReceiver;
import javax.jms.Topic;
import javax.jms.TopicSubscriber;
public class JBossConsumer
implements MessageConsumer, QueueReceiver, TopicSubscriber
{
private ConsumerDelegate delegate;
private Destination defaultDestination;
private MessageListener listener;
private String selector;
private boolean noLocal;
public JBossConsumer(ConsumerDelegate delegate, Destination destination, String selector, boolean noLocal)
throws JMSException
{
this.delegate = delegate;
this.defaultDestination = destination;
this.selector = selector;
this.noLocal = noLocal;
}
public Destination getDestination() throws JMSException
{
return defaultDestination;
}
public void close() throws JMSException
{
delegate.closing();
delegate.close();
}
public MessageListener getMessageListener() throws JMSException
{
return listener;
}
public String getMessageSelector() throws JMSException
{
return selector;
}
public Message receive() throws JMSException
{
return receive(0);
}
public Message receive(long timeout) throws JMSException
{
return delegate.receive(timeout);
}
public Message receiveNoWait() throws JMSException
{
return receive(-1);
}
public void setMessageListener(MessageListener listener) throws JMSException
{
delegate.setMessageListener(listener);
this.listener = listener;
}
public Queue getQueue() throws JMSException
{
return (Queue) getDestination();
}
public boolean getNoLocal() throws JMSException
{
return noLocal;
}
public Topic getTopic() throws JMSException
{
return (Topic) getDestination();
}
}