/**
  * Check if data is understood
  *
  * @param string        $data  Data
  * @param CInteropActor $actor Actor
  *
  * @return bool
  */
 function understand($data, CInteropActor $actor = null)
 {
     if (!$this->isWellFormed($data, $actor)) {
         return false;
     }
     $hl7_message = $this->parseMessage($data, false, $actor);
     $hl7_message_evt = "CHL7Event{$hl7_message->event_name}";
     if ($hl7_message->i18n_code) {
         $hl7_message_evt = $hl7_message_evt . "_" . $hl7_message->i18n_code;
     }
     foreach ($this->getFamily() as $_message) {
         $message_class = new $_message();
         $evenements = $message_class->getEvenements();
         if (in_array($hl7_message_evt, $evenements)) {
             if (!$hl7_message->i18n_code) {
                 $this->_family_message_class = $_message;
                 $this->_family_message = CHL7Event::getEventVersion($hl7_message->version, $hl7_message->event_name);
             } else {
                 $this->_family_message_class = $_message;
                 $this->_family_message = CHL7Event::getEventVersion($hl7_message->version, $hl7_message->getI18NEventName());
             }
             return true;
         }
     }
     return false;
 }