/**
  * Builds nodes for all dependent packages.
  */
 protected function buildDependentPackageNodes()
 {
     if (!PackageUninstallationDispatcher::hasDependencies($this->installation->queue->packageID)) {
         return;
     }
     $packageList = PackageUninstallationDispatcher::getOrderedPackageDependencies($this->installation->queue->packageID);
     $queue = $this->installation->queue;
     foreach ($packageList as $package) {
         $queue = PackageInstallationQueueEditor::create(array('processNo' => $queue->processNo, 'parentQueueID' => $queue->queueID, 'userID' => WCF::getUser()->userID, 'package' => $package->package, 'packageName' => $package->getName(), 'packageID' => $package->packageID, 'action' => 'uninstall'));
         // spawn nodes
         $uninstallation = new PackageUninstallationDispatcher($queue);
         $uninstallation->nodeBuilder->setParentNode($this->node);
         $uninstallation->nodeBuilder->buildNodes();
         $this->parentNode = $uninstallation->nodeBuilder->getCurrentNode();
         $this->node = $this->getToken();
     }
 }