Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2009 Red Hat, Inc.
   * Red Hat licenses this file to you under the Apache License, version
   * 2.0 (the "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *    http://www.apache.org/licenses/LICENSE-2.0
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  * implied.  See the License for the specific language governing
  * permissions and limitations under the License.
  */
 
 package org.hornetq.jms.client;
 
 
 
HornetQ implementation of a JMS QueueBrowser.

Author(s):
Tim Fox
Andy Taylor $Id$
 
 public class HornetQQueueBrowser implements QueueBrowser
 {
    // Constants ------------------------------------------------------------------------------------
 
    // Static ---------------------------------------------------------------------------------------
 
    // Attributes -----------------------------------------------------------------------------------
 
    private final ClientSession session;
 
    private ClientConsumer consumer;
 
    private final HornetQQueue queue;
 
    private SimpleString filterString;
 
    // Constructors ---------------------------------------------------------------------------------
 
    protected HornetQQueueBrowser(final HornetQQueue queuefinal String messageSelectorfinal ClientSession sessionthrows JMSException
    {
       this. = session;
       this. = queue;
       if (messageSelector != null)
       {
           = new SimpleString(SelectorTranslator.convertToHornetQFilterString(messageSelector));
       }
    }
 
    // QueueBrowser implementation -------------------------------------------------------------------
 
    public void close() throws JMSException
    {
       if ( != null)
       {
          try
          {
             .close();
          }
          catch (HornetQException e)
          {
             throw JMSExceptionHelper.convertFromHornetQException(e);
          }
       }
    }
 
    public Enumeration getEnumeration() throws JMSException
    {
       try
       {
          close();
 
 
          return new BrowserEnumeration();
       }
       catch (HornetQException e)
       {
          throw JMSExceptionHelper.convertFromHornetQException(e);
       }
 
    }
 
   public String getMessageSelector() throws JMSException
   {
      return  == null ? null : .toString();
   }
   public Queue getQueue() throws JMSException
   {
      return ;
   }
   // Public ---------------------------------------------------------------------------------------
   public String toString()
   {
      return "HornetQQueueBrowser->" + ;
   }
   // Package protected ----------------------------------------------------------------------------
   // Protected ------------------------------------------------------------------------------------
   // Private --------------------------------------------------------------------------------------
   // Inner classes --------------------------------------------------------------------------------
   private class BrowserEnumeration implements Enumeration
   {
      ClientMessage current = null;
      public boolean hasMoreElements()
      {
         if ( == null)
         {
            try
            {
                = .receiveImmediate();
            }
            catch (HornetQException e)
            {
               return false;
            }
         }
         return  != null;
      }
      public Object nextElement()
      {
         HornetQMessage msg;
         if (hasMoreElements())
         {
            ClientMessage next = ;
             = null;
            msg = HornetQMessage.createMessage(next);
            try
            {
               msg.doBeforeReceive();
            }
            catch (Exception e)
            {
               ..errorCreatingMessage(e);
               return null;
            }
            return msg;
         }
         else
         {
            throw new NoSuchElementException();
         }
      }
   }
New to GrepCode? Check out our FAQ X