1. Project Clover database Tue Dec 20 2016 21:24:09 CET
  2. Package com.xpn.xwiki.plugin.webdav.utils

File XWikiDavResourceFactory.java

 

Coverage histogram

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

Code metrics

4
14
4
1
94
52
8
0.57
3.5
4
2

Classes

Class Line # Actions
XWikiDavResourceFactory 43 14 0% 8 4
0.818181881.8%
 

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 com.xpn.xwiki.plugin.webdav.utils;
21   
22    import javax.servlet.ServletContext;
23    import javax.servlet.ServletException;
24   
25    import org.apache.jackrabbit.webdav.DavException;
26    import org.apache.jackrabbit.webdav.DavResource;
27    import org.apache.jackrabbit.webdav.DavResourceFactory;
28    import org.apache.jackrabbit.webdav.DavResourceLocator;
29    import org.apache.jackrabbit.webdav.DavServletRequest;
30    import org.apache.jackrabbit.webdav.DavServletResponse;
31    import org.apache.jackrabbit.webdav.DavSession;
32    import org.apache.jackrabbit.webdav.lock.LockManager;
33    import org.apache.jackrabbit.webdav.lock.SimpleLockManager;
34   
35    import com.xpn.xwiki.plugin.webdav.resources.XWikiDavResource;
36    import com.xpn.xwiki.plugin.webdav.resources.views.RootView;
37   
38    /**
39    * Responsible for forming WebDAV resources corresponding to a given WebDAV request.
40    *
41    * @version $Id: bc25d420b490d6c5903495abba35e8901ef05d8b $
42    */
 
43    public class XWikiDavResourceFactory implements DavResourceFactory
44    {
45    /**
46    * The servlet context.
47    */
48    private ServletContext servletContext;
49   
50    /**
51    * The lock manager.
52    */
53    private final LockManager lockManager;
54   
55    /**
56    * Create a new {@link XWikiDavResourceFactory}.
57    */
 
58  1 toggle public XWikiDavResourceFactory(ServletContext servletContext) throws ServletException
59    {
60  1 this.lockManager = new SimpleLockManager();
61  1 this.servletContext = servletContext;
62    }
63   
 
64  84 toggle @Override
65    public DavResource createResource(DavResourceLocator locator, DavServletRequest request, DavServletResponse response)
66    throws DavException
67    {
68  84 return createResource(locator, request.getDavSession(), request, response);
69    }
70   
 
71  0 toggle @Override
72    public DavResource createResource(DavResourceLocator locator, DavSession session) throws DavException
73    {
74  0 return createResource(locator, session, null, null);
75    }
76   
 
77  84 toggle public XWikiDavResource createResource(DavResourceLocator locator, DavSession session, DavServletRequest request,
78    DavServletResponse response) throws DavException
79    {
80  84 String baseURI = XWikiDavResource.BASE_URI;
81  84 DavResourceLocator rootLocator =
82    locator.getFactory().createResourceLocator(locator.getPrefix(), baseURI, baseURI);
83  84 XWikiDavContext context = new XWikiDavContext(request, response, servletContext, this, session, lockManager);
84  84 XWikiDavResource root = new RootView();
85  84 root.init("webdav", rootLocator, context);
86  84 String workspacePath = locator.getWorkspacePath();
87  84 String[] tokens = locator.getResourcePath().split("/");
88  84 if (workspacePath != null && workspacePath.equals(baseURI) && (tokens.length >= 2)) {
89  84 return (tokens.length == 2) ? root : root.decode(tokens, 2);
90    } else {
91  0 throw new DavException(DavServletResponse.SC_BAD_REQUEST);
92    }
93    }
94    }