NatJ¶
- 
public class NatJ¶
- The entry class of the NatJ library. 
Methods¶
buildJavaObjectConstructionInfo¶
- 
public static JavaObjectConstructionInfo buildJavaObjectConstructionInfo(NativeRuntime defaultRuntime, Class<?> type, Class<?> mapperClass, Annotation callback, Object typeInfo, boolean owned, boolean byvalue, boolean arg)¶
- Constructs a - JavaObjectConstructionInfoinstance.- The responsible runtime determined by the following simplified formula: runtime = (mapperClass != null ? getRuntime(mapperClass) : getRuntime(type)); runtime = runtime != null ? runtime : defaultRuntime; - Parameters: - defaultRuntime – Runtime used when the runtime can not be determined
- type – The type to convert
- mapperClass – Specifies the mapper class to use
- callback – Extra information for callbacks
- typeInfo – Type information for reference types
- owned – Specifies the ownership
- byvalue – Specifies whether it is for a by-value value
- arg – Specifies whether it is for an argument
 - Returns: - The constructed - JavaObjectConstructionInfoinstance
buildNativeObjectConstructionInfo¶
- 
public static NativeObjectConstructionInfo buildNativeObjectConstructionInfo(NativeRuntime defaultRuntime, Class<?> type, Class<?> mapperClass, Annotation callback, boolean owned, boolean byvalue, boolean arg)¶
- Constructs a - NativeObjectConstructionInfoinstance.- Parameters: - defaultRuntime – Runtime used when the runtime can not be determined by the type
- type – The type to convert
- mapperClass – Specifies the mapper class to use
- callback – Extra information for callbacks
- owned – Specifies the ownership
- byvalue – Specifies whether it is for a by-value value
- arg – Specifies whether it is for an argument
 - Returns: - The constructed - NativeObjectConstructionInfoinstance
- defaultRuntime – Runtime used when the runtime can not be determined by the 
disposeFunctionPtr¶
getAndRemoveObjectCacheForRuntime¶
- 
public static Object getAndRemoveObjectCacheForRuntime(Class<? extends NativeRuntime> runtimeClass, Object instance)¶
- Returns and deletes cache for - runtimeof the- instance.- Parameters: - runtimeClass – The runtime we want to get and delete cache for
- instance – The instance we want to get and delete cache of
 - Returns: - The cache 
getMethod¶
- 
public static Method getMethod(Class<?> cls, String name, java.lang.Class<?>[] argTypes, int[] idxRef, int[] countRef)¶
- Lookups a method in a class by its given name and argument types, and computes the method’s index and the method count. - Parameters: - cls – The class in we want to do the lookup
- name – The method name to lookup
- argTypes – The method argument types
- idxRef – Out argument to return the computed index
- countRef – Out argument to return the method count
 - Returns: - The method 
getMethodIndex¶
getObjectCacheForRuntime¶
- 
public static Object getObjectCacheForRuntime(Class<? extends NativeRuntime> runtimeClass, Object instance)¶
- Returns cache for the given instance. - If a cache found for the - runtime, then it will return it, otherwise null will be returned.- Parameters: - runtimeClass – For which runtime we want to get the cache
- instance – Of which object we want to get the cache
 - Returns: - The cache, nil if creation was not possible 
getOrCreateInstanceOfRuntimeClass¶
- 
public static NativeRuntime getOrCreateInstanceOfRuntimeClass(Class<? extends NativeRuntime> runtimeClass)¶
- Returns an instance for a runtime class with using a cache. - Parameters: - runtimeClass – The runtime class we want to get instance for.
 - Returns: - The instance of the runtime class. 
getOrCreateObjectCacheForRuntime¶
- 
public static Object getOrCreateObjectCacheForRuntime(Class<? extends NativeRuntime> runtimeClass, Object instance, CacheConstructor constructor)¶
- Optionally creates a cache for a given instance then returns it. - If the - instancehas a- __natjCachefield and it’s not initialized, then it will save a hash map in it to be able to store cache for every runtime. If a cache found for the- runtime, then it will return it, otherwise, it will create one by the given- constructorand store it in the cache for the- runtimeClassand return it. If there are no- __natjCachefields to use, then this will return- nullto tell the caller there are no caching capabilities of the- instance.- Parameters: - runtimeClass – For which runtime we want to get the cache
- instance – Of which object we want to get the cache
- constructor – Cache factory implementation
 - Returns: - The cache, nil if creation was not possible 
getPlatformName¶
getReferenceMapper¶
isBoxedPrimitiveType¶
loadFramework¶
lookUpLibrary¶
- 
protected static String lookUpLibrary(String name, boolean load)¶
- Looks up a library by its name in the file system. - Uses - resolvedLibrariesfor caching to avoid looking up the same library for multiple times.- Parameters: - name – The library name we want to resolve a path for
- load – If this is true and the lookup resulted in a success, then it will load the library
 - Returns: - The resolved path of the library 
register¶
- 
public static void register()¶
- Registers a class with its determined runtime. - Usable from static initializers: class MyClass {
- static {
- NatJ.register();
 - } // … 
 - } - At first use it initializes NatJ. Loads the library specified by a - Libraryannotation, if found any. Determines the responsible runtime with- getRuntime(Class,boolean)and uses it for registering the class.
registerRuntime¶
- 
public static void registerRuntime(Class<? extends NativeRuntime> runtimeClass)¶
- Registers a runtime. - Parameters: - runtimeClass – The runtime we want to register.
 
toJava¶
- 
public static Object toJava(long peer, JavaObjectConstructionInfo info)¶
- Forwards to - info.mapper.- Parameters: - peer – The native pointer pointing to the object we want to convert.
- info – The conversion info.
 - Returns: - The Java peer. 
toNative¶
- 
public static long toNative(Object instance, NativeObjectConstructionInfo info)¶
- Forwards to - info.mapper.- Parameters: - instance – The Java object we want to convert.
- info – The conversion info.
 - Returns: - The native pointer pointing to the native peer. 
