code: public boolean subscribe(IProvider provider, Map<String, Object> paramMap) {
          boolean success = providers.addIfAbsent(provider);
          // register event listener if given and just added
          if (success && provider instanceof IPipeConnectionListener) {
              listeners.addIfAbsent((IPipeConnectionListener) provider);
          }
          return success;
      }
docs: Connect provider to this pipe. Doesn't allow to connect one provider twice. Does register event listeners if instance of IPipeConnectionListener is given.
  
  @param provider
  Provider
  @param paramMap
  Parameters passed with connection, used in concrete pipe implementations
  @return true if provider was added, false otherwise