package org.jboss.seam.remoting.messaging;
import java.util.ArrayList;
import java.util.List;
import javax.jms.Message;
import javax.jms.*;
/**
* Wrapper for a single request for a specified subscription poll.
*
* @author Shane Bryzak
*/
public class PollRequest
{
private String token;
private int timeout;
private List<Message> messages;
private List<PollError> errors = new ArrayList<PollError>();
public PollRequest(String token, int timeout)
{
this.token = token;
this.timeout = timeout;
}
public String getToken()
{
return token;
}
public List<Message> getMessages()
{
return messages;
}
public List<PollError> getErrors()
{
return errors;
}
public void poll()
{
RemoteSubscriber subscriber = SubscriptionRegistry.instance().getSubscription(token);
if (subscriber != null)
{
try
{
messages = subscriber.poll(timeout);
}
catch (JMSException ex)
{
errors.add(new PollError(PollError.ERROR_CODE_JMS_EXCEPTION,
"Error polling for messages"));
}
}
else
errors.add(new PollError(PollError.ERROR_CODE_TOKEN_NOT_FOUND,
"No subscription was found for the specified token."));
}
}