From f68dae6e6afab586e6031242960f76d641b48402 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 24 Apr 2011 14:29:01 +0200 Subject: [PATCH] Store request in link parser context. --- .../net/pterodactylus/sone/template/ParserFilter.java | 3 ++- .../sone/text/FreenetLinkParserContext.java | 18 +++++++++++++++++- .../pterodactylus/sone/text/FreenetLinkParserTest.java | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java index 477e972..db945b5 100644 --- a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java @@ -25,6 +25,7 @@ import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.text.FreenetLinkParser; import net.pterodactylus.sone.text.FreenetLinkParserContext; +import net.pterodactylus.sone.web.page.Page.Request; import net.pterodactylus.util.template.Filter; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.template.TemplateContextFactory; @@ -70,7 +71,7 @@ public class ParserFilter implements Filter { if (sone == null) { sone = core.getSone(soneKey, false); } - FreenetLinkParserContext context = new FreenetLinkParserContext(sone); + FreenetLinkParserContext context = new FreenetLinkParserContext((Request) templateContext.get("request"), sone); try { return linkParser.parse(context, new StringReader(text)); } catch (IOException ioe1) { diff --git a/src/main/java/net/pterodactylus/sone/text/FreenetLinkParserContext.java b/src/main/java/net/pterodactylus/sone/text/FreenetLinkParserContext.java index e524d91..0712fc0 100644 --- a/src/main/java/net/pterodactylus/sone/text/FreenetLinkParserContext.java +++ b/src/main/java/net/pterodactylus/sone/text/FreenetLinkParserContext.java @@ -18,6 +18,7 @@ package net.pterodactylus.sone.text; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.web.page.Page.Request; /** * {@link ParserContext} implementation for the {@link FreenetLinkParser}. It @@ -28,20 +29,35 @@ import net.pterodactylus.sone.data.Sone; */ public class FreenetLinkParserContext implements ParserContext { + /** The request being processed. */ + private final Request request; + /** The posting Sone. */ private final Sone postingSone; /** * Creates a new link parser context. * + * @param request + * The request being processed * @param postingSone * The posting Sone */ - public FreenetLinkParserContext(Sone postingSone) { + public FreenetLinkParserContext(Request request, Sone postingSone) { + this.request = request; this.postingSone = postingSone; } /** + * Returns the request that is currently being processed. + * + * @return The request being processed + */ + public Request getRequest() { + return request; + } + + /** * Returns the Sone that provided the text that is being parsed. * * @return The posting Sone diff --git a/src/test/java/net/pterodactylus/sone/text/FreenetLinkParserTest.java b/src/test/java/net/pterodactylus/sone/text/FreenetLinkParserTest.java index 7e05fd5..e667aeb 100644 --- a/src/test/java/net/pterodactylus/sone/text/FreenetLinkParserTest.java +++ b/src/test/java/net/pterodactylus/sone/text/FreenetLinkParserTest.java @@ -41,7 +41,7 @@ public class FreenetLinkParserTest extends TestCase { TemplateContextFactory templateContextFactory = new TemplateContextFactory(); templateContextFactory.addFilter("html", new HtmlFilter()); FreenetLinkParser parser = new FreenetLinkParser(null, templateContextFactory); - FreenetLinkParserContext context = new FreenetLinkParserContext(null); + FreenetLinkParserContext context = new FreenetLinkParserContext(null, null); Part part; part = parser.parse(context, new StringReader("Text.")); -- 2.7.4