1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package org.xwiki.rest.internal.url

File AbstractParametrizedRestURLGenerator.java

 

Coverage histogram

../../../../../img/srcFileCovDistChart9.png
38% of files have more coverage

Code metrics

2
12
1
1
75
36
3
0.25
12
1
3

Classes

Class Line # Actions
AbstractParametrizedRestURLGenerator 43 12 0% 3 2
0.866666786.7%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * See the NOTICE file distributed with this work for additional
3    * information regarding copyright ownership.
4    *
5    * This is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU Lesser General Public License as
7    * published by the Free Software Foundation; either version 2.1 of
8    * the License, or (at your option) any later version.
9    *
10    * This software is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13    * Lesser General Public License for more details.
14    *
15    * You should have received a copy of the GNU Lesser General Public
16    * License along with this software; if not, write to the Free
17    * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18    * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
19    */
20    package org.xwiki.rest.internal.url;
21   
22    import java.net.MalformedURLException;
23    import java.net.URI;
24    import java.net.URISyntaxException;
25    import java.net.URL;
26   
27    import javax.inject.Inject;
28    import javax.inject.Provider;
29   
30    import org.xwiki.rest.XWikiRestException;
31    import org.xwiki.rest.url.ParametrizedRestURLGenerator;
32   
33    import com.xpn.xwiki.XWiki;
34    import com.xpn.xwiki.XWikiContext;
35   
36    /**
37    * Abstract class for ParametrizedRestURLGenerator.
38    *
39    * @param <T> the type of the resource for which the URL are created for.
40    * @version $Id: a224d6e80f90b3fc6f82a3f5615283c0dc2dacae $
41    * @since 7.2M1
42    */
 
43    public abstract class AbstractParametrizedRestURLGenerator<T> implements ParametrizedRestURLGenerator<T>
44    {
45    @Inject
46    protected Provider<XWikiContext> contextProvider;
47   
 
48  1083 toggle protected URI getBaseURI() throws XWikiRestException
49    {
50  1083 try {
51  1083 XWikiContext context = contextProvider.get();
52  1083 XWiki xwiki = context.getWiki();
53   
54  1083 StringBuilder url = new StringBuilder();
55   
56  1083 url.append(context.getURLFactory().getServerURL(context));
57   
58  1083 url.append('/');
59   
60  1083 String webAppPath = xwiki.getWebAppPath(context);
61  1083 if (!webAppPath.equals("/")) {
62  1083 url.append(webAppPath);
63    }
64   
65  1083 url.append("rest");
66   
67  1083 return new URI(url.toString());
68    } catch (URISyntaxException | MalformedURLException e) {
69  0 throw new XWikiRestException("Failed to generate a proper base URI.", e);
70    }
71    }
72   
73    @Override
74    public abstract URL getURL(T reference) throws XWikiRestException;
75    }