/**
  * @param Bild $bild
  */
 public function addBild(Bild $bild)
 {
     $id = $bild->getId();
     if (!$id) {
         $this->bilder->add($bild);
     } elseif (!$this->bilder->containsKey($id)) {
         $this->bilder->set($id, $bild);
     }
     $bild->setTraeger($this);
 }
 private function setDataFromJson(Traeger $traeger = null)
 {
     $rawData = file_get_contents("php://input");
     $data = json_decode($rawData);
     if ($traeger === null && isset($data->email)) {
         $traeger = new Traeger($data->email);
         if (isset($data->password)) {
             $encoder = $this->container->get('security.password_encoder');
             $encoded = $encoder->encodePassword($traeger, $data->passwort);
             $traeger->setPassword($encoded);
         }
     } else {
         if (isset($data->email)) {
             $traeger->setEmail($data->email);
         }
         if (isset($data->passwort)) {
             $encoder = $this->container->get('security.password_encoder');
             $encoded = $encoder->encodePassword($traeger, $data->passwort);
             $traeger->setPassword($encoded);
         }
     }
     // Ansprechpartner
     if (isset($data->ansprechpartner)) {
         // TODO: Unperformant und auch nicht besonders Elegant immer alle Ansprechpartner zu löschen...
         $traeger->deleteAllAnsprechpartner();
         foreach ($data->ansprechpartner as $rawAnsprechpartner) {
             $ansprechpartner = new Ansprechpartner($rawAnsprechpartner->name, $rawAnsprechpartner->email);
             if (isset($rawAnsprechpartner->telefonnummer)) {
                 $ansprechpartner->setTelefonnummer($rawAnsprechpartner->telefonnummer);
             }
             if (isset($rawAnsprechpartner->mobilnummer)) {
                 $ansprechpartner->setMobilnummer($rawAnsprechpartner->mobilnummer);
             }
             if (isset($rawAnsprechpartner->bemerkung)) {
                 $ansprechpartner->setBemerkung($rawAnsprechpartner->bemerkung);
             }
             $traeger->addAnsprechpartner($ansprechpartner);
         }
     }
     // Kategorie
     if (isset($data->kategorie)) {
         /** @var Kategorie $kategorie */
         $kategorie = $this->getKategorieRepository()->find($data->kategorie);
         $traeger->setKategorie($kategorie);
     }
     // Links
     if (isset($data->links)) {
         // TODO: Unelegant
         $traeger->deleteAllLinks();
         foreach ($data->links as $rawLink) {
             $link = new Link($rawLink->titel, $rawLink->url);
             $traeger->addLink($link);
         }
     }
     // Adressen
     if (isset($data->adressen)) {
         // TODO: Unelegant
         $traeger->deleteAllAdressen();
         foreach ($data->adressen as $rawAdresse) {
             $adresse = new Adresse($rawAdresse->strasse, $rawAdresse->ort);
             $adresse->setPlz($rawAdresse->plz);
             $traeger->addAdresse($adresse);
         }
     }
     if (isset($data->titel)) {
         $traeger->setTitel($data->titel);
     }
     if (isset($data->beschreibung)) {
         $traeger->setBeschreibung($data->beschreibung);
     }
     if (isset($data->bilder)) {
         // TODO: Unelegant
         $traeger->deleteAllBilder();
         foreach ($data->bilder as $rawBild) {
             $bild = new Bild();
             $bild->setFileName($rawBild->name);
             $bild->setFileType($rawBild->type);
             $bild->setFileChangetime(new \DateTime($rawBild->lastModifiedDate));
             $bild->setFileSize($rawBild->size);
             $bild->setTmpName($rawBild->tmp_name);
             $traeger->addBild($bild);
         }
     }
     return $traeger;
 }