package org.springblade.mdm.machinefile.filewatch; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.nio.file.Path; import java.nio.file.WatchService; import java.util.Map; import java.util.Set; @Service public class DynamicDirectoryWatcher { private final FileWatcherService fileWatcherService; @Autowired public DynamicDirectoryWatcher(FileWatcherService fileWatcherService) { this.fileWatcherService = fileWatcherService; } public void addDirectory(Path directory, FileWatcherService.FileChangeListener listener) throws Exception { fileWatcherService.watchDirectory(directory, listener); } public void removeDirectory(Path directory) throws Exception { fileWatcherService.stopWatching(directory); } public Map getWatchedDirectories() { return fileWatcherService.getWatchedDirectories(); } public boolean containsPath(Path path) { return fileWatcherService.getWatchedDirectories().containsKey(path); } }