public function getViolations() { $conjunctIds = array(); $conjunctRuleMap = array(); foreach ($this->maintains as $ruleName) { $rule = RuleEngine::getRule($ruleName); foreach ($rule['conjunctIds'] as $conjunctId) { $conjunctRuleMap[$conjunctId][] = $ruleName; } $conjunctIds = array_merge($conjunctIds, $rule['conjunctIds']); } $signals = RuleEngine::getSignalsFromDB($conjunctIds); /* * $signal[] = array('conjId' => , 'src' => , 'tgt' => ) * */ foreach ($signals as $signal) { foreach ($conjunctRuleMap[$signal['conjId']] as $ruleName) { Notifications::addViolation(RuleEngine::getRule($ruleName), $signal['src'], $signal['tgt']); } } }
public static function getProcessViolationsFromDB($session) { $conjunctIds = array(); $conjunctRuleMap = array(); foreach ($session->rulesToMaintain as $ruleName) { $rule = RuleEngine::getRule($ruleName); foreach ($rule['conjunctIds'] as $conjunctId) { $conjunctRuleMap[$conjunctId][] = $ruleName; } $conjunctIds = array_merge($conjunctIds, $rule['conjunctIds']); } $signals = RuleEngine::getSignalsFromDB($conjunctIds); foreach ($signals as $signal) { // $signal[] = array('conjId' => , 'src' => , 'tgt' => ) foreach ($conjunctRuleMap[$signal['conjId']] as $ruleName) { Notifications::addViolation(RuleEngine::getRule($ruleName), $signal['src'], $signal['tgt']); } } }