/**
  * Get the host object of $this
  *
  * @param CExObject $ex_object The ExObject to get the host object of
  *
  * @return CMbObject|null
  */
 function getHostObject(CExObject $ex_object)
 {
     // Load the list of objects
     /** @var CMbObject[] $objects */
     $objects = array();
     // Links are stored
     if ($ex_object->_id) {
         $links = $ex_object->loadRefsLinks(true);
         // Direct reference
         foreach ($links as $_link) {
             $objects[] = $_link->loadTargetObject();
         }
     } else {
         $objects = array($ex_object->_ref_object, $ex_object->_ref_reference_object_1, $ex_object->_ref_reference_object_2);
     }
     // Direct reference
     foreach ($objects as $_object) {
         if ($this->host_class == $_object->_class) {
             return $this->_ref_host_object = $_object;
         }
     }
     // Indirect references
     foreach ($objects as $_object) {
         $_obj = $_object->getRelatedObjectOfClass($this->host_class);
         if ($_obj && $_obj->_id) {
             return $this->_ref_host_object = $_obj;
         }
     }
     return $this->_ref_host_object = new $this->host_class();
 }
} else {
    $ex_object->group_id = CGroups::loadCurrent()->_id;
}
// Host and reference objects
$ex_object->setObject($object);
if (!$ex_object->_id) {
    if (!$ex_object->reference_id && !$ex_object->reference_class) {
        $reference = $ex_class_event->resolveReferenceObject($object, 1);
        $ex_object->setReferenceObject_1($reference);
    }
    if (!$ex_object->reference2_id && !$ex_object->reference2_class) {
        $reference = $ex_class_event->resolveReferenceObject($object, 2);
        $ex_object->setReferenceObject_2($reference);
    }
} else {
    $ex_object->loadRefsLinks();
}
$ex_object->loadRefGroup();
// loadAllFwdRefs ne marche pas bien (a cause de la clé primaire)
foreach ($ex_object->_specs as $_field => $_spec) {
    if ($_spec instanceof CRefSpec && $_field != $ex_object->_spec->key) {
        $class = $_spec->meta ? $ex_object->{$_spec->meta} : $_spec->class;
        if (!$class) {
            continue;
        }
        /** @var CMbObject $obj */
        $obj = new $class();
        $obj->load($ex_object->{$_field});
        $ex_object->_fwd[$_field] = $obj;
    }
}