package play.exceptions;
import java.util.Arrays;
import java.util.List;
import play.classloading.ApplicationClasses.ApplicationClass;
import play.templates.Template;
/**
* A template is missing (tag, ...)
*/
public class TemplateNotFoundException extends PlayException implements SourceAttachment {
private String path;
private String sourceFile;
private List<String> source;
private Integer line;
public TemplateNotFoundException(String path) {
super("Template not found : " + path);
this.path = path;
}
public TemplateNotFoundException(String path, ApplicationClass applicationClass, Integer line) {
this(path);
this.sourceFile = applicationClass.javaFile.relativePath();
this.source = Arrays.asList(applicationClass.javaSource.split("\n"));
this.line = line;
}
public TemplateNotFoundException(String path, Template template, Integer line) {
this(path);
this.sourceFile = template.name;
this.source = Arrays.asList(template.source.split("\n"));
this.line = line;
}
public String getPath() {
return path;
}
@Override
public String getErrorTitle() {
return String.format("Template not found");
}
@Override
public String getErrorDescription() {
return String.format("The template <strong>%s</strong> does not exist.", path);
}
@Override
public boolean isSourceAvailable() {
return source != null;
}
public String getSourceFile() {
return sourceFile;
}
public List<String> getSource() {
return source;
}
public Integer getLineNumber() {
return line;
}
}