original_string: public static function get_name() {
          // Override in subclass with real lang string.
          $parts = explode('\\', get_called_class());
          if (count($parts) !== 3) {
              return get_string('unknownevent', 'error');
          }
          return $parts[0].': '.str_replace('_', ' ', $parts[2]);
      }
code: public static function get_name() {
          // Override in subclass with real lang string.
          $parts = explode('\\', get_called_class());
          if (count($parts) !== 3) {
              return get_string('unknownevent', 'error');
          }
          return $parts[0].': '.str_replace('_', ' ', $parts[2]);
      }
code_tokens: public static function get_name ( ) { // Override in subclass with real lang string. $ parts = explode ( '\\' , get_called_class ( ) ) ; if ( count ( $ parts ) !== 3 ) { return get_string ( 'unknownevent' , 'error' ) ; } return $ parts [ 0 ] . ': ' . str_replace ( '_' , ' ' , $ parts [ 2 ] ) ; }
docstring: Returns localised general event name.
  
  Override in subclass, we can not make it static and abstract at the same time.
  
  @return string
docstring_tokens: Returns localised general event name .