< prev index next > src/java.base/share/classes/jdk/internal/module/SystemModuleFinders.java
Print this page
/**
* Returns {@code true} if the given resource exists, {@code false}
* if not found.
*/
- private boolean containsResource(String resourcePath) throws IOException {
- Objects.requireNonNull(resourcePath);
+ private boolean containsResource(String module, String name) throws IOException {
+ Objects.requireNonNull(name);
if (closed)
throw new IOException("ModuleReader is closed");
ImageReader imageReader = SystemImage.reader();
- if (imageReader != null) {
- ImageReader.Node node = imageReader.findNode("/modules" + resourcePath);
- return node != null && node.isResource();
- } else {
- // not an images build
- return false;
- }
+ return imageReader != null && imageReader.containsResource(module, name);
}
@Override
public Optional<URI> find(String name) throws IOException {
Objects.requireNonNull(name);
- String resourcePath = "/" + module + "/" + name;
- if (containsResource(resourcePath)) {
- URI u = JNUA.create("jrt", resourcePath);
+ if (containsResource(module, name)) {
+ URI u = JNUA.create("jrt", "/" + module + "/" + name);
return Optional.of(u);
} else {
return Optional.empty();
}
}
private ImageReader.Node findResource(ImageReader reader, String name) throws IOException {
Objects.requireNonNull(name);
if (closed) {
throw new IOException("ModuleReader is closed");
}
- String nodeName = "/modules/" + module + "/" + name;
- ImageReader.Node node = reader.findNode(nodeName);
- return (node != null && node.isResource()) ? node : null;
+ return reader.findResourceNode(module, name);
}
@Override
public Optional<ByteBuffer> read(String name) throws IOException {
ImageReader reader = SystemImage.reader();
< prev index next >