DasherJava / src / dasherJava / core / output / LazyLibraryLoader.java
LazyLibraryLoader.java
Raw
package dasherJava.core.output;

import com.sun.jna.Library;
import com.sun.jna.Native;

public class LazyLibraryLoader<T extends Library> {
	
	private final String libraryName;
	private final Class<T> libraryClass;
	private T library = null;
	
	public LazyLibraryLoader(String libraryName, Class<T> libraryClass) {
		this.libraryName=libraryName;
		this.libraryClass=libraryClass;
	}
	
	public synchronized T getLibrary() throws UnsatisfiedLinkError {
		if (library==null) library=Native.load(libraryName, libraryClass);
		return library;
	}
}