1 package org.keplerproject.luajava.test; 2 3 import java.util.Date; 4 5 import org.keplerproject.luajava.JavaFunction; 6 import org.keplerproject.luajava.LuaException; 7 import org.keplerproject.luajava.LuaState; 8 9 10 /** 11 * Example of a library in Java openned in Lua using loadLib 12 * 13 * @author Thiago Ponte 14 */ 15 public class LoadLibExample 16 { 17 private final static String LIB_NAME = "eg"; 18 getLibTable(LuaState L)19 private static void getLibTable(LuaState L) 20 { 21 L.getGlobal(LIB_NAME); 22 if (L.isNil(-1)) 23 { 24 L.pop(1); 25 L.newTable(); 26 L.pushValue(-1); 27 L.setGlobal(LIB_NAME); 28 } 29 } 30 31 /** 32 * Method called by loadLib 33 */ open(LuaState L)34 public static void open(LuaState L) throws LuaException 35 { 36 getLibTable(L); 37 38 L.pushString("example"); 39 40 L.pushJavaFunction(new JavaFunction(L) { 41 /** 42 * Example for loadLib. 43 * Prints the time and the first parameter, if any. 44 */ 45 public int execute() throws LuaException 46 { 47 System.out.println(new Date().toString()); 48 49 if (L.getTop() > 1) 50 { 51 System.out.println(getParam(2)); 52 } 53 54 return 0; 55 } 56 }); 57 58 L.setTable(-3); 59 60 L.pop(1); 61 } 62 } 63