1 package org.modeshape.web.jcr.rest;
2
3 import javax.jcr.RepositoryException;
4 import javax.jcr.Session;
5 import javax.servlet.http.HttpServletRequest;
6 import org.modeshape.common.text.UrlEncoder;
7 import org.modeshape.web.jcr.RepositoryFactory;
8
9 abstract class AbstractHandler {
10
11 protected static final UrlEncoder URL_ENCODER = new UrlEncoder();
12
13
14 public static final String EMPTY_REPOSITORY_NAME = "<default>";
15
16 public static final String EMPTY_WORKSPACE_NAME = "<default>";
17
18
19
20
21
22
23
24
25
26
27
28 protected Session getSession( HttpServletRequest request,
29 String rawRepositoryName,
30 String rawWorkspaceName ) throws RepositoryException {
31 assert request != null;
32
33 return RepositoryFactory.getSession(request, repositoryNameFor(rawRepositoryName), workspaceNameFor(rawWorkspaceName));
34 }
35
36 private String workspaceNameFor( String rawWorkspaceName ) {
37 String workspaceName = URL_ENCODER.decode(rawWorkspaceName);
38
39 if (EMPTY_WORKSPACE_NAME.equals(workspaceName)) {
40 workspaceName = "";
41 }
42
43 return workspaceName;
44 }
45
46 private String repositoryNameFor( String rawRepositoryName ) {
47 String repositoryName = URL_ENCODER.decode(rawRepositoryName);
48
49 if (EMPTY_REPOSITORY_NAME.equals(repositoryName)) {
50 repositoryName = "";
51 }
52
53 return repositoryName;
54 }
55
56
57 }