diff options
author | Glavo <zjx001202@126.com> | 2019-11-29 03:30:24 +0800 |
---|---|---|
committer | Glavo <zjx001202@126.com> | 2019-11-29 03:30:24 +0800 |
commit | 4c0edeb4fc0ab85bae4bd41dfbf6a0089dfbf467 (patch) | |
tree | f6441f077f76e3788728eed65f8aeb08540d8324 /src/main/java/org/glavo/javah/ModulePath.java | |
parent | b664cbe6a72f551d12b5868ed4b48927bacf941e (diff) | |
download | gjavah-4c0edeb4fc0ab85bae4bd41dfbf6a0089dfbf467.tar.gz gjavah-4c0edeb4fc0ab85bae4bd41dfbf6a0089dfbf467.tar.bz2 gjavah-4c0edeb4fc0ab85bae4bd41dfbf6a0089dfbf467.zip |
update
Diffstat (limited to 'src/main/java/org/glavo/javah/ModulePath.java')
-rw-r--r-- | src/main/java/org/glavo/javah/ModulePath.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/org/glavo/javah/ModulePath.java b/src/main/java/org/glavo/javah/ModulePath.java new file mode 100644 index 0000000..fdb7499 --- /dev/null +++ b/src/main/java/org/glavo/javah/ModulePath.java @@ -0,0 +1,36 @@ +package org.glavo.javah; + +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.FileSystem; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.*; +import java.util.stream.Collectors; + +public class ModulePath implements SearchPath { + private final Path path; + private final List<Path> paths; + + public ModulePath(Path path) { + Objects.requireNonNull(path); + if (!Files.isDirectory(path)) { + throw new IllegalArgumentException(path + "is not a dir"); + } + + this.path = path; + try { + paths = Files.list(path) + .filter(Files::isRegularFile) + .flatMap(p -> Utils.getPathsFrom(p).stream()) + .collect(Collectors.toList()); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + @Override + public Path searchClass(String className) { + return Utils.searchFrom(paths, className); + } +} |