package com.google.pubsub.jms.light;
import com.google.pubsub.jms.light.destination.PubSubTemporaryTopic;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.TemporaryQueue;
import javax.jms.TemporaryTopic;
/**
* Default PubSub {@link javax.jms.TopicSession} implementation.
*
* @author Daiqian Zhang
*/
class PubSubTopicSession extends PubSubSession {
/**
* 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 PubSubTopicSession(
final PubSubConnection connection,
final boolean transacted,
final int acknowledgeMode) {
super(connection, transacted, acknowledgeMode);
}
@Override
public TemporaryTopic createTemporaryTopic() {
return new PubSubTemporaryTopic(generateTemporaryTopicName());
}
@Override
public void unsubscribe(final String name) {
}
@Override
public QueueBrowser createBrowser(final Queue queue) throws JMSException {
throw new JMSException("createBrowser can not be used in Pub/Sub messaging domain.");
}
@Override
public Queue createQueue(final String queueName) throws JMSException {
throw new JMSException("createQueue can not be used in Pub/Sub messaging domain.");
}
@Override
public TemporaryQueue createTemporaryQueue() throws JMSException {
throw new JMSException("createTemporaryQueue can not be used in Pub/Sub messaging domain.");
}
private String generateTemporaryTopicName() {
// TODO make sure the generated string is unique to the connection.
return null;
}
}