X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FDefaultLoaders.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FDefaultLoaders.java;h=e94e65585250e6ac5ac9d4a1d5cc408d4b1b63b2;hp=0000000000000000000000000000000000000000;hb=76ed638264e531a26e35647d13702db865a52321;hpb=cb0161bb413434c393ae09d46001dba66b876875 diff --git a/src/main/java/net/pterodactylus/sone/main/DefaultLoaders.java b/src/main/java/net/pterodactylus/sone/main/DefaultLoaders.java new file mode 100644 index 0000000..e94e655 --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/main/DefaultLoaders.java @@ -0,0 +1,53 @@ +package net.pterodactylus.sone.main; + +import static net.pterodactylus.util.template.TemplateParser.parse; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.UnsupportedEncodingException; + +import net.pterodactylus.sone.web.WebInterface; +import net.pterodactylus.util.io.Closer; +import net.pterodactylus.util.template.ClassPathTemplateProvider; +import net.pterodactylus.util.template.Template; +import net.pterodactylus.util.template.TemplateProvider; +import net.pterodactylus.util.web.Page; +import net.pterodactylus.util.web.Request; +import net.pterodactylus.util.web.StaticPage; + +/** + * Default {@link Loaders} implementation that loads resources from the classpath. + * + * @author David ‘Bombe’ Roden + */ +public class DefaultLoaders implements Loaders { + + @Override + public Template loadTemplate(String path) { + InputStream templateInputStream = null; + Reader reader = null; + try { + templateInputStream = getClass().getResourceAsStream(path); + reader = new InputStreamReader(templateInputStream, "UTF-8"); + return parse(reader); + } catch (UnsupportedEncodingException uee1) { + throw new RuntimeException("UTF-8 not supported."); + } finally { + Closer.close(reader); + Closer.close(templateInputStream); + } + } + + @Override + public Page loadStaticPage(String pathPrefix, String basePath, String mimeType) { + return new StaticPage(pathPrefix, basePath, mimeType) { + }; + } + + @Override + public TemplateProvider getTemplateProvider() { + return new ClassPathTemplateProvider(WebInterface.class, "/templates/"); + } + +}