/**
  * Construct
  */
 public function __construct(Person $person)
 {
     if (null !== $person) {
         $this->id = $person->getId();
         $this->name = $person->getName();
         $this->email = $person->getEmail();
         $this->web = $person->getWeb();
         $this->phone = $person->getPhone();
         $this->setI18nHonorific($person->getI18nHonorific());
         $this->setI18nFirm($person->getI18nFirm());
         $this->setI18nPost($person->getI18nPost());
         $this->setI18nBio($person->getI18nBio());
     }
 }
 /**
  * Count multimedia objects with person
  *
  * @param  Person $person
  * @return array
  */
 public function countMultimediaObjectsWithPerson($person)
 {
     return count($this->repoMmobj->findByPersonId($person->getId()));
 }
 /**
  * Reorder person with role
  *
  * @param Person|EmbeddedRole $person
  * @param Role\EmbeddedRole $role
  * @param boolean $up
  */
 public function reorderPersonWithRole($person, $role, $up = true)
 {
     $people = array_values($this->getPeopleByRole($role, true));
     $this->getEmbeddedRole($role)->getPeople()->clear();
     $out = array();
     foreach ($people as $key => $embeddedPerson) {
         if ($person->getId() == $embeddedPerson->getId()) {
             $out[$key * 10 + ($up ? -11 : 11)] = $embeddedPerson;
         } else {
             $out[$key * 10] = $embeddedPerson;
         }
     }
     ksort($out);
     foreach ($out as $embeddedPerson) {
         $this->getEmbeddedRole($role)->addPerson($embeddedPerson);
     }
 }
 /**
  * Contained embed person
  *
  * @param  Person|EmbeddedPerson  $person
  * @return EmbeddedPerson|boolean EmbeddedPerson if found, FALSE otherwise:
  */
 public function getEmbeddedPerson($person)
 {
     foreach ($this->people as $embeddedPerson) {
         if ($person->getId() === $embeddedPerson->getId()) {
             return $embeddedPerson;
         }
     }
     return false;
 }