2424import java .util .List ;
2525import java .util .concurrent .CopyOnWriteArrayList ;
2626
27+ import org .apache .commons .io .IOCase ;
2728import org .apache .commons .io .comparator .NameFileComparator ;
2829
2930/**
@@ -169,10 +170,10 @@ public FilesystemObserver(String directoryName, FileFilter fileFilter) {
169170 *
170171 * @param directoryName the name of the directory to observe
171172 * @param fileFilter The file filter or null if none
172- * @param comparator The comparator to use when comparing file names, may be null
173+ * @param caseSensitivity what case sensitivity to use comparing file names, null means system sensitive
173174 */
174- public FilesystemObserver (String directoryName , FileFilter fileFilter , Comparator < File > comparator ) {
175- this (new File (directoryName ), fileFilter , comparator );
175+ public FilesystemObserver (String directoryName , FileFilter fileFilter , IOCase caseSensitivity ) {
176+ this (new File (directoryName ), fileFilter , caseSensitivity );
176177 }
177178
178179 /**
@@ -191,7 +192,7 @@ public FilesystemObserver(File directory) {
191192 * @param fileFilter The file filter or null if none
192193 */
193194 public FilesystemObserver (File directory , FileFilter fileFilter ) {
194- this (directory , fileFilter , (Comparator < File > )null );
195+ this (directory , fileFilter , (IOCase )null );
195196 }
196197
197198 /**
@@ -200,10 +201,10 @@ public FilesystemObserver(File directory, FileFilter fileFilter) {
200201 *
201202 * @param directory the directory to observe
202203 * @param fileFilter The file filter or null if none
203- * @param comparator The comparator to use when comparing file names, may be null
204+ * @param caseSensitivity what case sensitivity to use comparing file names, null means system sensitive
204205 */
205- public FilesystemObserver (File directory , FileFilter fileFilter , Comparator < File > comparator ) {
206- this (new FilesystemEntry (directory ), fileFilter , comparator );
206+ public FilesystemObserver (File directory , FileFilter fileFilter , IOCase caseSensitivity ) {
207+ this (new FilesystemEntry (directory ), fileFilter , caseSensitivity );
207208 }
208209
209210 /**
@@ -212,9 +213,9 @@ public FilesystemObserver(File directory, FileFilter fileFilter, Comparator<File
212213 *
213214 * @param rootEntry the root directory to observe
214215 * @param fileFilter The file filter or null if none
215- * @param comparator The comparator to use when comparing file names, may be null
216+ * @param caseSensitivity what case sensitivity to use comparing file names, null means system sensitive
216217 */
217- protected FilesystemObserver (FilesystemEntry rootEntry , FileFilter fileFilter , Comparator < File > comparator ) {
218+ protected FilesystemObserver (FilesystemEntry rootEntry , FileFilter fileFilter , IOCase caseSensitivity ) {
218219 if (rootEntry == null ) {
219220 throw new IllegalArgumentException ("Root entry is missing" );
220221 }
@@ -223,10 +224,12 @@ protected FilesystemObserver(FilesystemEntry rootEntry, FileFilter fileFilter, C
223224 }
224225 this .rootEntry = rootEntry ;
225226 this .fileFilter = fileFilter ;
226- if (comparator == null ) {
227- this .comparator = NameFileComparator .NAME_COMPARATOR ;
227+ if (caseSensitivity == null || caseSensitivity .equals (IOCase .SYSTEM )) {
228+ this .comparator = NameFileComparator .NAME_SYSTEM_COMPARATOR ;
229+ } else if (caseSensitivity .equals (IOCase .INSENSITIVE )) {
230+ this .comparator = NameFileComparator .NAME_INSENSITIVE_COMPARATOR ;
228231 } else {
229- this .comparator = comparator ;
232+ this .comparator = NameFileComparator . NAME_COMPARATOR ;
230233 }
231234 }
232235
0 commit comments