Exemplo n.º 1
0
 private function getRuleStrategy(Tracker_Artifact $artifact, Tracker_Workflow_Trigger_TriggerRule $rule)
 {
     if ($rule->getCondition() == Tracker_Workflow_Trigger_RulesBuilderData::CONDITION_AT_LEAST_ONE) {
         return new Tracker_Workflow_Trigger_RulesProcessor_AtLeastOneStrategy();
     } else {
         return new Tracker_Workflow_Trigger_RulesProcessor_AllOfStrategy($artifact, $rule);
     }
 }
Exemplo n.º 2
0
 public function testMessage(Tracker_Workflow_Trigger_TriggerRule $candidate)
 {
     try {
         $this->isConditionEqual($candidate->getCondition());
         $this->isTargetEqual($candidate->getTarget());
         $this->areTriggersEqual($candidate->getTriggers());
     } catch (Exception $ex) {
         return $ex->getMessage();
     }
 }
Exemplo n.º 3
0
 /**
  * Add a new rule in the DB
  *
  * @param Tracker_Workflow_Trigger_TriggerRule $rule
  */
 public function add(Tracker_Workflow_Trigger_TriggerRule $rule)
 {
     try {
         $this->dao->enableExceptionsOnError();
         $this->dao->startTransaction();
         $rule_id = $this->dao->addTarget($rule->getTarget()->getValue()->getId(), $rule->getCondition());
         $rule->setId($rule_id);
         foreach ($rule->getTriggers() as $triggering_field) {
             $this->dao->addTriggeringField($rule_id, $triggering_field->getValue()->getId());
         }
         $this->dao->commit();
     } catch (DataAccessException $exception) {
         throw new Tracker_Workflow_Trigger_Exception_RuleException('Database error: cannot save');
     }
 }