docs: private boolean registerCallbackOnNewExpression(
      ConnectionImpl connection, 
      String topicExpression,
      boolean isWildcarded,
      ConsumerSetChangeCallback callback,
      Set localConsumers,
      Set remoteConsumers)
    {
      if (tc.isEntryEnabled())
          SibTr.entry(
            tc,
            "registerCallbackOnNewExpression",
            new Object[] { connection,
                           topicExpression,
                           new Boolean(isWildcarded), 
                           callback, 
                           localConsumers, 
                           remoteConsumers}); 
               
      boolean areConsumers = false;
  
      // Need to locate consumers for this registration, note that there may be
      // none.
      ArrayList matchingConsumers = new ArrayList();
      
      if(localConsumers != null || remoteConsumers != null)
      {
        // Have some non-selector consumers that matched a fully qualified registration
        if(localConsumers != null)
        {
          matchingConsumers.addAll(localConsumers);
        }
        
        // Check through proxies
        if(remoteConsumers != null)
        {
          matchingConsumers.addAll(remoteConsumers);
        }  
      }
  
      // Next we walk through the list of matching consumers adding a reference to this
      // registration. This will ease the process of registration management when a 
      // subscriber is removed.
      areConsumers = !matchingConsumers.isEmpty();
      if(areConsumers)
      {
        // Add a reference to this registration to each consumer
        Iterator i = matchingConsumers.iterator();
        while (i.hasNext())
        {
          MonitoredConsumer mc = (MonitoredConsumer)i.next();     
        
          if (tc.isDebugEnabled()) 
            SibTr.debug(tc, "Add registration to consumer: " + mc);
          
          // Add the reference
          if(isWildcarded)
            mc.addMatchingWildcardMonitor(topicExpression);
          else
            mc.addMatchingExactMonitor(topicExpression);        
        } 
      }    
       
      // Now we've assembled a complete list perform the actual registration of our monitor
      _consumerMonitorRegistrar.
        registerCallbackOnNewExpression(connection,
                                        topicExpression, 
                                        isWildcarded, 
                                        callback, 
                                        matchingConsumers);
      
      if (tc.isEntryEnabled())
        SibTr.exit(tc, "registerCallbackOnNewExpression", new Boolean(areConsumers));
      return areConsumers;  
    }