1
2
3
4
5
6 package org.abraracourcix.alipes.monitors.file;
7 import java.io.File;
8 import org.abraracourcix.alipes.common.RegExpFileFilter;
9 import org.abraracourcix.alipes.listeners.Listener;
10 /***
11 * Simplifies the creation of FileStateMonitors if you have wildcards
12 * @author jdt
13 *
14 */
15 public final class FileStateMonitorFactory {
16 /***
17 * Hide Constructor
18 *
19 */
20 private FileStateMonitorFactory() {
21 }
22 /***
23 * Construct and return a FileStateMonitor
24 *
25 * @param root
26 * folder where the files are
27 * @param pattern
28 * regexp pattters to match
29 * @param listener
30 * who's listening
31 * @param polling
32 * polling interval in secs
33 * @return said FileStateMonitor
34 */
35 public static FileStateMonitor getFileStateMonitor(
36 final File root,
37 final String pattern,
38 final Listener listener,
39 final int polling) {
40 final FileStateMonitor monitor =
41 new FileStateMonitor(listener, polling);
42 if (!(root.isDirectory())) {
43 throw new IllegalArgumentException("root must be a directory");
44 }
45 final File[] files =
46 root.listFiles(new RegExpFileFilter(pattern, root));
47 if (files != null) {
48 monitor.addFiles(files);
49 }
50 return monitor;
51 }
52 }
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67