package hudson.plugins.emailext.plugins.trigger;
import hudson.model.AbstractBuild;
import hudson.model.Result;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
public class FixedTrigger extends EmailTrigger {
public static final String TRIGGER_NAME = "Fixed";
@Override
public boolean trigger(AbstractBuild<?,?> build) {
Result buildResult = build.getResult();
if (buildResult == Result.SUCCESS) {
AbstractBuild<?,?> prevBuild = build.getPreviousBuild();
if (prevBuild != null && (prevBuild.getResult() == Result.UNSTABLE || prevBuild.getResult() == Result.FAILURE)) {
return true;
}
}
return false;
}
@Override
public EmailTriggerDescriptor getDescriptor() {
return DESCRIPTOR;
}
public static DescriptorImpl DESCRIPTOR = new DescriptorImpl();
public static final class DescriptorImpl extends EmailTriggerDescriptor {
public DescriptorImpl() {
addTriggerNameToReplace(SuccessTrigger.TRIGGER_NAME);
}
@Override
public String getTriggerName() {
return TRIGGER_NAME;
}
@Override
public EmailTrigger newInstance() {
return new FixedTrigger();
}
@Override
public String getHelpText() {
return "An email will be sent when the build status changes from \"Failure\" " +
"or \"Unstable\" to \"Successful\".";
}
}
@Override
public boolean getDefaultSendToDevs() {
return true;
}
@Override
public boolean getDefaultSendToList() {
return true;
}
}