package hudson.plugins.emailext.plugins;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import hudson.model.Descriptor;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
public abstract class EmailTriggerDescriptor extends Descriptor<EmailTrigger> {
protected List<String> replacesList = new ArrayList<>();
protected List<RecipientProvider> defaultRecipientProviders = new ArrayList<>();
/**
* You can add the name of a trigger that this trigger should override if both this
* and the specified trigger meet the criteria to send an email. If a trigger is
* specified, then its corresponding email will not be sent. This is a means to simplify
* the work a plugin developer needs to do to make sure that only a single email is sent.
*
* @param triggerName is the name of a trigger that should be deactivated if it is specified.
*/
public void addTriggerNameToReplace(String triggerName) {
replacesList.add(triggerName);
}
public List<String> getTriggerReplaceList() {
return replacesList;
}
public void addDefaultRecipientProvider(RecipientProvider provider) {
defaultRecipientProviders.add(provider);
}
public List<RecipientProvider> getDefaultRecipientProviders() {
return defaultRecipientProviders;
}
public abstract EmailTrigger createDefault();
@SuppressFBWarnings("REC_CATCH_EXCEPTION")
protected EmailTrigger _createDefault() {
EmailTrigger trigger;
try {
Constructor ctor = clazz.getConstructor(List.class, String.class, String.class, String.class, String.class, String.class, int.class, String.class);
trigger = (EmailTrigger)ctor.newInstance(defaultRecipientProviders, "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project");
} catch(Exception e) {
trigger = null;
}
return trigger;
}
public boolean isWatchable() { return true; }
@Deprecated
public boolean getDefaultSendToCulprits() {
return false;
}
@Deprecated
public boolean getDefaultSendToDevs() {
return false;
}
@Deprecated
public boolean getDefaultSendToList() {
return false;
}
@Deprecated
public boolean getDefaultSendToRequester() {
return false;
}
}