1 package org.apache.continuum.webdav;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.continuum.webdav.util.WorkingCopyPathUtil;
23 import org.apache.jackrabbit.util.Text;
24 import org.apache.jackrabbit.webdav.DavLocatorFactory;
25 import org.apache.jackrabbit.webdav.DavResourceLocator;
26
27 public class ContinuumBuildAgentDavLocatorFactory
28 implements DavLocatorFactory
29 {
30 public DavResourceLocator createResourceLocator( String prefix, String href )
31 {
32
33 StringBuilder b = new StringBuilder();
34 if ( prefix != null && prefix.length() > 0 )
35 {
36 b.append( prefix );
37 if ( !prefix.endsWith( "/" ) )
38 {
39 b.append( '/' );
40 }
41 if ( href.startsWith( prefix ) )
42 {
43 href = href.substring( prefix.length() );
44 }
45 }
46
47
48 if ( href == null || "".equals( href ) )
49 {
50 href = "/";
51 }
52
53 final int projectId = WorkingCopyPathUtil.getProjectId( href );
54 return new ContinuumBuildAgentDavResourceLocator( b.toString(), Text.unescape( href ), this, projectId );
55 }
56
57 public DavResourceLocator createResourceLocator( String prefix, String workspacePath, String resourcePath )
58 {
59 return createResourceLocator( prefix, workspacePath, resourcePath, true );
60 }
61
62 public DavResourceLocator createResourceLocator( String prefix, String workspacePath, String path,
63 boolean isResourcePath )
64 {
65 final int projectId = WorkingCopyPathUtil.getProjectId( path );
66 return new ContinuumBuildAgentDavResourceLocator( prefix, path, this, projectId );
67 }
68
69 }