/**
  * Packs the current body data (memento) for save & re-use
  *
  * @param string $bodyName
  * @param array $bodyKeys
  * @param array $operationKeys
  * @param array $operationParameterDefinitions
  * @param array $operationParameters
  * @param int $bodyCallCount
  * @param array $currentLoopData
  * @param string $operationName
  * @return The memento
  */
 function storeBodyMemento($bodyName, $bodyKeys, $operationKeys, $operationParameterDefinitions, $operationParameters, &$bodyCallCount, $currentLoopData, $operationName)
 {
     $this->storeOperationMemento($operationKeys, $operationParameterDefinitions, $operationParameters, $bodyCallCount, $operationName);
     $keyArray = $this->makeKeyArray($operationKeys, $operationParameterDefinitions, $operationParameters);
     $http = eZHTTPTool::instance();
     $keyArray['session_key'] = $http->sessionID();
     $mementoData = array();
     $mementoData['name'] = $bodyName;
     $mementoData['parameters'] = $operationParameters;
     $mementoData['loop_data'] = $currentLoopData;
     $mementoData['module_name'] = $this->ModuleName;
     $mementoData['operation_name'] = $operationName;
     $memento = eZOperationMemento::create($keyArray, $mementoData, false, $this->Memento->attribute('memento_key'));
     $memento->store();
     return $memento;
 }