public function setTriggerId($triggerId)
 {
     parent::setTriggerId($triggerId);
     $trigger = new CRM_Civirules_BAO_Trigger();
     $trigger->id = $this->triggerId;
     if (!$trigger->find(true)) {
         throw new Exception('Civirules: could not find trigger with ID: ' . $this->triggerId);
     }
     $this->objectName = $trigger->object_name;
     $this->op = $trigger->op;
 }
 /**
  * @param $fields
  */
 static function validateConditionEntities($fields)
 {
     $conditionClass = CRM_Civirules_BAO_Condition::getConditionObjectById($fields['rule_condition_select'], false);
     if (!$conditionClass) {
         $errors['rule_condition_select'] = ts('Not a valid condition, condition class is missing');
         return $errors;
     }
     $requiredEntities = $conditionClass->requiredEntities();
     $rule = new CRM_Civirules_BAO_Rule();
     $rule->id = $fields['rule_id'];
     $rule->find(true);
     $trigger = new CRM_Civirules_BAO_Trigger();
     $trigger->id = $rule->trigger_id;
     $trigger->find(true);
     $triggerObject = CRM_Civirules_BAO_Trigger::getPostTriggerObjectByClassName($trigger->class_name, true);
     $triggerObject->setTriggerId($trigger->id);
     $availableEntities = array();
     foreach ($triggerObject->getProvidedEntities() as $entityDef) {
         $availableEntities[] = strtolower($entityDef->entity);
     }
     foreach ($requiredEntities as $entity) {
         if (!in_array(strtolower($entity), $availableEntities)) {
             $errors['rule_condition_select'] = ts('This condition is not available with trigger %1', array(1 => $trigger->label));
             return $errors;
         }
     }
     return true;
 }
 /**
  * Function to retrieve the label of an eva triggerent with triggerId
  * 
  * @param int $triggerId
  * @return string $trigger->label
  * @access public
  * @static
  */
 public static function getTriggerLabelWithId($triggerId)
 {
     if (empty($triggerId)) {
         return '';
     }
     $trigger = new CRM_Civirules_BAO_Trigger();
     $trigger->id = $triggerId;
     $trigger->find(true);
     return $trigger->label;
 }