X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FRequestChangeFilter.java;h=16cb0629776bfaf5b696e6a366c48dc3435fe46f;hp=d9c453ee3787e003e3b66d50e3d9e84b89934d33;hb=438378deab1514f0f608d975ef65f5b7aea44ccb;hpb=8c8acd50782b5d64b2a5a57fe8f9a4c2385203fd diff --git a/src/main/java/net/pterodactylus/sone/template/RequestChangeFilter.java b/src/main/java/net/pterodactylus/sone/template/RequestChangeFilter.java index d9c453e..16cb062 100644 --- a/src/main/java/net/pterodactylus/sone/template/RequestChangeFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/RequestChangeFilter.java @@ -1,5 +1,5 @@ /* - * Sone - RequestChangeFilter.java - Copyright © 2010 David Roden + * Sone - RequestChangeFilter.java - Copyright © 2010–2020 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,17 +26,14 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import net.pterodactylus.sone.web.page.Page.Request; -import net.pterodactylus.util.template.DataProvider; +import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.template.Filter; +import net.pterodactylus.util.template.TemplateContext; /** - * This filter expects a {@link Request} as input and outputs a {@link URI} that - * is modified by the parameters. The name of the parameter is handed in as - * “name”, the value may either be stored in “value”, or in a template variable - * whose key is stored in “key”. - * - * @author David ‘Bombe’ Roden + * This filter expects a {@link FreenetRequest} as input and outputs a + * {@link URI} that is modified by the parameters. The name of the parameter is + * handed in as “name”, the new value is stored in “value”. */ public class RequestChangeFilter implements Filter { @@ -44,22 +41,12 @@ public class RequestChangeFilter implements Filter { * {@inheritDoc} */ @Override - public Object format(DataProvider dataProvider, Object data, Map parameters) { - Request request = (Request) data; - String name = parameters.get("name"); - String key = parameters.get("key"); - String value = null; - if (key != null) { - value = String.valueOf(dataProvider.getData(key)); - } - if (value == null) { - value = parameters.get("value"); - } - if (value == null) { - return request.getUri(); - } + public Object format(TemplateContext templateContext, Object data, Map parameters) { + FreenetRequest request = (FreenetRequest) data; + String name = String.valueOf(parameters.get("name")); + String value = String.valueOf(parameters.get("value")); - Map values = new HashMap(); + Map values = new HashMap<>(); Collection parameterNames = request.getHttpRequest().getParameterNames(); for (String parameterName : parameterNames) { values.put(parameterName, request.getHttpRequest().getParam(parameterName)); @@ -79,9 +66,7 @@ public class RequestChangeFilter implements Filter { if (questionMark == -1) { questionMark = oldUri.length(); } - URI u = new URI(oldUri.substring(0, questionMark) + query.toString()); - System.out.println("u: " + u); - return u; + return new URI(oldUri.substring(0, questionMark) + query.toString()); } catch (UnsupportedEncodingException uee1) { /* UTF-8 not supported? I don’t think so. */ } catch (URISyntaxException use1) {