original_string: final public static function register($type, $className, $includeFile = null)
      {
          $type = strtolower($type);
          if (!empty(self::$_types[$type])) {
              throw new HTML_QuickForm2_InvalidArgumentException(
                  "Renderer type '$type' is already registered"
              );
          }
          self::$_types[$type] = array($className, $includeFile);
          if (empty(self::$_pluginClasses[$type])) {
              self::$_pluginClasses[$type] = array();
          }
      }
code: final public static function register($type, $className, $includeFile = null)
      {
          $type = strtolower($type);
          if (!empty(self::$_types[$type])) {
              throw new HTML_QuickForm2_InvalidArgumentException(
                  "Renderer type '$type' is already registered"
              );
          }
          self::$_types[$type] = array($className, $includeFile);
          if (empty(self::$_pluginClasses[$type])) {
              self::$_pluginClasses[$type] = array();
          }
      }
code_tokens: final public static function register ( $ type , $ className , $ includeFile = null ) { $ type = strtolower ( $ type ) ; if ( ! empty ( self :: $ _types [ $ type ] ) ) { throw new HTML_QuickForm2_InvalidArgumentException ( "Renderer type '$type' is already registered" ) ; } self :: $ _types [ $ type ] = array ( $ className , $ includeFile ) ; if ( empty ( self :: $ _pluginClasses [ $ type ] ) ) { self :: $ _pluginClasses [ $ type ] = array ( ) ; } }
docstring: Registers a new renderer type
  
  @param    string  Type name (treated case-insensitively)
  @param    string  Class name
  @param    string  File containing the class, leave empty if class already loaded
  @throws   HTML_QuickForm2_InvalidArgumentException if type already registered
docstring_tokens: Registers a new renderer type