Top Description Inners Fields Constructors Methods
org.graalvm.nativebridge

public final Class JNIClassCache

extends Object
Class Inheritance
Imports
java.util.Iterator, .Map, java.util.concurrent.ConcurrentHashMap, java.util.function.Function, org.graalvm.jniutils.JNI.JClass, .JNI.JNIEnv, .JNIExceptionWrapper, .JNIUtil, org.graalvm.word.WordFactory

Support class for JClass lookup. JClass instances are cached as JNI globals. The cached JNI globals are disposed by JNIClassCache#dispose(JNIEnv).

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
private static final Map<String, JNIClassCache.JNIClassData>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static void
dispose(JNI.JNIEnv jniEnv)

Disposes cached JNI objects and frees JNI globals.

public static JNI.JClass

Returns:

JNI global reference for JClass
lookupClass
(JNI.JNIEnv env, Class<?> clazz)

Looks up JClass using a Class.

public static JNI.JClass

Returns:

JNI global reference for JClass
lookupClass
(JNI.JNIEnv env, String className)

Looks up JClass using a fully qualified name.

private static JNI.JClass
lookupClassImpl(JNI.JNIEnv env, String className, boolean required)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

classesByNameback to summary
private static final Map<String, JNIClassCache.JNIClassData> classesByName

Constructor Detail

JNIClassCacheback to summary
private JNIClassCache()

Method Detail

disposeback to summary
public static void dispose(JNI.JNIEnv jniEnv)

Disposes cached JNI objects and frees JNI globals. The isolate should call this method before disposing to free host classes held by JNI global references.

lookupClassback to summary
public static JNI.JClass lookupClass(JNI.JNIEnv env, Class<?> clazz) throws JNIExceptionWrapper

Looks up JClass using a Class.

Returns:JNI.JClass

JNI global reference for JClass

Exceptions
JNIExceptionWrapper:
wrapping the HotSpot LinkageError is thrown when class is not found.
lookupClassback to summary
public static JNI.JClass lookupClass(JNI.JNIEnv env, String className) throws JNIExceptionWrapper

Looks up JClass using a fully qualified name.

Returns:JNI.JClass

JNI global reference for JClass

Exceptions
JNIExceptionWrapper:
wrapping the HotSpot LinkageError is thrown when class is not found.
lookupClassImplback to summary
private static JNI.JClass lookupClassImpl(JNI.JNIEnv env, String className, boolean required)
org.graalvm.nativebridge back to summary

private final Class JNIClassCache.JNIClassData

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv static final JNIClassCache.JNIClassData
private final JNI.JClass

Constructor Summary

AccessConstructor and Description
pack-priv
JNIClassData(JNI.JClass jClassGlobal)

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

INVALIDback to summary
pack-priv static final JNIClassCache.JNIClassData INVALID
jClassGlobalback to summary
private final JNI.JClass jClassGlobal

Constructor Detail

JNIClassDataback to summary
pack-priv JNIClassData(JNI.JClass jClassGlobal)