Package hudson.plugins.emailext

Source Code of hudson.plugins.emailext.EmailType

package hudson.plugins.emailext;

import hudson.plugins.emailext.plugins.RecipientProvider;
import hudson.plugins.emailext.plugins.recipients.CulpritsRecipientProvider;
import hudson.plugins.emailext.plugins.recipients.DevelopersRecipientProvider;
import hudson.plugins.emailext.plugins.recipients.ListRecipientProvider;
import hudson.plugins.emailext.plugins.recipients.RequesterRecipientProvider;
import java.util.ArrayList;
import java.util.List;

/**
* This class defines what the contents of an email will be if it gets sent.
*
* @author kyle.sweeney@valtech.com
*/
public class EmailType {

    /**
     * A recipient list for only this email type.
     */
    private String recipientList;

    /**
     * The subject of the email
     */
    private String subject;

    /**
     * The body of the email
     */
    private String body;

    /**
     * The list of configured recipient providers
     */
    private List<RecipientProvider> recipientProviders;

    /**
     * Pattern for attachments to be sent as part of this email type.
     */
    private String attachmentsPattern;

    /**
     * True to attach the build log to the email
     */
    private boolean attachBuildLog;

    /**
     * True to compress the build log before attaching it to the email
     */
    private boolean compressBuildLog;

    /**
     * List of email addresses to put into the Reply-To header
     */
    private String replyTo;

    /**
     * Content type to send the email as (HTML or Plaintext)
     */
    private String contentType;

    /**
     * Specifies whether or not we should send this email to the developer/s who
     * made changes.
     */
    private transient boolean sendToDevelopers;

    /**
     * Specifies whether or not we should send this email to the requester who
     * triggered build.
     */
    private transient boolean sendToRequester;

    /**
     * Specifies whether or not we should send this email to all developers
     * since the last success.
     */
    private transient boolean includeCulprits;

    /**
     * Specifies whether or not we should send this email to the recipient list
     */
    private transient boolean sendToRecipientList;

