code: @Override
      public void addConnectionListener(SICoreConnectionListener listener)
                      throws SIConnectionDroppedException,
                      SIConnectionUnavailableException {
  
          checkValid();
  
          _delegateConnection.addConnectionListener(listener);
  
      }
docs: Adds a connection listener. Checks that the connection is valid and then
  delegates.
  
  @param listener
  the listener to add
  @throws SIConnectionUnavailableException
  if the connection is not valid
  @throws SIConnectionDroppedException
  if the delegation fails