Package net.bytebuddy.utility
Class JavaModule.Dispatcher.Enabled
- java.lang.Object
-
- net.bytebuddy.utility.JavaModule.Dispatcher.Enabled
-
- All Implemented Interfaces:
JavaModule.Dispatcher
- Direct Known Subclasses:
JavaModule.Dispatcher.Enabled.WithInstrumentationSupport
,JavaModule.Dispatcher.Enabled.WithoutInstrumentationSupport
- Enclosing interface:
- JavaModule.Dispatcher
@Enhance public abstract static class JavaModule.Dispatcher.Enabled extends java.lang.Object implements JavaModule.Dispatcher
A dispatcher for a VM that does support thejava.lang.Module
API.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
JavaModule.Dispatcher.Enabled.WithInstrumentationSupport
A dispatcher for a VM that does support thejava.lang.Module
API and that supportsInstrumentation
.protected static class
JavaModule.Dispatcher.Enabled.WithoutInstrumentationSupport
A dispatcher for a VM that does support thejava.lang.Module
API and that does not supportInstrumentation
.-
Nested classes/interfaces inherited from interface net.bytebuddy.utility.JavaModule.Dispatcher
JavaModule.Dispatcher.CreationAction, JavaModule.Dispatcher.Disabled, JavaModule.Dispatcher.Enabled
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.reflect.Method
canRead
Thejava.lang.Module#canRead(Module)
method.private java.lang.reflect.Method
getClassLoader
Thejava.lang.Module#getClassLoader()
method.private java.lang.reflect.Method
getModule
Thejava.lang.Class#getModule()
method.private java.lang.reflect.Method
getName
Thejava.lang.Module#getName()
method.private java.lang.reflect.Method
getResourceAsStream
Thejava.lang.Module#getResourceAsStream(String)
method.private java.lang.reflect.Method
isExported
Thejava.lang.Module#isExported(String,Module)
method.private java.lang.reflect.Method
isNamed
Thejava.lang.Module#isNamed()
method.private java.lang.reflect.Method
isOpened
Thejava.lang.Module#isOpened(String,Module)
method.private static java.lang.Object[]
NO_ARGUMENTS
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Enabled(java.lang.reflect.Method getModule, java.lang.reflect.Method getClassLoader, java.lang.reflect.Method isNamed, java.lang.reflect.Method getName, java.lang.reflect.Method getResourceAsStream, java.lang.reflect.Method isExported, java.lang.reflect.Method isOpened, java.lang.reflect.Method canRead)
Creates an enabled dispatcher.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canRead(java.lang.Object source, java.lang.Object target)
Checks if the source module can read the target module.java.lang.ClassLoader
getClassLoader(java.lang.Object module)
Returns the module's class loader.java.lang.String
getName(java.lang.Object module)
Returns the module's name.java.io.InputStream
getResourceAsStream(java.lang.Object module, java.lang.String name)
Returns a resource stream for this module for a resource of the given name ornull
if such a resource does not exist.boolean
isAlive()
Checks if this dispatcher is alive, i.e.boolean
isExported(java.lang.Object source, java.lang.Object target, java.lang.String aPackage)
Returnstrue
if the source module exports the supplied package to the target module.boolean
isNamed(java.lang.Object module)
Returnstrue
if the supplied module is named.boolean
isOpened(java.lang.Object source, java.lang.Object target, java.lang.String aPackage)
Returnstrue
if the source module opens the supplied package to the target module.JavaModule
moduleOf(java.lang.Class<?> type)
Extracts the JavaModule
for the provided class or returnsnull
if the current VM does not support modules.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.bytebuddy.utility.JavaModule.Dispatcher
modify
-
-
-
-
Field Detail
-
NO_ARGUMENTS
private static final java.lang.Object[] NO_ARGUMENTS
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.
-
getModule
private final java.lang.reflect.Method getModule
Thejava.lang.Class#getModule()
method.
-
getClassLoader
private final java.lang.reflect.Method getClassLoader
Thejava.lang.Module#getClassLoader()
method.
-
isNamed
private final java.lang.reflect.Method isNamed
Thejava.lang.Module#isNamed()
method.
-
getName
private final java.lang.reflect.Method getName
Thejava.lang.Module#getName()
method.
-
getResourceAsStream
private final java.lang.reflect.Method getResourceAsStream
Thejava.lang.Module#getResourceAsStream(String)
method.
-
isExported
private final java.lang.reflect.Method isExported
Thejava.lang.Module#isExported(String,Module)
method.
-
isOpened
private final java.lang.reflect.Method isOpened
Thejava.lang.Module#isOpened(String,Module)
method.
-
canRead
private final java.lang.reflect.Method canRead
Thejava.lang.Module#canRead(Module)
method.
-
-
Constructor Detail
-
Enabled
protected Enabled(java.lang.reflect.Method getModule, java.lang.reflect.Method getClassLoader, java.lang.reflect.Method isNamed, java.lang.reflect.Method getName, java.lang.reflect.Method getResourceAsStream, java.lang.reflect.Method isExported, java.lang.reflect.Method isOpened, java.lang.reflect.Method canRead)
Creates an enabled dispatcher.- Parameters:
getModule
- Thejava.lang.Class#getModule()
method.getClassLoader
- Thejava.lang.Module#getClassLoader()
method.isNamed
- Thejava.lang.Module#isNamed()
method.getName
- Thejava.lang.Module#getName()
method.getResourceAsStream
- Thejava.lang.Module#getResourceAsStream(String)
method.isExported
- Thejava.lang.Module#isExported(String,Module)
method.isOpened
- Thejava.lang.Module#isOpened(String,Module)
method.canRead
- Thejava.lang.Module#canRead(Module)
method.
-
-
Method Detail
-
isAlive
public boolean isAlive()
Checks if this dispatcher is alive, i.e. supports modules.- Specified by:
isAlive
in interfaceJavaModule.Dispatcher
- Returns:
true
if modules are supported on the current VM.
-
moduleOf
public JavaModule moduleOf(java.lang.Class<?> type)
Extracts the JavaModule
for the provided class or returnsnull
if the current VM does not support modules.- Specified by:
moduleOf
in interfaceJavaModule.Dispatcher
- Parameters:
type
- The type for which to extract the module.- Returns:
- The class's
Module
ornull
if the current VM does not support modules.
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.Object module, java.lang.String name)
Returns a resource stream for this module for a resource of the given name ornull
if such a resource does not exist.- Specified by:
getResourceAsStream
in interfaceJavaModule.Dispatcher
- Parameters:
module
- Thejava.lang.Module
instance to apply this method upon.name
- The name of the resource.- Returns:
- An input stream for the resource or
null
if it does not exist.
-
getClassLoader
public java.lang.ClassLoader getClassLoader(java.lang.Object module)
Returns the module's class loader.- Specified by:
getClassLoader
in interfaceJavaModule.Dispatcher
- Parameters:
module
- Thejava.lang.Module
- Returns:
- The module's class loader.
-
isNamed
public boolean isNamed(java.lang.Object module)
Returnstrue
if the supplied module is named.- Specified by:
isNamed
in interfaceJavaModule.Dispatcher
- Parameters:
module
- Thejava.lang.Module
to check for the existence of a name.- Returns:
true
if the supplied module is named.
-
getName
public java.lang.String getName(java.lang.Object module)
Returns the module's name.- Specified by:
getName
in interfaceJavaModule.Dispatcher
- Parameters:
module
- Thejava.lang.Module
to check for its name.- Returns:
- The module's (implicit or explicit) name.
-
isExported
public boolean isExported(java.lang.Object source, java.lang.Object target, java.lang.String aPackage)
Returnstrue
if the source module exports the supplied package to the target module.- Specified by:
isExported
in interfaceJavaModule.Dispatcher
- Parameters:
source
- The source module.target
- The target module.aPackage
- The name of the package to check.- Returns:
true
if the source module exports the supplied package to the target module.
-
isOpened
public boolean isOpened(java.lang.Object source, java.lang.Object target, java.lang.String aPackage)
Returnstrue
if the source module opens the supplied package to the target module.- Specified by:
isOpened
in interfaceJavaModule.Dispatcher
- Parameters:
source
- The source module.target
- The target module.aPackage
- The name of the package to check.- Returns:
true
if the source module opens the supplied package to the target module.
-
canRead
public boolean canRead(java.lang.Object source, java.lang.Object target)
Checks if the source module can read the target module.- Specified by:
canRead
in interfaceJavaModule.Dispatcher
- Parameters:
source
- The source module.target
- The target module.- Returns:
true
if the source module can read the target module.
-
-