/**
  * delete list of applications
  *
  * @param array $_applications list of application names
  */
 public function uninstallApplications($_applications)
 {
     $this->_clearCache();
     $installedApps = Tinebase_Application::getInstance()->getApplications();
     // uninstall all apps if tinebase ist going to be uninstalled
     if (count($installedApps) !== count($_applications) && in_array('Tinebase', $_applications)) {
         $_applications = $installedApps->name;
     }
     // deactivate foreign key check if all installed apps should be uninstalled
     if (count($installedApps) == count($_applications) && get_class($this->_backend) == 'Setup_Backend_Mysql') {
         $this->_backend->setForeignKeyChecks(0);
         foreach ($installedApps as $app) {
             if ($app->name != 'Tinebase') {
                 $this->_uninstallApplication($app, true);
             } else {
                 $tinebase = $app;
             }
         }
         // tinebase should be uninstalled last
         $this->_uninstallApplication($tinebase);
         $this->_backend->setForeignKeyChecks(1);
     } else {
         // get xml and sort apps first
         $applications = array();
         foreach ($_applications as $applicationName) {
             $applications[$applicationName] = $this->getSetupXml($applicationName);
         }
         $applications = $this->_sortUninstallableApplications($applications);
         foreach ($applications as $name => $xml) {
             $app = Tinebase_Application::getInstance()->getApplicationByName($name);
             $this->_uninstallApplication($app);
         }
     }
 }