/**
  * Detect if this plugin declares a StreamWrapper, and if yes loads it and register the stream.
  * @param bool $register
  * @return array|bool
  */
 public function detectStreamWrapper($register = false)
 {
     if (isset($this->streamData)) {
         if ($this->streamData === false) {
             return false;
         }
         $streamData = $this->streamData;
         // include wrapper, no other checks needed.
         include_once AJXP_INSTALL_PATH . "/" . $streamData["filename"];
     } else {
         if ($this->manifestXML != null) {
             $this->unserializeManifest();
         }
         $files = $this->xPath->query("class_stream_wrapper");
         if (!$files->length) {
             $this->streamData = false;
             return false;
         }
         $streamData = $this->nodeAttrToHash($files->item(0));
         if (!is_file(AJXP_INSTALL_PATH . "/" . $streamData["filename"])) {
             $this->streamData = false;
             return false;
         }
         include_once AJXP_INSTALL_PATH . "/" . $streamData["filename"];
         if (!class_exists($streamData["classname"])) {
             $this->streamData = false;
             return false;
         }
         $this->streamData = $streamData;
     }
     if ($register) {
         $pServ = AJXP_PluginsService::getInstance();
         $wrappers = stream_get_wrappers();
         if (!in_array($streamData["protocol"], $wrappers)) {
             stream_wrapper_register($streamData["protocol"], $streamData["classname"]);
             $pServ->registerWrapperClass($streamData["protocol"], $streamData["classname"]);
         }
         AJXP_MetaStreamWrapper::register($wrappers);
     }
     return $streamData;
 }