package hudson.plugins.emailext.plugins;
import hudson.plugins.emailext.EmailType;
import java.util.ArrayList;
import java.util.List;
public abstract class EmailTriggerDescriptor {
private static final String MAILER_ID_REGEX = "\\s";
protected List<String> replacesList = new ArrayList<String>();
/**
* @return The display name of the trigger type.
*/
public abstract String getTriggerName();
/**
* Get a name that can be used to determine which properties in the jelly script
* apply to this trigger.
* @return the jelly name of the trigger type
*/
public String getMailerId() {
return getTriggerName().replaceAll(MAILER_ID_REGEX, "-");
}
/**
* 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.
* @see #getTriggerName()
*/
public void addTriggerNameToReplace(String triggerName) {
replacesList.add(triggerName);
}
public List<String> getTriggerReplaceList() {
return replacesList;
}
protected abstract EmailTrigger newInstance();
public EmailTrigger getNewInstance(EmailType type) {
EmailTrigger trigger = newInstance();
trigger.setEmail(type);
return trigger;
}
public abstract String getHelpText();
}