original_string: public function get_controller($method) {
          global $CFG, $DB;
  
          $this->ensure_isset(array('context', 'component', 'area'));
  
          // make sure the passed method is a valid plugin name
          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);
          }
  
          if ($this->areacache === false) {
              // no area record yet, create one
              $area = array(
                  'contextid' => $this->context->id,
                  'component' => $this->component,
                  'areaname'  => $this->area);
              $areaid = $DB->insert_record('grading_areas', $area);
              // reload the cache
              $this->areacache = $DB->get_record('grading_areas', array('id' => $areaid), '*', MUST_EXIST);
          }
  
          require_once($CFG->dirroot.'/grade/grading/form/'.$method.'/lib.php');
          $classname = 'gradingform_'.$method.'_controller';
  
          return new $classname($this->context, $this->component, $this->area, $this->areacache->id);
      }
code: public function get_controller($method) {
          global $CFG, $DB;
  
          $this->ensure_isset(array('context', 'component', 'area'));
  
          // make sure the passed method is a valid plugin name
          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);
          }
  
          if ($this->areacache === false) {
              // no area record yet, create one
              $area = array(
                  'contextid' => $this->context->id,
                  'component' => $this->component,
                  'areaname'  => $this->area);
              $areaid = $DB->insert_record('grading_areas', $area);
              // reload the cache
              $this->areacache = $DB->get_record('grading_areas', array('id' => $areaid), '*', MUST_EXIST);
          }
  
          require_once($CFG->dirroot.'/grade/grading/form/'.$method.'/lib.php');
          $classname = 'gradingform_'.$method.'_controller';
  
          return new $classname($this->context, $this->component, $this->area, $this->areacache->id);
      }
code_tokens: public function get_controller ( $ method ) { global $ CFG , $ DB ; $ this -> ensure_isset ( array ( 'context' , 'component' , 'area' ) ) ; // make sure the passed method is a valid plugin name 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 ) ; } if ( $ this -> areacache === false ) { // no area record yet, create one $ area = array ( 'contextid' => $ this -> context -> id , 'component' => $ this -> component , 'areaname' => $ this -> area ) ; $ areaid = $ DB -> insert_record ( 'grading_areas' , $ area ) ; // reload the cache $ this -> areacache = $ DB -> get_record ( 'grading_areas' , array ( 'id' => $ areaid ) , '*' , MUST_EXIST ) ; } require_once ( $ CFG -> dirroot . '/grade/grading/form/' . $ method . '/lib.php' ) ; $ classname = 'gradingform_' . $ method . '_controller' ; return new $ classname ( $ this -> context , $ this -> component , $ this -> area , $ this -> areacache -> id ) ; }
docstring: Returns the given method's controller in the gradable area
  
  @param string $method the method name, eg 'rubric' (must be available)
  @return gradingform_controller
docstring_tokens: Returns the given method s controller in the gradable area