private function artifactMatchRulesValue(Tracker_Artifact $sibling) { $update_parent = true; foreach ($this->rule->getTriggers() as $trigger) { $update_parent &= $this->artifactMatchTriggerValue($sibling, $trigger); } return $update_parent; }
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); } }
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(); } }
/** * Delete a rule in target tracker * * @param Tracker $tracker * @param Tracker_Workflow_Trigger_TriggerRule $rule * @throws Tracker_Workflow_Trigger_Exception_RuleException */ public function delete(Tracker $tracker, Tracker_Workflow_Trigger_TriggerRule $rule) { if ($rule->getTargetTracker() != $tracker) { throw new Tracker_Workflow_Trigger_Exception_RuleException('Cannot delete rules from another tracker'); } try { $this->dao->enableExceptionsOnError(); $this->dao->startTransaction(); $this->dao->deleteTriggeringFieldsByRuleId($rule->getId()); $this->dao->deleteTargetByRuleId($rule->getId()); $this->dao->commit(); } catch (DataAccessException $exception) { throw new Tracker_Workflow_Trigger_Exception_RuleException('Database error: cannot delete rule'); } }