| /* | |
| * $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"); | |
| } | |
| } | |
| } |