original_string: public static function build($name)
      {
          if (isset(static::$_builtTypes[$name])) {
              return static::$_builtTypes[$name];
          }
          if (!isset(static::$_types[$name])) {
              throw new InvalidArgumentException(sprintf('Unknown type "%s"', $name));
          }
          if (is_string(static::$_types[$name])) {
              return static::$_builtTypes[$name] = new static::$_types[$name]($name);
          }
  
          return static::$_builtTypes[$name] = static::$_types[$name];
      }
code: public static function build($name)
      {
          if (isset(static::$_builtTypes[$name])) {
              return static::$_builtTypes[$name];
          }
          if (!isset(static::$_types[$name])) {
              throw new InvalidArgumentException(sprintf('Unknown type "%s"', $name));
          }
          if (is_string(static::$_types[$name])) {
              return static::$_builtTypes[$name] = new static::$_types[$name]($name);
          }
  
          return static::$_builtTypes[$name] = static::$_types[$name];
      }
code_tokens: public static function build ( $ name ) { if ( isset ( static :: $ _builtTypes [ $ name ] ) ) { return static :: $ _builtTypes [ $ name ] ; } if ( ! isset ( static :: $ _types [ $ name ] ) ) { throw new InvalidArgumentException ( sprintf ( 'Unknown type "%s"' , $ name ) ) ; } if ( is_string ( static :: $ _types [ $ name ] ) ) { return static :: $ _builtTypes [ $ name ] = new static :: $ _types [ $ name ] ( $ name ) ; } return static :: $ _builtTypes [ $ name ] = static :: $ _types [ $ name ] ; }
docstring: Returns a Type object capable of converting a type identified by name.
  
  @param string $name type identifier
  @throws \InvalidArgumentException If type identifier is unknown
  @return \Cake\Database\Type
docstring_tokens: Returns a Type object capable of converting a type identified by name .