original_string: protected static function _determineImplClass(Identifier $identifier): string
      {
          switch ($identifier->typeClass()) {
              case Identifier::CLASS_UNIVERSAL:
                  return self::_determineUniversalImplClass($identifier->intTag());
              case Identifier::CLASS_CONTEXT_SPECIFIC:
                  return ContextSpecificType::class;
              case Identifier::CLASS_APPLICATION:
                  return ApplicationType::class;
              case Identifier::CLASS_PRIVATE:
                  return PrivateType::class;
          }
          throw new \UnexpectedValueException(
              sprintf("%s %d not implemented.",
                  Identifier::classToName($identifier->typeClass()),
                  $identifier->tag()));
      }
code: protected static function _determineImplClass(Identifier $identifier): string
      {
          switch ($identifier->typeClass()) {
              case Identifier::CLASS_UNIVERSAL:
                  return self::_determineUniversalImplClass($identifier->intTag());
              case Identifier::CLASS_CONTEXT_SPECIFIC:
                  return ContextSpecificType::class;
              case Identifier::CLASS_APPLICATION:
                  return ApplicationType::class;
              case Identifier::CLASS_PRIVATE:
                  return PrivateType::class;
          }
          throw new \UnexpectedValueException(
              sprintf("%s %d not implemented.",
                  Identifier::classToName($identifier->typeClass()),
                  $identifier->tag()));
      }
code_tokens: protected static function _determineImplClass ( Identifier $ identifier ) : string { switch ( $ identifier -> typeClass ( ) ) { case Identifier :: CLASS_UNIVERSAL : return self :: _determineUniversalImplClass ( $ identifier -> intTag ( ) ) ; case Identifier :: CLASS_CONTEXT_SPECIFIC : return ContextSpecificType :: class ; case Identifier :: CLASS_APPLICATION : return ApplicationType :: class ; case Identifier :: CLASS_PRIVATE : return PrivateType :: class ; } throw new \ UnexpectedValueException ( sprintf ( "%s %d not implemented." , Identifier :: classToName ( $ identifier -> typeClass ( ) ) , $ identifier -> tag ( ) ) ) ; }
docstring: Determine the class that implements the type.
  
  @param Identifier $identifier
  @return string Class name
docstring_tokens: Determine the class that implements the type .