1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts;
20
21 import java.util.ArrayList;
22 import java.util.regex.Pattern;
23
24
25
26
27
28
29
30
31 public abstract class AbstractStore implements Store
32 {
33 private PreviewContextProvider previewContextProvider = null;
34
35
36
37
38
39
40 public void setPreviewContextProvider(PreviewContextProvider previewContextProvider)
41 {
42 this.previewContextProvider = previewContextProvider;
43 }
44
45
46
47
48
49
50 public PreviewContext getPreviewContext()
51 {
52 PreviewContext previewContext = null;
53
54 if (this.previewContextProvider != null)
55 {
56 previewContext = this.previewContextProvider.provide();
57 }
58
59 return previewContext;
60 }
61
62
63
64
65 public String[] getDocumentPaths(String path, String filePathPattern)
66 {
67
68
69
70
71
72
73
74
75 ArrayList<String> array = new ArrayList<String>(64);
76
77
78 String regexPattern = filePathPattern.replaceAll("\\*", ".*");
79 if (!regexPattern.startsWith(".*"))
80 {
81 regexPattern = ".*" + regexPattern;
82 }
83
84
85 Pattern pattern = Pattern.compile(regexPattern);
86
87
88 String[] allDocumentPaths = this.getAllDocumentPaths();
89
90
91 for (int i = 0; i < allDocumentPaths.length; i++)
92 {
93 String documentPath = allDocumentPaths[i];
94
95
96
97 documentPath = documentPath.replace("\\", "/");
98 if (!documentPath.startsWith("/"))
99 {
100 documentPath = "/" + documentPath;
101 }
102
103 if (pattern.matcher(documentPath).matches())
104 {
105 if (documentPath.startsWith("/"))
106 {
107 documentPath = documentPath.substring(1);
108 }
109 array.add(documentPath);
110 }
111 }
112
113 return array.toArray(new String[array.size()]);
114 }
115 }