public function getDependencies()
 {
     $result = parent::getDependencies();
     if (!$this->syncedDependencies) {
         $this->syncedDependencies = true;
         $result = $this->pdo->findDependencies($this->getId());
         $this->setDependencies($result);
     }
     return $result;
 }
 private function findVersion(Package $package, Version $version)
 {
     foreach ($package->getVersions() as $packageVersion) {
         if ($packageVersion->getVersion() == $version->getVersion()) {
             return $packageVersion;
         }
     }
     return null;
 }
 public function removeVersion(Version $version)
 {
     $sql = "DELETE FROM " . $this->getTablePrefix() . "version WHERE id = ?";
     $stmt = $this->pdo->prepare($sql);
     $stmt->execute(array($version->getId()));
 }
 private function parseVersionJson($versionJson, $resolverJson)
 {
     $version = new Version();
     $version->setCreatedAt(new \DateTime());
     $version->setUpdatedAt(new \DateTime());
     $version->setVersion($versionJson->name);
     $version->setReferenceName($versionJson->name);
     $version->setReferenceHash($versionJson->commit->sha);
     if (isset($resolverJson->license)) {
         $version->setLicense($resolverJson->license);
     }
     if (isset($resolverJson->projects) && is_array($resolverJson->projects)) {
         foreach ($resolverJson->projects as $project) {
             if (isset($project->dependencies) && is_array($project->dependencies)) {
                 $this->parseProjectDependencies($version, $project->dependencies);
             }
         }
     }
     return $version;
 }
 private function generateVersion(Version $version)
 {
     return array('createdAt' => array('date' => $version->getCreatedAt()->format('Y-m-d H:i:s'), 'timezone' => $version->getCreatedAt()->getTimezone()->getName()), 'reference' => $version->getReference(), 'referenceType' => $version->getReferenceType(), 'referenceUrl' => $version->getReferenceUrl(), 'license' => $version->getLicense(), 'updatedAt' => array('date' => $version->getUpdatedAt()->format('Y-m-d H:i:s'), 'timezone' => $version->getUpdatedAt()->getTimezone()->getName()), 'version' => $version->getVersion());
 }