equal
deleted
inserted
replaced
10 import java.io.{File => JFile} |
10 import java.io.{File => JFile} |
11 import java.nio.file.FileSystems |
11 import java.nio.file.FileSystems |
12 import java.nio.file.{WatchKey, WatchEvent, Path => JPath} |
12 import java.nio.file.{WatchKey, WatchEvent, Path => JPath} |
13 import java.nio.file.StandardWatchEventKinds.{ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY} |
13 import java.nio.file.StandardWatchEventKinds.{ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY} |
14 |
14 |
15 import scala.collection.JavaConverters |
15 import scala.jdk.CollectionConverters._ |
16 |
16 |
17 |
17 |
18 class File_Watcher private[File_Watcher] // dummy template |
18 class File_Watcher private[File_Watcher] // dummy template |
19 { |
19 { |
20 def register(dir: JFile): Unit = {} |
20 def register(dir: JFile): Unit = {} |
99 state.change_result(st => |
99 state.change_result(st => |
100 { |
100 { |
101 val (remove, changed) = |
101 val (remove, changed) = |
102 st.dirs.collectFirst({ case (dir, key1) if key == key1 => dir }) match { |
102 st.dirs.collectFirst({ case (dir, key1) if key == key1 => dir }) match { |
103 case Some(dir) => |
103 case Some(dir) => |
104 val events = |
104 val events: Iterable[WatchEvent[JPath]] = |
105 JavaConverters.collectionAsScalaIterable( |
105 key.pollEvents.asInstanceOf[java.util.List[WatchEvent[JPath]]].asScala |
106 key.pollEvents.asInstanceOf[java.util.List[WatchEvent[JPath]]]) |
|
107 val remove = if (key.reset) None else Some(dir) |
106 val remove = if (key.reset) None else Some(dir) |
108 val changed = |
107 val changed = |
109 (Set.empty[JFile] /: events.iterator) { |
108 (Set.empty[JFile] /: events.iterator) { |
110 case (set, event) => set + dir.toPath.resolve(event.context).toFile |
109 case (set, event) => set + dir.toPath.resolve(event.context).toFile |
111 } |
110 } |