package ameba.mvc.template; import ameba.exception.AmebaException; import ameba.exception.AmebaExceptionWithJavaSource; import ameba.util.IOUtils; import com.google.common.collect.Lists; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.List; /** * <p>TemplateException class.</p> * * @author icode * */ public class TemplateException extends AmebaExceptionWithJavaSource { /** * <p>Constructor for TemplateException.</p> * * @param message a {@link java.lang.String} object. */ public TemplateException(String message) { super(message); } /** * <p>Constructor for TemplateException.</p> * * @param message a {@link java.lang.String} object. * @param cause a {@link java.lang.Throwable} object. * @param line a {@link java.lang.Integer} object. */ public TemplateException(String message, Throwable cause, Integer line) { super(message, cause, line); } /** * <p>Constructor for TemplateException.</p> * * @param message a {@link java.lang.String} object. * @param cause a {@link java.lang.Throwable} object. * @param line a {@link java.lang.Integer} object. * @param sourceUrl a {@link java.net.URL} object. * @param source a {@link java.util.List} object. * @param lineIndex a {@link java.lang.Integer} object. */ public TemplateException(String message, Throwable cause, Integer line, Integer lineIndex, URL sourceUrl, List<String> source) { super(message, cause, line, lineIndex, sourceUrl, source); } /** * {@inheritDoc} */ @Override public List<String> getSource() { InputStream in = null; try { if (sourceUrl != null) { in = sourceUrl.openStream(); return IOUtils.readLines(in); } } catch (IOException e) { throw new AmebaException(e); } finally { IOUtils.closeQuietly(in); } return Lists.newArrayList(); } }