List of usage examples for org.apache.commons.io.monitor FileEntry setChildren
public void setChildren(FileEntry[] children)
From source file:com.owncloud.android.services.observer.AdvancedFileAlterationObserver.java
/** * Create a new file entry for the specified file. * * @param parent The parent file entry// w w w. j a v a 2 s . com * @param file The file to create an entry for * @return A new file entry */ private FileEntry createFileEntry(final FileEntry parent, final File file) { final FileEntry entry = parent.newChildInstance(file); entry.refresh(file); final FileEntry[] children = doListFiles(file, entry); entry.setChildren(children); return entry; }
From source file:com.owncloud.android.services.observer.AdvancedFileAlterationObserver.java
/** * Compare two file lists for files which have been created, modified or deleted. * * @param parent The parent entry//www . j av a2 s . co m * @param previous The original list of files * @param files The current list of files */ private void checkAndNotify(final FileEntry parent, final FileEntry[] previous, final File[] files, int delay) { if (files != null && files.length > 0) { int c = 0; final FileEntry[] current = files.length > 0 ? new FileEntry[files.length] : EMPTY_ENTRIES; for (final FileEntry entry : previous) { while (c < files.length && comparator.compare(entry.getFile(), files[c]) > 0) { current[c] = createFileEntry(parent, files[c]); doCreate(current[c], delay); c++; } if (c < files.length && comparator.compare(entry.getFile(), files[c]) == 0) { doMatch(entry, files[c], delay); checkAndNotify(entry, entry.getChildren(), listFiles(files[c]), delay); current[c] = entry; c++; } else { checkAndNotify(entry, entry.getChildren(), FileUtils.EMPTY_FILE_ARRAY, delay); doDelete(entry); } } for (; c < files.length; c++) { current[c] = createFileEntry(parent, files[c]); doCreate(current[c], delay); } parent.setChildren(current); } }