package codeine.mail; import codeine.api.NodeInfo; import codeine.configuration.ConfiguredProjectUtils; import codeine.configuration.NodeMonitor; import codeine.jsons.peer_status.PeerStatus; import codeine.jsons.project.ProjectJson; @SuppressWarnings("unused") public class ShouldSendMailValidator { private NodeMonitor collector; private ConfiguredProjectUtils configuredProjectUtils; private boolean result; private boolean previousResult; private ProjectJson project; private NodeInfo node; private PeerStatus peerStatus; public ShouldSendMailValidator(boolean result, boolean previousResult, NodeMonitor collector, ConfiguredProjectUtils configuredProjectUtils, ProjectJson project, NodeInfo node, PeerStatus peerStatus) { this.result = result; this.previousResult = previousResult; this.collector = collector; this.configuredProjectUtils = configuredProjectUtils; this.project = project; this.node = node; this.peerStatus = peerStatus; } // private boolean shouldMailByPolicies(List<MailPolicy> policies) { // for (MailPolicy p : policies) { // if (p.isActive(previousResult, result)) { // return true; // } // } // return false; // } // // private boolean shouldMailByDependencies() { // throw new UnsupportedOperationException(); //// for (HttpCollector master : configuredProjectUtils.dependsOn(collector, project)) { //// String resultOfMaster = peerStatus.project_name_to_status().get(project.name()).monitor_to_status().get(node.name()).get(master.name()); //// if ("false".equals(resultOfMaster)) { //// return false; //// } //// } //// return true; // } public boolean shouldMail() { throw new UnsupportedOperationException(); // List<MailPolicy> calculatedPolicies = project.mailingPolicy(); // for (CollectorRule rule : collector.rule) // overwrite mailing policies if there are explicit rules // { // if (rule.mailingPolicy != null && rule.shouldApplyForNode(node.name)) { // calculatedPolicies = rule.mailingPolicy; // } // } // return calculatedPolicies.contains(MailPolicy.EachRun) // || (shouldMailByPolicies(calculatedPolicies) && shouldMailByDependencies()); } }