Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2006, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.resource.adapter.jms;
 
 
A wrapper for a message consumer

Author(s):
Adrian Brock
Version:
$Revision: 71790 $
 
 public class JmsMessageConsumer implements MessageConsumer
 {
    private static final Logger log = Logger.getLogger(JmsMessageConsumer.class);

   
The wrapped message consumer
 
    MessageConsumer consumer;
   
   
The session for this consumer
 
    JmsSession session;
   
   
Whether trace is enabled
 
    private boolean trace = .isTraceEnabled();

   
Create a new wrapper

Parameters:
consumer the consumer
session the session
 
    public JmsMessageConsumer(MessageConsumer consumerJmsSession session)
    {
       this. = consumer;
       this. = session;
       
       if ()
          .trace("new JmsMessageConsumer " + this + " consumer=" + consumer + " session=" + session);
    }
 
    public void close() throws JMSException
    {
       if ()
          .trace("close " + this);
       try
       {
          closeConsumer();
       }
       finally
       {
          .removeConsumer(this);
       }
    }
 
    void checkState() throws JMSException
    {
    }
    
    {
       checkState();
       .checkStrict();
       return .getMessageListener();
    }
    
    public String getMessageSelector() throws JMSException
    {
       checkState();
       return .getMessageSelector();
   }
   
   public Message receive() throws JMSException
   {
      .lock();
      try
      {
         if ()
            .trace("receive " + this);
         checkState();
         Message message = .receive();
         if ()
            .trace("received " + this + " result=" + message);
         if (message == null)
            return null;
         else
            return wrapMessage(message);
      }
      finally
      {
         .unlock();
      }
   }
   public Message receive(long timeoutthrows JMSException
   {
      .lock();
      try
      {
         if ()
            .trace("receive " + this + " timeout=" + timeout);
         checkState();
         Message message = .receive(timeout);
         if ()
            .trace("received " + this + " result=" + message);
         if (message == null)
            return null;
         else
            return wrapMessage(message);
      }
      finally
      {
         .unlock();
      }
   }
   public Message receiveNoWait() throws JMSException
   {
      .lock();
      try
      {
         if ()
            .trace("receiveNoWait " + this);
         checkState();
         Message message = .receiveNoWait();
         if ()
            .trace("received " + this + " result=" + message);
         if (message == null)
            return null;
         else
            return wrapMessage(message);
      }
      finally
      {
         .unlock();
      }
   }
   
   public void setMessageListener(MessageListener listenerthrows JMSException
   {
      .lock();
      try
      {
         checkState();
         .checkStrict();
         if (listener == null)
            .setMessageListener(null);
         else
            .setMessageListener(wrapMessageListener(listener));
      }
      finally
      {
         .unlock();
      }
   }
   void closeConsumer() throws JMSException
   {
      .close();
   }
   
   Message wrapMessage(Message message)
   {
      if (message instanceof BytesMessage)
         return new JmsBytesMessage((BytesMessagemessage);
      else if (message instanceof MapMessage)
         return new JmsMapMessage((MapMessagemessage);
      else if (message instanceof ObjectMessage)
         return new JmsObjectMessage((ObjectMessagemessage);
      else if (message instanceof StreamMessage)
         return new JmsStreamMessage((StreamMessagemessage);
      else if (message instanceof TextMessage)
         return new JmsTextMessage((TextMessagemessage);
      return new JmsMessage(message);
   }
   
   {
      return new JmsMessageListener(listenerthis);
   }
New to GrepCode? Check out our FAQ X