package io.dropwizard.views;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.annotation.Nullable;
import java.nio.charset.Charset;
import java.util.Optional;
A Dropwizard view class.
/**
* A Dropwizard view class.
*/
public abstract class View {
private final String templateName;
@Nullable
private final Charset charset;
Creates a new view.
Params: - templateName – the name of the template resource
/**
* Creates a new view.
*
* @param templateName the name of the template resource
*/
protected View(String templateName) {
this(templateName, null);
}
Creates a new view.
Params: - templateName – the name of the template resource
- charset – the character set for
templateName
/**
* Creates a new view.
*
* @param templateName the name of the template resource
* @param charset the character set for {@code templateName}
*/
protected View(String templateName, @Nullable Charset charset) {
this.templateName = resolveName(templateName);
this.charset = charset;
}
Returns the template name.
Returns: the template name
/**
* Returns the template name.
*
* @return the template name
*/
@JsonIgnore
public String getTemplateName() {
return templateName;
}
Returns the character set of the template.
Returns: the character set of the template
/**
* Returns the character set of the template.
*
* @return the character set of the template
*/
@JsonIgnore
public Optional<Charset> getCharset() {
return Optional.ofNullable(charset);
}
private String resolveName(String templateName) {
if (templateName.startsWith("/")) {
return templateName;
}
final String packagePath = getClass().getPackage().getName().replace('.', '/');
return String.format("/%s/%s", packagePath, templateName);
}
}