package rx.fileutils;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.util.Arrays;
import java.util.stream.Collectors;
/**
* Created by rroeser on 7/17/15.
*/
public enum FileSystemEventKind {
OVERFLOW,
ENTRY_CREATE,
ENTRY_DELETE,
ENTRY_MODIFY;
static WatchEvent.Kind<?> toWatchEventKind(FileSystemEventKind fileSystemEventKind) {
WatchEvent.Kind kind = null;
switch (fileSystemEventKind) {
case OVERFLOW:
kind = StandardWatchEventKinds.OVERFLOW;
break;
case ENTRY_CREATE:
kind = StandardWatchEventKinds.ENTRY_CREATE;
break;
case ENTRY_DELETE:
kind = StandardWatchEventKinds.ENTRY_DELETE;
break;
case ENTRY_MODIFY:
kind = StandardWatchEventKinds.ENTRY_MODIFY;
break;
}
return kind;
}
static WatchEvent.Kind<?>[] toWatchEventKinds(FileSystemEventKind... fileSystemEventKinds) {
return Arrays
.asList(fileSystemEventKinds)
.stream()
.map(FileSystemEventKind::toWatchEventKind)
.collect(Collectors.toList())
.toArray(new WatchEvent.Kind<?>[fileSystemEventKinds.length]);
}
static FileSystemEventKind toFileSystemEventKind(WatchEvent.Kind<?> watchEventKind) {
FileSystemEventKind kind = null;
if (watchEventKind == StandardWatchEventKinds.OVERFLOW) {
kind = OVERFLOW;
} else if (watchEventKind == StandardWatchEventKinds.ENTRY_CREATE) {
kind = ENTRY_CREATE;
} else if (watchEventKind == StandardWatchEventKinds.ENTRY_DELETE) {
kind = ENTRY_DELETE;
} else if (watchEventKind == StandardWatchEventKinds.ENTRY_MODIFY) {
kind = ENTRY_MODIFY;
}
return kind;
}
}