original_string: public function synchronizeSurveyBatch(\Gems_Task_TaskRunnerBatch $batch, $userId)
      {
          // Surveys in Gems
          $select = $this->_gemsDb->select();
          $select->from('gems__surveys', array('gsu_id_survey', 'gsu_surveyor_id'))
                  ->where('gsu_id_source = ?', $this->getId())
                  ->order('gsu_surveyor_id');
  
          $gemsSurveys = $this->_gemsDb->fetchPairs($select);
          if (!$gemsSurveys) {
              $gemsSurveys = array();
          }
  
          // Surveys in Source
          $sourceSurveys = $this->_getSourceSurveysForSynchronisation();
          if ($sourceSurveys) {
              $sourceSurveys = array_combine($sourceSurveys, $sourceSurveys);
          } else {
              $sourceSurveys = array();
          }
  
          // Always those already in the database
          foreach ($gemsSurveys as $surveyId => $sourceSurveyId) {
  
              if (isset($sourceSurveys[$sourceSurveyId])) {
                  $batch->addTask('Tracker_CheckSurvey', $this->getId(), $sourceSurveyId, $surveyId, $userId);
                  $batch->addTask('Tracker_AddRefreshQuestions', $this->getId(), $sourceSurveyId, $surveyId);
              } else {
                  // Do not pass the source id when it no longer exists
                  $batch->addTask('Tracker_CheckSurvey', $this->getId(), null, $surveyId, $userId);
              }
          }
  
          // Now add the new ones
          foreach (array_diff($sourceSurveys, $gemsSurveys) as $sourceSurveyId) {
              $batch->addTask('Tracker_CheckSurvey', $this->getId(), $sourceSurveyId, null, $userId);
              $batch->addTask('Tracker_AddRefreshQuestions', $this->getId(), $sourceSurveyId, null);
          }
      }
code: public function synchronizeSurveyBatch(\Gems_Task_TaskRunnerBatch $batch, $userId)
      {
          // Surveys in Gems
          $select = $this->_gemsDb->select();
          $select->from('gems__surveys', array('gsu_id_survey', 'gsu_surveyor_id'))
                  ->where('gsu_id_source = ?', $this->getId())
                  ->order('gsu_surveyor_id');
  
          $gemsSurveys = $this->_gemsDb->fetchPairs($select);
          if (!$gemsSurveys) {
              $gemsSurveys = array();
          }
  
          // Surveys in Source
          $sourceSurveys = $this->_getSourceSurveysForSynchronisation();
          if ($sourceSurveys) {
              $sourceSurveys = array_combine($sourceSurveys, $sourceSurveys);
          } else {
              $sourceSurveys = array();
          }
  
          // Always those already in the database
          foreach ($gemsSurveys as $surveyId => $sourceSurveyId) {
  
              if (isset($sourceSurveys[$sourceSurveyId])) {
                  $batch->addTask('Tracker_CheckSurvey', $this->getId(), $sourceSurveyId, $surveyId, $userId);
                  $batch->addTask('Tracker_AddRefreshQuestions', $this->getId(), $sourceSurveyId, $surveyId);
              } else {
                  // Do not pass the source id when it no longer exists
                  $batch->addTask('Tracker_CheckSurvey', $this->getId(), null, $surveyId, $userId);
              }
          }
  
          // Now add the new ones
          foreach (array_diff($sourceSurveys, $gemsSurveys) as $sourceSurveyId) {
              $batch->addTask('Tracker_CheckSurvey', $this->getId(), $sourceSurveyId, null, $userId);
              $batch->addTask('Tracker_AddRefreshQuestions', $this->getId(), $sourceSurveyId, null);
          }
      }
code_tokens: public function synchronizeSurveyBatch ( \ Gems_Task_TaskRunnerBatch $ batch , $ userId ) { // Surveys in Gems $ select = $ this -> _gemsDb -> select ( ) ; $ select -> from ( 'gems__surveys' , array ( 'gsu_id_survey' , 'gsu_surveyor_id' ) ) -> where ( 'gsu_id_source = ?' , $ this -> getId ( ) ) -> order ( 'gsu_surveyor_id' ) ; $ gemsSurveys = $ this -> _gemsDb -> fetchPairs ( $ select ) ; if ( ! $ gemsSurveys ) { $ gemsSurveys = array ( ) ; } // Surveys in Source $ sourceSurveys = $ this -> _getSourceSurveysForSynchronisation ( ) ; if ( $ sourceSurveys ) { $ sourceSurveys = array_combine ( $ sourceSurveys , $ sourceSurveys ) ; } else { $ sourceSurveys = array ( ) ; } // Always those already in the database foreach ( $ gemsSurveys as $ surveyId => $ sourceSurveyId ) { if ( isset ( $ sourceSurveys [ $ sourceSurveyId ] ) ) { $ batch -> addTask ( 'Tracker_CheckSurvey' , $ this -> getId ( ) , $ sourceSurveyId , $ surveyId , $ userId ) ; $ batch -> addTask ( 'Tracker_AddRefreshQuestions' , $ this -> getId ( ) , $ sourceSurveyId , $ surveyId ) ; } else { // Do not pass the source id when it no longer exists $ batch -> addTask ( 'Tracker_CheckSurvey' , $ this -> getId ( ) , null , $ surveyId , $ userId ) ; } } // Now add the new ones foreach ( array_diff ( $ sourceSurveys , $ gemsSurveys ) as $ sourceSurveyId ) { $ batch -> addTask ( 'Tracker_CheckSurvey' , $ this -> getId ( ) , $ sourceSurveyId , null , $ userId ) ; $ batch -> addTask ( 'Tracker_AddRefreshQuestions' , $ this -> getId ( ) , $ sourceSurveyId , null ) ; } }
docstring: Updates the gems database with the latest information about the surveys in this source adapter
  
  @param \Gems_Task_TaskRunnerBatch $batch
  @param int $userId    Id of the user who takes the action (for logging)
  @return array Returns an array of messages
docstring_tokens: Updates the gems database with the latest information about the surveys in this source adapter