/**
  * Register transport implementation for a specific scheme
  *
  * @param   string scheme
  * @param   lang.XPClass<peer.http.HttpTransport> class
  */
 public static function register($scheme, XPClass $class)
 {
     if (!$class->isSubclassOf('peer.http.HttpTransport')) {
         throw new \lang\IllegalArgumentException(sprintf('Given argument must be lang.XPClass<peer.http.HttpTransport>, %s given', $class->toString()));
     }
     self::$transports[$scheme] = $class;
 }
 /**
  * Register a driver
  *
  * Usage:
  * <code>
  *   DriverManager::register('mydb', XPClass::forName('my.db.Connection'));
  *   // [...]
  *   $conn= DriverManager::getConnection('mydb://...');
  * </code>
  *
  * @param   string name identifier
  * @param   lang.XPClass<rdbms.DBConnection> class
  * @throws  lang.IllegalArgumentException in case an incorrect class is given
  */
 public static function register($name, \lang\XPClass $class)
 {
     if (!$class->isSubclassOf('rdbms.DBConnection')) {
         throw new \lang\IllegalArgumentException(sprintf('Given argument must be lang.XPClass<rdbms.DBConnection>, %s given', $class->toString()));
     }
     self::$instance->drivers[$name] = $class;
     self::$instance->lookup = [];
 }