package com.google.pubsub.jms.light.session;
import com.google.pubsub.jms.light.PubSubConnection;
import javax.jms.JMSException;
import javax.jms.MessageListener;
import javax.jms.Session;
/**
* Basic {@link javax.jms.Session} argument storage.
*
* @author Maksym Prokhorenko
*/
public abstract class AbstractSession implements Session {
private final PubSubConnection connection;
private final boolean transacted;
private final int acknowledgeMode;
private MessageListener messageListener;
/**
* Default constructor.
* @param connection is a jms connection.
* @param transacted is an indicator whether the session in transacted mode.
* @param acknowledgeMode is an acknowledgement mode {@link javax.jms.Session#AUTO_ACKNOWLEDGE},
* {@link javax.jms.Session#CLIENT_ACKNOWLEDGE},
* {@link javax.jms.Session#SESSION_TRANSACTED}.
*/
public AbstractSession(
final PubSubConnection connection,
final boolean transacted,
final int acknowledgeMode) {
this.connection = connection;
this.transacted = transacted;
this.acknowledgeMode = acknowledgeMode;
}
public PubSubConnection getConnection() {
return connection;
}
@Override
public boolean getTransacted() throws JMSException {
return transacted;
}
@Override
public int getAcknowledgeMode() throws JMSException {
return acknowledgeMode;
}
@Override
public MessageListener getMessageListener() throws JMSException {
return messageListener;
}
@Override
public void setMessageListener(final MessageListener listener) throws JMSException {
this.messageListener = listener;
}
}