public function addToCache($entry)
 {
     $newentry = $this->_cache->searchNodeId($entry->getId());
     if ($newentry === false || !$newentry->hasItem()) {
         $this->_updated = true;
         $newentry = $this->_cache->createNode($entry->getId());
         $newentry->setItem($entry);
     }
     /* Set Check if entry isn't a folder */
     if ($entry->getMimeType() !== 'application/vnd.google-apps.folder') {
         $newentry->setChecked(true);
     } else {
         $newentry->setChecked(false);
     }
     /* If entry hasn't any parents, add it to root */
     if (!$newentry->hasParents()) {
         $this->getRoot()->addChild($newentry);
         return $newentry;
     }
     /* Parent doesn't exists yet in our cache
      * We need to get this parents */
     $getparents = array();
     foreach ($entry->getParents() as $parent) {
         $parent_in_tree = $this->isCached($parent->getId(), false, false);
         if ($parent_in_tree === false) {
             $getparents[] = $parent->getId();
         }
     }
     if (count($getparents) > 0) {
         $parents = $this->processor->getMultipleEntries($getparents);
         foreach ($parents as $parent) {
             $this->addToCache($parent);
         }
     }
     /* Add entry to all parents */
     foreach ($entry->getParents() as $parent) {
         $parent_in_tree = $this->_cache->searchNodeId($parent->getId());
         /* Parent does already exists in our cache */
         if ($parent_in_tree !== false) {
             $newentry->setParent($parent_in_tree);
         }
     }
     return $newentry;
 }