    public EmailType() {
        subject = "";
        body = "";
        recipientList = "";
        attachmentsPattern = "";
        attachBuildLog = false;
        compressBuildLog = false;
        replyTo = "";
        contentType = "project";
        recipientProviders = new ArrayList<RecipientProvider>();
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public boolean getHasRecipients() {
        return (recipientProviders != null && !recipientProviders.isEmpty())
                || (recipientList != null && recipientList.trim().length() != 0);
    }

    public String getRecipientList() {
        return recipientList != null ? recipientList.trim() : recipientList;
    }

    public List<RecipientProvider> getRecipientProviders() {
        return recipientProviders;
    }

    public void addRecipientProvider(RecipientProvider provider) {
        if (recipientProviders == null) {
            recipientProviders = new ArrayList<RecipientProvider>();
        }
        recipientProviders.add(provider);
    }

    public void addRecipientProviders(List<RecipientProvider> providers) {
        if (recipientProviders == null) {
            recipientProviders = new ArrayList<RecipientProvider>();
        }
        if(providers != null) {
            recipientProviders.addAll(providers);
        }
    }

    public void setRecipientList(String recipientList) {
        this.recipientList = recipientList.trim();
    }

    public String getReplyTo() {
        return replyTo != null ? replyTo.trim() : replyTo;
    }

    public void setReplyTo(String replyTo) {
        this.replyTo = replyTo.trim();
    }

    public String getAttachmentsPattern() {
        return attachmentsPattern != null ? attachmentsPattern.trim() : attachmentsPattern;
    }

    public void setAttachmentsPattern(String attachmentsPattern) {
        this.attachmentsPattern = attachmentsPattern;
    }

    public boolean getAttachBuildLog() {
        return attachBuildLog;
    }

    public boolean getCompressBuildLog() {
        return compressBuildLog;
    }

    public void setAttachBuildLog(boolean attachBuildLog) {
        this.attachBuildLog = attachBuildLog;
    }

    public void setCompressBuildLog(boolean compressBuildLog) {
        this.compressBuildLog = compressBuildLog;
    }

    public String getContentType() {
        if (contentType == null) {
            contentType = "project";
        }
        return contentType;
    }

    public void setContentType(String contentType) {
        this.contentType = contentType;
    }

    public Object readResolve() {
        if (this.recipientList != null) {
            // get rid of PROJECT_DEFAULT_RECIPIENTS stuff
            this.recipientList = this.recipientList.replaceAll("\\$\\{?PROJECT_DEFAULT_RECIPIENTS\\}?", "");
        }

        // upgrade the various fields to the new RecipientProvider method
        if (this.sendToDevelopers) {
            if (recipientProviders == null) {
                recipientProviders = new ArrayList<RecipientProvider>();
            }

            recipientProviders.add(new DevelopersRecipientProvider());
        }

        if (this.sendToRequester) {
            if (recipientProviders == null) {
                recipientProviders = new ArrayList<RecipientProvider>();
            }

            recipientProviders.add(new RequesterRecipientProvider());
        }

        if (this.includeCulprits) {
            if (recipientProviders == null) {
                recipientProviders = new ArrayList<RecipientProvider>();
            }

            recipientProviders.add(new CulpritsRecipientProvider());
        }

        if (this.sendToRecipientList) {
            if (recipientProviders == null) {
                recipientProviders = new ArrayList<RecipientProvider>();
            }

            recipientProviders.add(new ListRecipientProvider());
        }

        return this;
    }
   
    @Deprecated
    public boolean getSendToCulprits() {
        for(RecipientProvider p : recipientProviders) {
            if(p instanceof CulpritsRecipientProvider) {
                return true;
            }
        }
        return false;
    }
   
    @Deprecated
    public void setSendToCulprits(boolean sendToCulprits) {
        if(sendToCulprits && !getSendToCulprits()) {
            // need to add
            recipientProviders.add(new CulpritsRecipientProvider());
        } else if(!sendToCulprits && getSendToCulprits()) {
            int index;
            for(index = 0; index < recipientProviders.size(); index++) {
                if(recipientProviders.get(index) instanceof CulpritsRecipientProvider) {
                    break;
                }
            }
           
            if(index >=0 && index < recipientProviders.size()) {
                recipientProviders.remove(index);
            }
        }
    }
   
    @Deprecated
    public boolean getSendToDevelopers() {
        for(RecipientProvider p : recipientProviders) {
            if(p instanceof DevelopersRecipientProvider) {
                return true;
            }
        }
        return false;
    }
   
    @Deprecated
    public void setSendToDevelopers(boolean sendToDevelopers) {
        if(sendToDevelopers && !getSendToDevelopers()) {
            // need to add
            recipientProviders.add(new DevelopersRecipientProvider());
        } else if(!sendToDevelopers && getSendToDevelopers()) {
            int index;
            for(index = 0; index < recipientProviders.size(); index++) {
                if(recipientProviders.get(index) instanceof DevelopersRecipientProvider) {
                    break;
                }
            }
           
            if(index >= 0 && index < recipientProviders.size()) {
                recipientProviders.remove(index);
            }
        }
    }
   
    @Deprecated
    public boolean getSendToRequester() {
        for(RecipientProvider p : recipientProviders) {
            if(p instanceof RequesterRecipientProvider) {
                return true;
            }
        }
        return false;
    }
   
    @Deprecated
    public void setSendToRequester(boolean sendToRequester) {
        if(sendToRequester && !getSendToRequester()) {
            // need to add
            recipientProviders.add(new RequesterRecipientProvider());
        } else if(!sendToRequester && getSendToRequester()) {
            int index;
            for(index = 0; index < recipientProviders.size(); index++) {
                if(recipientProviders.get(index) instanceof RequesterRecipientProvider) {
                    break;
                }
            }
           
            if(index >= 0 && index < recipientProviders.size()) {
                recipientProviders.remove(index);
            }
        }
    }
   
    @Deprecated
    public boolean getSendToRecipientList() {
        for(RecipientProvider p : recipientProviders) {
            if(p instanceof ListRecipientProvider) {
                return true;
            }
        }
        return false;
    }
   
    @Deprecated
    public void setSendToRecipientList(boolean sendToRecipientList) {
        if(sendToRecipientList && !getSendToRecipientList()) {
            // need to add
            recipientProviders.add(new RequesterRecipientProvider());
        } else if(!sendToRecipientList && getSendToRecipientList()) {
            int index;
            for(index = 0; index < recipientProviders.size(); index++) {
                if(recipientProviders.get(index) instanceof ListRecipientProvider) {
                    break;
                }
            }
           
            if(index >= 0 && index < recipientProviders.size()) {
                recipientProviders.remove(index);
            }
        }
    }
}
TOP

Related Classes of hudson.plugins.emailext.EmailType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.