
com.mastfrog.email.server.EnumHtmlEmailTemplateProvider Maven / Gradle / Ivy
The newest version!
package com.mastfrog.email.server;
import com.mastfrog.util.preconditions.Checks;
import freemarker.template.Template;
/**
* Registered in a Guice Multibinder for EnumHtmlEmailTemplateProvider<?>, these can look up an email
* template based on an enum constant as a lookup key
*
* @author Tim Boudreau
* @param An ad-hoc enum type
*/
public abstract class EnumHtmlEmailTemplateProvider> implements HtmlTemplateProvider {
final Class type;
protected EnumHtmlEmailTemplateProvider(Class type) {
Checks.notNull("type", type);
this.type = type;
}
@SuppressWarnings("unchecked")
> EnumHtmlEmailTemplateProvider match(T enumValue) {
if (enumValue != null && enumValue.getClass() == type) {
return (EnumHtmlEmailTemplateProvider) this;
}
return null;
}
@Override
public > Template template(T template) {
if (template != null) {
return findTemplate(type.cast(template));
}
return null;
}
protected abstract Template findTemplate(T template);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy