From 700ee732786754d03865cad2d317b3f4a7f163be Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Fri, 22 Oct 2010 11:46:22 +0200 Subject: [PATCH] Add template plugin that extracts the page number from the request. --- .../pterodactylus/sone/template/GetPagePlugin.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/java/net/pterodactylus/sone/template/GetPagePlugin.java diff --git a/src/main/java/net/pterodactylus/sone/template/GetPagePlugin.java b/src/main/java/net/pterodactylus/sone/template/GetPagePlugin.java new file mode 100644 index 0000000..c57932e --- /dev/null +++ b/src/main/java/net/pterodactylus/sone/template/GetPagePlugin.java @@ -0,0 +1,64 @@ +/* + * Sone - GetPagePlugin.java - Copyright © 2010 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.pterodactylus.sone.template; + +import java.util.Map; + +import net.pterodactylus.sone.web.page.Page.Request; +import net.pterodactylus.util.template.DataProvider; +import net.pterodactylus.util.template.Plugin; + +/** + * Extracts a page number from a {@link Request}’s parameters and stores it in a + * {@link DataProvider}. + * + * @author David ‘Bombe’ Roden + */ +public class GetPagePlugin implements Plugin { + + /** + * {@inheritDoc} + */ + @Override + public void execute(DataProvider dataProvider, Map parameters) { + String requestKey = parameters.get("request"); + String parameter = parameters.get("parameter"); + String pageKey = parameters.get("key"); + + if (requestKey == null) { + requestKey = "request"; + } + if (parameter == null) { + parameter = "page"; + } + if (pageKey == null) { + pageKey = "page"; + } + + Request request = (Request) dataProvider.getData(requestKey); + String pageString = request.getHttpRequest().getParam(parameter); + int page = 0; + try { + page = Integer.parseInt(pageString); + } catch (NumberFormatException nfe1) { + /* ignore. */ + } + dataProvider.setData(pageKey, page); + } + +} -- 2.7.4