code: public void addCallbackToConnectionIndex(
      ConnectionImpl connection,
      String topicExpression,
      boolean isWildcarded,
      ConsumerSetChangeCallback callback)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.entry(
            tc,
            "addCallbackToConnectionIndex",
            new Object[] {connection, topicExpression, new Boolean(isWildcarded), callback });
  
      // Map of callbacks-to-expressions for a connection
      Map connMap = null;
      if(_callbackIndex.containsKey(connection))
      {
        // Already have registered callbacks for this connection
        connMap = (HashMap)_callbackIndex.get(connection);
      }
      else
      {
        // No registered callbacks for this connection
        connMap = new HashMap();
        _callbackIndex.put(connection,connMap);
      }
  
      // Add the new callback to the index, so we can find it when we deregister
      TopicRecord tRecord = new TopicRecord(topicExpression, isWildcarded);
      connMap.put(callback, tRecord);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "addCallbackToConnectionIndex");
  
    }
docs: Method addCallbackToConnectionIndex
  
  Adds a new callback to the callback index.
  
  @param topicExpression
  @param isWildcarded
  @param callback
  @return