original_string: protected function get_subplugin_handler($subplugin) {
          global $CFG; // we include other files here
  
          if (is_null($this->subpluginhandlers)) {
              $this->subpluginhandlers = array();
              $subplugins = core_component::get_plugin_list('assignment');
              foreach ($subplugins as $name => $dir) {
                  $handlerfile  = $dir.'/backup/moodle1/lib.php';
                  $handlerclass = "moodle1_mod_assignment_{$name}_subplugin_handler";
                  if (!file_exists($handlerfile)) {
                      continue;
                  }
                  require_once($handlerfile);
  
                  if (!class_exists($handlerclass)) {
                      throw new moodle1_convert_exception('missing_handler_class', $handlerclass);
                  }
                  $this->log('preparing assignment subplugin handler', backup::LOG_DEBUG, $handlerclass);
                  $this->subpluginhandlers[$name] = new $handlerclass($this, $name);
                  if (!$this->subpluginhandlers[$name] instanceof moodle1_assignment_subplugin_handler) {
                      throw new moodle1_convert_exception('wrong_handler_class', get_class($this->subpluginhandlers[$name]));
                  }
              }
          }
  
          if (!isset($this->subpluginhandlers[$subplugin])) {
              // Generic handling, prevents breaking conversion process...
              $this->subpluginhandlers[$subplugin] = new moodle1_assignment_unsupported_subplugin_handler($this, $subplugin);
          }
  
          return $this->subpluginhandlers[$subplugin];
      }
code: protected function get_subplugin_handler($subplugin) {
          global $CFG; // we include other files here
  
          if (is_null($this->subpluginhandlers)) {
              $this->subpluginhandlers = array();
              $subplugins = core_component::get_plugin_list('assignment');
              foreach ($subplugins as $name => $dir) {
                  $handlerfile  = $dir.'/backup/moodle1/lib.php';
                  $handlerclass = "moodle1_mod_assignment_{$name}_subplugin_handler";
                  if (!file_exists($handlerfile)) {
                      continue;
                  }
                  require_once($handlerfile);
  
                  if (!class_exists($handlerclass)) {
                      throw new moodle1_convert_exception('missing_handler_class', $handlerclass);
                  }
                  $this->log('preparing assignment subplugin handler', backup::LOG_DEBUG, $handlerclass);
                  $this->subpluginhandlers[$name] = new $handlerclass($this, $name);
                  if (!$this->subpluginhandlers[$name] instanceof moodle1_assignment_subplugin_handler) {
                      throw new moodle1_convert_exception('wrong_handler_class', get_class($this->subpluginhandlers[$name]));
                  }
              }
          }
  
          if (!isset($this->subpluginhandlers[$subplugin])) {
              // Generic handling, prevents breaking conversion process...
              $this->subpluginhandlers[$subplugin] = new moodle1_assignment_unsupported_subplugin_handler($this, $subplugin);
          }
  
          return $this->subpluginhandlers[$subplugin];
      }
code_tokens: protected function get_subplugin_handler ( $ subplugin ) { global $ CFG ; // we include other files here if ( is_null ( $ this -> subpluginhandlers ) ) { $ this -> subpluginhandlers = array ( ) ; $ subplugins = core_component :: get_plugin_list ( 'assignment' ) ; foreach ( $ subplugins as $ name => $ dir ) { $ handlerfile = $ dir . '/backup/moodle1/lib.php' ; $ handlerclass = "moodle1_mod_assignment_{$name}_subplugin_handler" ; if ( ! file_exists ( $ handlerfile ) ) { continue ; } require_once ( $ handlerfile ) ; if ( ! class_exists ( $ handlerclass ) ) { throw new moodle1_convert_exception ( 'missing_handler_class' , $ handlerclass ) ; } $ this -> log ( 'preparing assignment subplugin handler' , backup :: LOG_DEBUG , $ handlerclass ) ; $ this -> subpluginhandlers [ $ name ] = new $ handlerclass ( $ this , $ name ) ; if ( ! $ this -> subpluginhandlers [ $ name ] instanceof moodle1_assignment_subplugin_handler ) { throw new moodle1_convert_exception ( 'wrong_handler_class' , get_class ( $ this -> subpluginhandlers [ $ name ] ) ) ; } } } if ( ! isset ( $ this -> subpluginhandlers [ $ subplugin ] ) ) { // Generic handling, prevents breaking conversion process... $ this -> subpluginhandlers [ $ subplugin ] = new moodle1_assignment_unsupported_subplugin_handler ( $ this , $ subplugin ) ; } return $ this -> subpluginhandlers [ $ subplugin ] ; }
docstring: Factory method returning the handler of the given assignment subplugin
  
  @param string $subplugin the name of the subplugin
  @throws moodle1_convert_exception
  @return moodle1_assignment_subplugin_handler the instance of the handler
docstring_tokens: Factory method returning the handler of the given assignment subplugin