docs: @Override
      public void registerResult(String requesterID, String conversationID, FunctionalityResultMessage resultMsg) throws ServiceExecutionException
      {
  
          BSDFLogger.getLogger().info(
                  "Registers a result for requester: " + requesterID
                  + ", conversation: " + conversationID);
  
          IChannelProducer channel = this.channelProducersHelper.getChannel(resultMsg.getFunctionalityName(), requesterID, conversationID);
          try
          {
              if (null != channel && (channel instanceof InternalChannel))
              {
  
                  channel.send(resultMsg);
                  channel.signalReception();
  
              } else
              {
                  Collection<IChannelProducer> channels = this.channelProducersHelper.getChannels(resultMsg.getFunctionalityName());
  
                  if (null != channels && !channels.isEmpty())
                  {
                      for (IChannelProducer ch : channels)
                      {
                          if (ch instanceof InternalChannel)
                          {
                              ch.send(resultMsg);
                              ch.signalReception();
                          }
  
                      }
                  } else
                  {
                      for (IChannelProducer ch : this.channelProducersHelper.getUnidentifiedChannels())
                      {
  
                          if (!(ch instanceof InternalChannel))
                          {
                              ch.send(resultMsg);
                              ch.signalReception();
                          }
  
                      }
                  }
              }
          } catch (ModelException ex)
          {
              throw new ServiceExecutionException(ex.getMessage(), ex);
          }
  
      }