/**
  *
  * @param \Rhapsody\SetupBundle\Model\Query $query
  * @throws \NullPointerException
  * @return unknown
  */
 public function query(Query $query)
 {
     $result = $this->populator->query($query);
     if ($result === null) {
         throw new \NullPointerException('Unable to find object: ' . $query->getType() . ' using query:' . $query->getStatement());
     }
     if ($query->hasName()) {
         $name = $query->getName();
         $object = Object::fromInstance($name, $result);
         $this->cache($name, $object);
     }
     return $result;
 }