1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.io.monitor;
18
19 import java.io.File;
20 import java.io.Serializable;
21 import java.util.ArrayList;
22 import java.util.Collection;
23
24
25
26
27
28 public class CollectionFileListener implements FileAlterationListener, Serializable {
29
30 private static final long serialVersionUID = 939724715678693963L;
31 private final boolean clearOnStart;
32 private final Collection<File> createdFiles = new ArrayList<>();
33 private final Collection<File> changedFiles = new ArrayList<>();
34 private final Collection<File> deletedFiles = new ArrayList<>();
35 private final Collection<File> createdDirectories = new ArrayList<>();
36 private final Collection<File> changedDirectories = new ArrayList<>();
37 private final Collection<File> deletedDirectories = new ArrayList<>();
38
39
40
41
42
43
44 public CollectionFileListener(final boolean clearOnStart) {
45 this.clearOnStart = clearOnStart;
46 }
47
48
49
50
51 public void clear() {
52 createdFiles.clear();
53 changedFiles.clear();
54 deletedFiles.clear();
55 createdDirectories.clear();
56 changedDirectories.clear();
57 deletedDirectories.clear();
58 }
59
60
61
62
63
64
65 public Collection<File> getChangedDirectories() {
66 return changedDirectories;
67 }
68
69
70
71
72
73
74 public Collection<File> getChangedFiles() {
75 return changedFiles;
76 }
77
78
79
80
81
82
83 public Collection<File> getCreatedDirectories() {
84 return createdDirectories;
85 }
86
87
88
89
90
91
92 public Collection<File> getCreatedFiles() {
93 return createdFiles;
94 }
95
96
97
98
99
100
101 public Collection<File> getDeletedDirectories() {
102 return deletedDirectories;
103 }
104
105
106
107
108
109
110 public Collection<File> getDeletedFiles() {
111 return deletedFiles;
112 }
113
114
115
116
117
118
119 @Override
120 public void onDirectoryChange(final File directory) {
121 changedDirectories.add(directory);
122 }
123
124
125
126
127
128
129 @Override
130 public void onDirectoryCreate(final File directory) {
131 createdDirectories.add(directory);
132 }
133
134
135
136
137
138
139 @Override
140 public void onDirectoryDelete(final File directory) {
141 deletedDirectories.add(directory);
142 }
143
144
145
146
147
148
149 @Override
150 public void onFileChange(final File file) {
151 changedFiles.add(file);
152 }
153
154
155
156
157
158
159 @Override
160 public void onFileCreate(final File file) {
161 createdFiles.add(file);
162 }
163
164
165
166
167
168
169 @Override
170 public void onFileDelete(final File file) {
171 deletedFiles.add(file);
172 }
173
174
175
176
177
178
179 @Override
180 public void onStart(final FileAlterationObserver observer) {
181 if (clearOnStart) {
182 clear();
183 }
184 }
185
186
187
188
189
190
191 @Override
192 public void onStop(final FileAlterationObserver observer) {
193
194 }
195
196 }