/**
  * {@inheritDoc}
  */
 public function code()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'code', array());
     return parent::code();
 }
 /**
  * Get all objectives in a curriculum.
  *
  * @param Curriculum $curriculum
  * @return mixed
  */
 public function objectivesOfCurriculum(Curriculum $curriculum)
 {
     $key = md5('objectives.' . $curriculum->code());
     if (Cache::has($key)) {
         return Cache::get($key);
     }
     $qb = $this->em->createQueryBuilder();
     $qb->select('o')->from($this->objectiveClass, 'o')->join('o.structure', 's')->join('s.curriculum', 'c')->where($qb->expr()->eq('c.id', '?1'))->setParameter(1, $curriculum->id());
     $result = $qb->getQuery()->getResult();
     Cache::forever('$key', $result);
     return $result;
 }