blob: 3897e8a333bc5a56f99eb1a86dcb4de7c6f1a33e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package moe.yuuta.umlgen
import java.io.IOException
import java.nio.charset.StandardCharsets
import java.nio.file.*
import java.nio.file.attribute.BasicFileAttributes
import java.util.function.BiFunction
class Visitor(private val consumer: BiFunction<Path, String, Void?>) : FileVisitor<Path> {
@Throws(IOException::class)
override fun preVisitDirectory(path: Path, basicFileAttributes: BasicFileAttributes): FileVisitResult {
return FileVisitResult.CONTINUE
}
@Throws(IOException::class)
override fun visitFileFailed(path: Path, e: IOException?): FileVisitResult {
System.err.printf("Open %s: %s\n", path.toFile(), e?.message)
return FileVisitResult.CONTINUE
}
@Throws(IOException::class)
override fun postVisitDirectory(path: Path, e: IOException?): FileVisitResult {
return FileVisitResult.CONTINUE
}
@Throws(IOException::class)
override fun visitFile(path: Path, basicFileAttributes: BasicFileAttributes?): FileVisitResult {
if (!path.fileName.toString().endsWith(".java")) {
return FileVisitResult.CONTINUE
}
val fd = Files.newInputStream(path, StandardOpenOption.READ)
val buf = String(fd.readAllBytes(), StandardCharsets.UTF_8)
fd.close()
consumer.apply(path, buf)
return FileVisitResult.CONTINUE
}
}
|