source: AnnotationManagerN4J/src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/UrlPrefixFilter.java @ 96:8fefa4651d00

Last change on this file since 96:8fefa4651d00 was 96:8fefa4651d00, checked in by casties, 9 years ago

changed source indentation.

File size: 1.9 KB
Line 
1package de.mpiwg.itgroup.annotations.restlet.utils;
2
3/*
4 * #%L
5 * AnnotationManager
6 * %%
7 * Copyright (C) 2012 - 2015 MPIWG Berlin
8 * %%
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Lesser Public License for more details.
18 *
19 * You should have received a copy of the GNU General Lesser Public
20 * License along with this program.  If not, see
21 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22 * #L%
23 */
24
25import org.restlet.Request;
26import org.restlet.Response;
27import org.restlet.data.Reference;
28import org.restlet.routing.Filter;
29
30/**
31 * Filter that adds a prefix path to all internally generated URLs.
32 *
33 * @author casties
34 *
35 */
36public class UrlPrefixFilter extends Filter {
37
38    private String prefix = null;
39
40    /**
41     * Set the prefix to add.
42     *
43     * @param prefix
44     */
45    public void setPrefix(String prefix) {
46        if (!prefix.startsWith("/")) {
47            prefix = "/" + prefix;
48        }
49        this.prefix = prefix;
50    }
51
52    @Override
53    protected int beforeHandle(Request request, Response response) {
54        // get ref to change
55        Reference ref = request.getResourceRef();
56        String path = ref.getPath();
57        // add prefix to path
58        ref.setPath(prefix + path);
59        // change baseRef as well
60        Reference baseRef = ref.getBaseRef();
61        String basePath = baseRef.getPath();
62        // add prefix to base ref path
63        baseRef.setPath(prefix + basePath);
64        return super.beforeHandle(request, response);
65    }
66
67}
Note: See TracBrowser for help on using the repository browser.