< 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);
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;
- }
}
@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);
return Optional.of(u);
} else {
return Optional.empty();
}
}
/**
* Returns {@code true} if the given resource exists, {@code false}
* if not found.
*/
! private boolean containsResource(String module, String name) throws IOException {
! Objects.requireNonNull(name);
if (closed)
throw new IOException("ModuleReader is closed");
ImageReader imageReader = SystemImage.reader();
! return imageReader != null && imageReader.containsResource(module, name);
}
@Override
public Optional<URI> find(String name) throws IOException {
Objects.requireNonNull(name);
! 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;
}
@Override
public Optional<ByteBuffer> read(String name) throws IOException {
ImageReader reader = SystemImage.reader();
private ImageReader.Node findResource(ImageReader reader, String name) throws IOException {
Objects.requireNonNull(name);
if (closed) {
throw new IOException("ModuleReader is closed");
}
! return reader.findResourceNode(module, name);
}
@Override
public Optional<ByteBuffer> read(String name) throws IOException {
ImageReader reader = SystemImage.reader();
< prev index next >