static function fromArray(array $a_def)
 {
     // The array must have a name and class. Or else...
     if (!isset($a_def['name'])) {
         throw new exceptions\HttpInternalServerError("Name undefined in dependency definition");
     }
     if (!isset($a_def['class'])) {
         throw new exceptions\HttpInternalServerError("Class name undefined in dependency definition '" . $a_def['name'] . "'");
     }
     $def = new self();
     $def->setName($a_def['name']);
     $def->setClass($a_def['class']);
     if (isset($a_def['dependencies'])) {
         $def->setDependencies($a_def['dependencies']);
     }
     if (isset($a_def['mother'])) {
         $def->setMother($a_def['mother']);
     }
     if (isset($a_def['type'])) {
         $def->setType($a_def['type']);
     }
     return $def;
 }