summaryrefslogtreecommitdiff
path: root/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java')
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java134
1 files changed, 134 insertions, 0 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java b/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java
new file mode 100644
index 0000000000..15bf4a125f
--- /dev/null
+++ b/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java
@@ -0,0 +1,134 @@
+package org.apache.qpid.client;
+
+import javax.jms.Destination;
+import javax.jms.IllegalStateException;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.QueueSender;
+
+public class QueueSenderAdapter implements QueueSender {
+
+ private MessageProducer delegate;
+ private Queue queue;
+ private boolean closed = false;
+
+ public QueueSenderAdapter(MessageProducer msgProducer, Queue queue){
+ delegate = msgProducer;
+ this.queue = queue;
+ }
+
+ public Queue getQueue() throws JMSException {
+ checkPreConditions();
+ return queue;
+ }
+
+ public void send(Message msg) throws JMSException {
+ checkPreConditions();
+ delegate.send(msg);
+ }
+
+ public void send(Queue queue, Message msg) throws JMSException {
+ checkPreConditions();
+ delegate.send(queue, msg);
+ }
+
+ public void publish(Message msg, int deliveryMode, int priority, long timeToLive)
+ throws JMSException {
+ checkPreConditions();
+ delegate.send(msg, deliveryMode,priority,timeToLive);
+ }
+
+ public void send(Queue queue,Message msg, int deliveryMode, int priority, long timeToLive)
+ throws JMSException {
+ checkPreConditions();
+ delegate.send(queue,msg, deliveryMode,priority,timeToLive);
+ }
+
+ public void close() throws JMSException {
+ delegate.close();
+ closed = true;
+ }
+
+ public int getDeliveryMode() throws JMSException {
+ return delegate.getDeliveryMode();
+ }
+
+ public Destination getDestination() throws JMSException {
+ return delegate.getDestination();
+ }
+
+ public boolean getDisableMessageID() throws JMSException {
+ return delegate.getDisableMessageID();
+ }
+
+ public boolean getDisableMessageTimestamp() throws JMSException {
+ return delegate.getDisableMessageTimestamp();
+ }
+
+ public int getPriority() throws JMSException {
+ return delegate.getPriority();
+ }
+
+ public long getTimeToLive() throws JMSException {
+ return delegate.getTimeToLive();
+ }
+
+ public void send(Destination dest, Message msg) throws JMSException {
+ checkPreConditions();
+ delegate.send(dest,msg);
+ }
+
+ public void send(Message msg, int deliveryMode, int priority, long timeToLive)
+ throws JMSException {
+ checkPreConditions();
+ delegate.send(msg, deliveryMode,priority,timeToLive);
+ }
+
+ public void send(Destination dest, Message msg, int deliveryMode, int priority, long timeToLive) throws JMSException {
+ checkPreConditions();
+ delegate.send(dest,msg, deliveryMode,priority,timeToLive);
+ }
+
+ public void setDeliveryMode(int deliveryMode) throws JMSException {
+ checkPreConditions();
+ delegate.setDeliveryMode(deliveryMode);
+ }
+
+ public void setDisableMessageID(boolean disableMessageID) throws JMSException {
+ checkPreConditions();
+ delegate.setDisableMessageID(disableMessageID);
+ }
+
+ public void setDisableMessageTimestamp(boolean disableMessageTimestamp) throws JMSException {
+ checkPreConditions();
+ delegate.setDisableMessageTimestamp(disableMessageTimestamp);
+ }
+
+ public void setPriority(int priority) throws JMSException {
+ checkPreConditions();
+ delegate.setPriority(priority);
+ }
+
+ public void setTimeToLive(long timeToLive) throws JMSException {
+ checkPreConditions();
+ delegate.setTimeToLive(timeToLive);
+ }
+
+ private void checkPreConditions() throws IllegalStateException, IllegalStateException {
+ if (closed){
+ throw new javax.jms.IllegalStateException("Publisher is closed");
+ }
+
+ if(queue == null){
+ throw new UnsupportedOperationException("Queue is null");
+ }
+
+ AMQSession session = ((BasicMessageProducer)delegate).getSession();
+
+ if(session == null || session.isClosed()){
+ throw new UnsupportedOperationException("Invalid Session");
+ }
+ }
+}