Add duration filter to all templates.
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / core / TemplateServlet.java
index def7ea1..b6107a6 100644 (file)
@@ -38,16 +38,22 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import net.pterodactylus.demoscenemusic.data.Artist;
+import net.pterodactylus.demoscenemusic.data.Properties;
 import net.pterodactylus.demoscenemusic.data.Style;
 import net.pterodactylus.demoscenemusic.data.Track;
+import net.pterodactylus.demoscenemusic.data.TrackDerivative;
 import net.pterodactylus.demoscenemusic.data.User;
 import net.pterodactylus.demoscenemusic.page.ServletRequest;
+import net.pterodactylus.demoscenemusic.template.DurationFilter;
+import net.pterodactylus.demoscenemusic.template.PropertiesAccessor;
+import net.pterodactylus.demoscenemusic.template.TrackDerivativeAccessor;
 import net.pterodactylus.demoscenemusic.template.UserAccessor;
 import net.pterodactylus.util.io.Closer;
 import net.pterodactylus.util.io.StreamCopier;
 import net.pterodactylus.util.template.ClassPathTemplateProvider;
 import net.pterodactylus.util.template.CollectionSortFilter;
 import net.pterodactylus.util.template.HtmlFilter;
+import net.pterodactylus.util.template.MatchFilter;
 import net.pterodactylus.util.template.ReflectionAccessor;
 import net.pterodactylus.util.template.Template;
 import net.pterodactylus.util.template.TemplateContextFactory;
@@ -64,6 +70,7 @@ import net.pterodactylus.util.web.Response;
 public class TemplateServlet extends HttpServlet {
 
        private Core core;
+
        private final TemplateContextFactory templateContextFactory = new TemplateContextFactory();
 
        private final Map<String, Page<ServletRequest>> pages = new HashMap<String, Page<ServletRequest>>();
@@ -82,6 +89,8 @@ public class TemplateServlet extends HttpServlet {
 
                templateContextFactory.addAccessor(Object.class, new ReflectionAccessor());
                templateContextFactory.addAccessor(User.class, new UserAccessor());
+               templateContextFactory.addAccessor(Properties.class, new PropertiesAccessor());
+               templateContextFactory.addAccessor(TrackDerivative.class, new TrackDerivativeAccessor());
 
                templateContextFactory.addFilter("html", new HtmlFilter());
                CollectionSortFilter sortFilter = new CollectionSortFilter();
@@ -110,6 +119,8 @@ public class TemplateServlet extends HttpServlet {
 
                });
                templateContextFactory.addFilter("sort", sortFilter);
+               templateContextFactory.addFilter("matches", new MatchFilter());
+               templateContextFactory.addFilter("time", new DurationFilter());
 
                templateContextFactory.addTemplateObject("core", core);
                templateContextFactory.addTemplateObject("dataManager", core.getDataManager());