/* * $Id: NativeSupport.java 38 2012-01-04 22:44:15Z andre@naef.com $ * See LICENSE.txt for license terms. */ package com.naef.jnlua; /** * Loads the JNLua native library. * * The class provides and configures a default loader implementation that loads * the JNLua native library by means of the <code>System.loadLibrary</code> * method. In some situations, you may want to override this behavior. For * example, when using JNLua as an OSGi bundle, the native library is loaded by * the OSGi runtime. Therefore, the OSGi bundle activator replaces the loader by * a no-op implementaion. Note that the loader must be configured before * LuaState is accessed. */ public final class NativeSupport { // -- Static private static final NativeSupport INSTANCE = new NativeSupport(); // -- State private Loader loader = new DefaultLoader(); /** * Returns the instance. * * @return the instance */ public static NativeSupport getInstance() { return INSTANCE; } // -- Construction /** * Private constructor to prevent external instantiation. */ private NativeSupport() { } // -- Properties /** * Return the native library loader. * * @return the loader */ public Loader getLoader() { return loader; } /** * Sets the native library loader. * * @param loader * the loader */ public void setLoader(Loader loader) { if (loader == null) { throw new NullPointerException("loader must not be null"); } this.loader = loader; } // -- Member types /** * Loads the library. */ public interface Loader { public void load(); } private class DefaultLoader implements Loader { @Override public void load() { System.loadLibrary("jnlua52"); } } }