original_string: public function process_approved_deletions() : array {
          $this->trace->output('Checking requirements');
          if (!$this->check_requirements()) {
              $this->trace->output('Requirements not met. Cannot process expired retentions.', 1);
              return [0, 0];
          }
  
          $this->trace->output('Fetching all approved and expired contexts for deletion.');
          $expiredcontexts = expired_context::get_records(['status' => expired_context::STATUS_APPROVED]);
          $this->trace->output('Done.', 1);
          $totalprocessed = 0;
          $usercount = 0;
          $coursecount = 0;
          foreach ($expiredcontexts as $expiredctx) {
              $context = \context::instance_by_id($expiredctx->get('contextid'), IGNORE_MISSING);
  
              if (empty($context)) {
                  // Unable to process this request further.
                  // We have no context to delete.
                  $expiredctx->delete();
                  continue;
              }
  
              $this->trace->output("Deleting data for " . $context->get_context_name(), 2);
              if ($this->delete_expired_context($expiredctx)) {
                  $this->trace->output("Done.", 3);
                  if ($context instanceof \context_user) {
                      $usercount++;
                  } else {
                      $coursecount++;
                  }
  
                  $totalprocessed++;
                  if ($totalprocessed >= $this->get_delete_limit()) {
                      break;
                  }
              }
          }
  
          return [$coursecount, $usercount];
      }
code: public function process_approved_deletions() : array {
          $this->trace->output('Checking requirements');
          if (!$this->check_requirements()) {
              $this->trace->output('Requirements not met. Cannot process expired retentions.', 1);
              return [0, 0];
          }
  
          $this->trace->output('Fetching all approved and expired contexts for deletion.');
          $expiredcontexts = expired_context::get_records(['status' => expired_context::STATUS_APPROVED]);
          $this->trace->output('Done.', 1);
          $totalprocessed = 0;
          $usercount = 0;
          $coursecount = 0;
          foreach ($expiredcontexts as $expiredctx) {
              $context = \context::instance_by_id($expiredctx->get('contextid'), IGNORE_MISSING);
  
              if (empty($context)) {
                  // Unable to process this request further.
                  // We have no context to delete.
                  $expiredctx->delete();
                  continue;
              }
  
              $this->trace->output("Deleting data for " . $context->get_context_name(), 2);
              if ($this->delete_expired_context($expiredctx)) {
                  $this->trace->output("Done.", 3);
                  if ($context instanceof \context_user) {
                      $usercount++;
                  } else {
                      $coursecount++;
                  }
  
                  $totalprocessed++;
                  if ($totalprocessed >= $this->get_delete_limit()) {
                      break;
                  }
              }
          }
  
          return [$coursecount, $usercount];
      }
code_tokens: public function process_approved_deletions ( ) : array { $ this -> trace -> output ( 'Checking requirements' ) ; if ( ! $ this -> check_requirements ( ) ) { $ this -> trace -> output ( 'Requirements not met. Cannot process expired retentions.' , 1 ) ; return [ 0 , 0 ] ; } $ this -> trace -> output ( 'Fetching all approved and expired contexts for deletion.' ) ; $ expiredcontexts = expired_context :: get_records ( [ 'status' => expired_context :: STATUS_APPROVED ] ) ; $ this -> trace -> output ( 'Done.' , 1 ) ; $ totalprocessed = 0 ; $ usercount = 0 ; $ coursecount = 0 ; foreach ( $ expiredcontexts as $ expiredctx ) { $ context = \ context :: instance_by_id ( $ expiredctx -> get ( 'contextid' ) , IGNORE_MISSING ) ; if ( empty ( $ context ) ) { // Unable to process this request further. // We have no context to delete. $ expiredctx -> delete ( ) ; continue ; } $ this -> trace -> output ( "Deleting data for " . $ context -> get_context_name ( ) , 2 ) ; if ( $ this -> delete_expired_context ( $ expiredctx ) ) { $ this -> trace -> output ( "Done." , 3 ) ; if ( $ context instanceof \ context_user ) { $ usercount ++ ; } else { $ coursecount ++ ; } $ totalprocessed ++ ; if ( $ totalprocessed >= $ this -> get_delete_limit ( ) ) { break ; } } } return [ $ coursecount , $ usercount ] ; }
docstring: Deletes the expired contexts.
  
  @return  int[]       The number of deleted contexts.
docstring_tokens: Deletes the expired contexts .