original_string: public function set_active_method($method) {
          global $DB;
  
          $this->ensure_isset(array('context', 'component', 'area'));
  
          // make sure the passed method is empty or a valid plugin name
          if (empty($method)) {
              $method = null;
          } else {
              if ('gradingform_'.$method !== clean_param('gradingform_'.$method, PARAM_COMPONENT)) {
                  throw new moodle_exception('invalid_method_name', 'core_grading');
              }
              $available = $this->get_available_methods(false);
              if (!array_key_exists($method, $available)) {
                  throw new moodle_exception('invalid_method_name', 'core_grading');
              }
          }
  
          // get the current grading area record if it exists
          if (is_null($this->areacache)) {
              $this->areacache = $DB->get_record('grading_areas', array(
                  'contextid' => $this->context->id,
                  'component' => $this->component,
                  'areaname'  => $this->area),
              '*', IGNORE_MISSING);
          }
  
          $methodchanged = false;
  
          if ($this->areacache === false) {
              // no area record yet, create one with the active method set
              $area = array(
                  'contextid'     => $this->context->id,
                  'component'     => $this->component,
                  'areaname'      => $this->area,
                  'activemethod'  => $method);
              $DB->insert_record('grading_areas', $area);
              $methodchanged = true;
  
          } else {
              // update the existing record if needed
              if ($this->areacache->activemethod !== $method) {
                  $DB->set_field('grading_areas', 'activemethod', $method, array('id' => $this->areacache->id));
                  $methodchanged = true;
              }
          }
  
          $this->areacache = null;
  
          return $methodchanged;
      }
code: public function set_active_method($method) {
          global $DB;
  
          $this->ensure_isset(array('context', 'component', 'area'));
  
          // make sure the passed method is empty or a valid plugin name
          if (empty($method)) {
              $method = null;
          } else {
              if ('gradingform_'.$method !== clean_param('gradingform_'.$method, PARAM_COMPONENT)) {
                  throw new moodle_exception('invalid_method_name', 'core_grading');
              }
              $available = $this->get_available_methods(false);
              if (!array_key_exists($method, $available)) {
                  throw new moodle_exception('invalid_method_name', 'core_grading');
              }
          }
  
          // get the current grading area record if it exists
          if (is_null($this->areacache)) {
              $this->areacache = $DB->get_record('grading_areas', array(
                  'contextid' => $this->context->id,
                  'component' => $this->component,
                  'areaname'  => $this->area),
              '*', IGNORE_MISSING);
          }
  
          $methodchanged = false;
  
          if ($this->areacache === false) {
              // no area record yet, create one with the active method set
              $area = array(
                  'contextid'     => $this->context->id,
                  'component'     => $this->component,
                  'areaname'      => $this->area,
                  'activemethod'  => $method);
              $DB->insert_record('grading_areas', $area);
              $methodchanged = true;
  
          } else {
              // update the existing record if needed
              if ($this->areacache->activemethod !== $method) {
                  $DB->set_field('grading_areas', 'activemethod', $method, array('id' => $this->areacache->id));
                  $methodchanged = true;
              }
          }
  
          $this->areacache = null;
  
          return $methodchanged;
      }
code_tokens: public function set_active_method ( $ method ) { global $ DB ; $ this -> ensure_isset ( array ( 'context' , 'component' , 'area' ) ) ; // make sure the passed method is empty or a valid plugin name if ( empty ( $ method ) ) { $ method = null ; } else { if ( 'gradingform_' . $ method !== clean_param ( 'gradingform_' . $ method , PARAM_COMPONENT ) ) { throw new moodle_exception ( 'invalid_method_name' , 'core_grading' ) ; } $ available = $ this -> get_available_methods ( false ) ; if ( ! array_key_exists ( $ method , $ available ) ) { throw new moodle_exception ( 'invalid_method_name' , 'core_grading' ) ; } } // get the current grading area record if it exists if ( is_null ( $ this -> areacache ) ) { $ this -> areacache = $ DB -> get_record ( 'grading_areas' , array ( 'contextid' => $ this -> context -> id , 'component' => $ this -> component , 'areaname' => $ this -> area ) , '*' , IGNORE_MISSING ) ; } $ methodchanged = false ; if ( $ this -> areacache === false ) { // no area record yet, create one with the active method set $ area = array ( 'contextid' => $ this -> context -> id , 'component' => $ this -> component , 'areaname' => $ this -> area , 'activemethod' => $ method ) ; $ DB -> insert_record ( 'grading_areas' , $ area ) ; $ methodchanged = true ; } else { // update the existing record if needed if ( $ this -> areacache -> activemethod !== $ method ) { $ DB -> set_field ( 'grading_areas' , 'activemethod' , $ method , array ( 'id' => $ this -> areacache -> id ) ) ; $ methodchanged = true ; } } $ this -> areacache = null ; return $ methodchanged ; }
docstring: Sets the currently active grading method in the gradable area
  
  @param string $method the method name, eg 'rubric' (must be available)
  @return bool true if the method changed or was just set, false otherwise
docstring_tokens: Sets the currently active grading method in the gradable area