package org.keplerproject.luajava.test;
import java.util.Date;
import org.keplerproject.luajava.JavaFunction;
import org.keplerproject.luajava.LuaException;
import org.keplerproject.luajava.LuaState;
/**
* Example of a library in Java openned in Lua using loadLib
*
* @author Thiago Ponte
*/
public class LoadLibExample
{
private final static String LIB_NAME = "eg";
private static void getLibTable(LuaState L)
{
L.getGlobal(LIB_NAME);
if (L.isNil(-1))
{
L.pop(1);
L.newTable();
L.pushValue(-1);
L.setGlobal(LIB_NAME);
}
}
/**
* Method called by loadLib
*/
public static void open(LuaState L) throws LuaException
{
getLibTable(L);
L.pushString("example");
L.pushJavaFunction(new JavaFunction(L) {
/**
* Example for loadLib.
* Prints the time and the first parameter, if any.
*/
public int execute() throws LuaException
{
System.out.println(new Date().toString());
if (L.getTop() > 1)
{
System.out.println(getParam(2));
}
return 0;
}
});
L.setTable(-3);
L.pop(1);
}
}