code: protected synchronized void processResultFor(
              String requesterID,
              String conversationID, 
              Collection dataCollection) 
                  throws ServiceExecutionException, SemanticModelException
      {
                
          String methodName = getResponseToFrom(
              Thread.currentThread().getStackTrace()[2].getClassName(),
              Thread.currentThread().getStackTrace()[2].getMethodName()
          );
          
          if (null == methodName) 
          {
              BSDFLogger.getLogger().debug("Cannot process result for requester: " + requesterID
                              + " and conversation: " + conversationID);
              return;
          }        
          
          Collection <IResult> results = new ArrayList<IResult>();
  
          IFunctionalityImplementation functionalityImplementation
                  = this.functionalityImplementations.get(methodName);
  
          if (null != functionalityImplementation)
          {
              for (Object dataObj : dataCollection)
              {
                  results.add(functionalityImplementation.createOutput(
                          dataObj,
                          functionalityImplementation.getAdvertisedFunctionality()));
              }
              
              FunctionalityResultMessage resultMsg = new FunctionalityResultMessage(
                      results, 
                      functionalityImplementation.name());
  
              BSDFLogger.getLogger().debug(
                      "Registers results as a FunctionalityResultMessage for requester: " + requesterID
                      + " and conversation: " + conversationID);
              
              for (IFunctionalityGrounding funcGr : 
                      functionalityImplementation.getAdvertisedFunctionality().getFunctionalityGroundings())
              {
                  funcGr.registerResult(requesterID, conversationID, resultMsg);
              }
              return;
          }
          BSDFLogger.getLogger().debug("Cannot process result for requester: " + requesterID
                              + " and conversation: " + conversationID);
      }
docs: /*
  This method should called within methods that obtain results and are annotated
  with @ResponseTo("functionalityMethodName").