/**
  * @param Diagram $diagram
  * @throws \InvalidArgumentException if the diagram isn't valid
  */
 public function save(Diagram $diagram)
 {
     if (!$diagram->isValid()) {
         throw new \InvalidArgumentException('Diagram is not valid');
     }
     $this->database->save($diagram);
 }