1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.github.sworisbreathing.sfmf4j.commonsio;
18
19 import com.github.sworisbreathing.sfmf4j.api.FileMonitorService;
20 import com.github.sworisbreathing.sfmf4j.api.FileMonitorServiceFactory;
21 import java.util.concurrent.TimeUnit;
22 import org.apache.commons.io.monitor.FileAlterationMonitor;
23
24
25
26
27
28 public class CommonsIOFileMonitorServiceFactory implements FileMonitorServiceFactory {
29
30
31
32
33 private volatile long pollingInterval = 1;
34
35
36
37
38 private volatile TimeUnit pollingTimeUnit = TimeUnit.MINUTES;
39
40
41
42
43
44 public long getPollingInterval() {
45 return pollingInterval;
46 }
47
48
49
50
51
52 public void setPollingInterval(long pollingInterval) {
53 this.pollingInterval = pollingInterval;
54 }
55
56
57
58
59
60 public TimeUnit getPollingTimeUnit() {
61 return pollingTimeUnit;
62 }
63
64
65
66
67
68 public void setPollingTimeUnit(TimeUnit pollingTimeUnit) {
69 this.pollingTimeUnit = pollingTimeUnit;
70 }
71
72
73
74
75
76
77
78
79 @Override
80 public FileMonitorService createFileMonitorService() {
81 long pollingIntervalMillis = getPollingTimeUnit().toMillis(getPollingInterval());
82 FileAlterationMonitor fileAlterationMonitor = new FileAlterationMonitor(pollingIntervalMillis);
83 return new CommonsIOFileMonitorServiceImpl(fileAlterationMonitor);
84 }
85 }