Class ModuleReaderProxy
- java.lang.Object
-
- io.github.lukehutch.fastclasspathscanner.ModuleReaderProxy
-
- All Implemented Interfaces:
AutoCloseable
public class ModuleReaderProxy extends Object implements AutoCloseable
A ModuleReader proxy, written using reflection to preserve backwards compatibility with JDK 7 and 8.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Calls ModuleReader#close().List<String>
list()
Get the list of resources accessible to a ModuleReader.InputStream
open(String name)
Use the proxied ModuleReader to open the named resource as an InputStream.ByteBuffer
read(String name)
Use the proxied ModuleReader to open the named resource as a ByteBuffer.void
release(ByteBuffer byteBuffer)
Release a ByteBuffer allocated by calling read(name).
-
-
-
Method Detail
-
close
public void close()
Calls ModuleReader#close().- Specified by:
close
in interfaceAutoCloseable
-
list
public List<String> list() throws IOException, SecurityException
Get the list of resources accessible to a ModuleReader. From the documentation for ModuleReader#list(): "Whether the stream of elements includes names corresponding to directories in the module is module reader specific. In lazy implementations then an IOException may be thrown when using the stream to list the module contents. If this occurs then the IOException will be wrapped in an java.io.UncheckedIOException and thrown from the method that caused the access to be attempted. SecurityException may also be thrown when using the stream to list the module contents and access is denied by the security manager."- Throws:
IOException
SecurityException
-
open
public InputStream open(String name) throws IOException, SecurityException
Use the proxied ModuleReader to open the named resource as an InputStream.- Throws:
IOException
SecurityException
-
read
public ByteBuffer read(String name) throws IOException, SecurityException, OutOfMemoryError
Use the proxied ModuleReader to open the named resource as a ByteBuffer. Call release(byteBuffer) when you have finished with the ByteBuffer.- Throws:
OutOfMemoryError
- if the resource is larger than Integer.MAX_VALUE, the maximum capacity of a byte buffer.IOException
SecurityException
-
release
public void release(ByteBuffer byteBuffer)
Release a ByteBuffer allocated by calling read(name).
-
-