/*******************************************************************************
* Copyright (c) 2014 antoniomariasanchez at gmail.com.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* antoniomaria - initial API and implementation
******************************************************************************/
package net.sf.gazpachoquest.dto;
import net.sf.gazpachoquest.dto.embeddables.MailMessageTemplateLanguageSettingsDTO;
import net.sf.gazpachoquest.dto.support.AbstractIdentifiableDTO;
import net.sf.gazpachoquest.dto.support.IdentifiableLocalizable;
import net.sf.gazpachoquest.types.Language;
import net.sf.gazpachoquest.types.MailMessageTemplateType;
@SuppressWarnings("serial")
public class MailMessageTemplateDTO extends AbstractIdentifiableDTO implements
IdentifiableLocalizable<MailMessageTemplateLanguageSettingsDTO> {
private String fromAddress;
private Language language;
private MailMessageTemplateLanguageSettingsDTO languageSettings;
private String replyTo;
private QuestionnaireDefinitionDTO questionnairDefinition;
private MailMessageTemplateType type;
public MailMessageTemplateDTO() {
super();
}
public String getFromAddress() {
return fromAddress;
}
@Override
public Language getLanguage() {
return language;
}
@Override
public MailMessageTemplateLanguageSettingsDTO getLanguageSettings() {
return languageSettings;
}
public String getReplyTo() {
return replyTo;
}
public QuestionnaireDefinitionDTO getQuestionnairDefinition() {
return questionnairDefinition;
}
public MailMessageTemplateType getType() {
return type;
}
public void setFromAddress(final String from) {
fromAddress = from;
}
@Override
public void setLanguage(final Language language) {
this.language = language;
}
@Override
public void setLanguageSettings(final MailMessageTemplateLanguageSettingsDTO languageSettings) {
this.languageSettings = languageSettings;
}
public void setReplyTo(final String replyTo) {
this.replyTo = replyTo;
}
public void setQuestionnairDefinition(final QuestionnaireDefinitionDTO survey) {
this.questionnairDefinition = survey;
}
public void setType(final MailMessageTemplateType type) {
this.type = type;
}
public static Builder with() {
return new BuilderImpl();
}
public static interface Builder {
public Builder fromAddress(String from);
public Builder replyTo(String replyTo);
public Builder questionnairDefinition(QuestionnaireDefinitionDTO survey);
public Builder type(MailMessageTemplateType type);
MailMessageTemplateDTO build();
Builder id(Integer id);
Builder language(Language language);
Builder languageSettings(MailMessageTemplateLanguageSettingsDTO languageSettings);
MailMessageTemplateLanguageSettingsDTO.Builder mailMessageTemplateLanguageSettingsStart();
}
@Override
public String toString() {
return "MailMessageTemplateDTO [language=" + language + ", fromAddress=" + fromAddress + ", replyTo=" + replyTo
+ ", languageSettings=" + languageSettings + "]";
}
public static class BuilderImpl implements Builder {
private String from;
private Integer id;
private Language language;
private MailMessageTemplateLanguageSettingsDTO languageSettings;
private String replyTo = "";
private QuestionnaireDefinitionDTO questionnairDefinition;
private MailMessageTemplateType type;
@Override
public MailMessageTemplateDTO build() {
MailMessageTemplateDTO mailMessageTemplateDTO = new MailMessageTemplateDTO();
mailMessageTemplateDTO.setId(id);
mailMessageTemplateDTO.language = language;
mailMessageTemplateDTO.fromAddress = from;
mailMessageTemplateDTO.replyTo = replyTo;
mailMessageTemplateDTO.languageSettings = languageSettings;
mailMessageTemplateDTO.type = type;
mailMessageTemplateDTO.questionnairDefinition = questionnairDefinition;
return mailMessageTemplateDTO;
}
@Override
public BuilderImpl fromAddress(final String from) {
this.from = from;
return this;
}
@Override
public Builder id(final Integer id) {
this.id = id;
return this;
}
@Override
public BuilderImpl language(final Language language) {
this.language = language;
return this;
}
@Override
public BuilderImpl languageSettings(final MailMessageTemplateLanguageSettingsDTO languageSettings) {
this.languageSettings = languageSettings;
return this;
}
@Override
public MailMessageTemplateLanguageSettingsDTO.Builder mailMessageTemplateLanguageSettingsStart() {
return MailMessageTemplateLanguageSettingsDTO.mailMessageTemplateLanguageSettingsStart(this);
}
@Override
public BuilderImpl replyTo(final String replyTo) {
this.replyTo = replyTo;
return this;
}
@Override
public Builder questionnairDefinition(final QuestionnaireDefinitionDTO survey) {
this.questionnairDefinition = survey;
return this;
}
@Override
public Builder type(final MailMessageTemplateType type) {
this.type = type;
return this;
}
}
}