From 4c0edeb4fc0ab85bae4bd41dfbf6a0089dfbf467 Mon Sep 17 00:00:00 2001 From: Glavo Date: Fri, 29 Nov 2019 03:30:24 +0800 Subject: update --- src/main/java/org/glavo/javah/ModulePath.java | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/org/glavo/javah/ModulePath.java (limited to 'src/main/java/org/glavo/javah/ModulePath.java') 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 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); + } +} -- cgit v1.2.3