org.luaj.vm2.lib
Class PackageLib

java.lang.Object
  extended by org.luaj.vm2.Varargs
      extended by org.luaj.vm2.LuaValue
          extended by org.luaj.vm2.LuaFunction
              extended by org.luaj.vm2.lib.LibFunction
                  extended by org.luaj.vm2.lib.TwoArgFunction
                      extended by org.luaj.vm2.lib.PackageLib

public class PackageLib
extends TwoArgFunction

Subclass of LibFunction which implements the lua standard package and module library functions.

Typically, this library is included as part of a call to either JsePlatform#standardGlobals() or JmePlatform#standardGlobals()

To instantiate and use it directly, link it into your globals table via LuaValue.load(LuaValue) using code such as:

 Globals _G = new Globals();
 _G.load(new BaseLib());
 _G.load(new PackageLib());
 System.out.println( _G.package_.require.call"foo") );
  
In practice, the first 3 lines of the above are minimal requirements to get and initialize a globals table capable of basic require, print, and other functions, so it is much more convenient to use the JsePlatform and JmePlatform utility classes instead.

This has been implemented to match as closely as possible the behavior in the corresponding library in C. However, the default filesystem search semantics are different and delegated to the bas library as outlined in the BaseLib and JseBaseLib documentation.

See Also:
LibFunction, BaseLib, JseBaseLib, JsePlatform, JmePlatform, http://www.lua.org/manual/5.1/manual.html#5.3

Nested Class Summary
 class PackageLib.java_searcher
           
static class PackageLib.loadlib
           
 class PackageLib.lua_searcher
           
 class PackageLib.preload_searcher
           
 class PackageLib.require
          require (modname) Loads the given module.
 class PackageLib.searchpath
           
 
Field Summary
static java.lang.String DEFAULT_LUA_PATH
          The default value to use for package.path.
 PackageLib.java_searcher java_searcher
          Loader that loads as a Java class.
 PackageLib.lua_searcher lua_searcher
          Loader that loads as a lua script using the lua path currently in PackageLib.searchpath
 PackageLib.preload_searcher preload_searcher
          Loader that loads from preload table if found there
 
Fields inherited from class org.luaj.vm2.lib.LibFunction
name, opcode
 
Fields inherited from class org.luaj.vm2.LuaFunction
s_metatable
 
Fields inherited from class org.luaj.vm2.LuaValue
ADD, CALL, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILS, NONE, NOVALS, ONE, POW, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, ZERO
 
Constructor Summary
PackageLib()
           
 
Method Summary
 LuaValue call(LuaValue modname, LuaValue env)
          Call this with 2 arguments, including metatag processing, and return only the first return value.
 void setIsLoaded(java.lang.String name, LuaTable value)
          Allow packages to mark themselves as loaded
 void setLuaPath(java.lang.String newLuaPath)
          Set the lua path used by this library instance to a new value.
static java.lang.String toClassname(java.lang.String filename)
          Convert lua filename to valid class name
 java.lang.String tojstring()
          Convert to human readable String for any type.
 
Methods inherited from class org.luaj.vm2.lib.TwoArgFunction
call, call, call, invoke
 
Methods inherited from class org.luaj.vm2.lib.LibFunction
bind, bind, call, newupe, newupl, newupn
 
Methods inherited from class org.luaj.vm2.LuaFunction
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typename
 
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, call, callmt, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq_b, eq, eqmtcall, equals, error, get, get, get, gettable, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isstring, istable, isthread, isuserdata, isuserdata, isvalidkey, len, lenerror, length, listOf, listOf, load, lt_b, lt_b, lt_b, lt, lt, lt, lteq_b, lteq_b, lteq_b, lteq, lteq, lteq, metatableOf, metatag, method, method, method, method, method, method, mod, mod, mod, modFrom, mul, mul, mul, narg, neg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optdouble, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, presize, raweq, raweq, raweq, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strcmp, strcmp, strongvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tolong, tonumber, toshort, tostring, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOf
 
Methods inherited from class org.luaj.vm2.Varargs
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, eval, isfunction, isnil, isnoneornil, isnumber, isstring, istable, isTailcall, isthread, isuserdata, isvalue, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, type
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_LUA_PATH

public static java.lang.String DEFAULT_LUA_PATH
The default value to use for package.path. This can be set with the system property "luaj.package.path", and is "?.lua" by default.


preload_searcher

public PackageLib.preload_searcher preload_searcher
Loader that loads from preload table if found there


lua_searcher

public PackageLib.lua_searcher lua_searcher
Loader that loads as a lua script using the lua path currently in PackageLib.searchpath


java_searcher

public PackageLib.java_searcher java_searcher
Loader that loads as a Java class. Class must have public constructor and be a LuaValue.

Constructor Detail

PackageLib

public PackageLib()
Method Detail

call

public LuaValue call(LuaValue modname,
                     LuaValue env)
Description copied from class: LuaValue
Call this with 2 arguments, including metatag processing, and return only the first return value.

If this is a LuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for the CALL metatag and call that.

If the return value is a Varargs, only the 1st value will be returned. To get multiple values, use LuaValue.invoke() instead.

To call this as a method call, use LuaValue.method(LuaValue) instead.

Specified by:
call in class TwoArgFunction
Parameters:
modname - First argument to supply to the called function
env - Second argument to supply to the called function
Returns:
First return value (this(arg1,arg2)), or NIL if there were none.
See Also:
LuaValue.call(), LuaValue.call(LuaValue), LuaValue.call(LuaValue, LuaValue, LuaValue), #invoke(LuaValue,LuaValue), LuaValue.method(String,LuaValue,LuaValue), LuaValue.method(LuaValue,LuaValue,LuaValue)

setIsLoaded

public void setIsLoaded(java.lang.String name,
                        LuaTable value)
Allow packages to mark themselves as loaded


setLuaPath

public void setLuaPath(java.lang.String newLuaPath)
Set the lua path used by this library instance to a new value. Merely sets the value of PackageLib.searchpath to be used in subsequent searches.


tojstring

public java.lang.String tojstring()
Description copied from class: LuaValue
Convert to human readable String for any type.

Overrides:
tojstring in class LibFunction
Returns:
String for use by human readers based on type.
See Also:
LuaValue.tostring(), LuaValue.optjstring(String), LuaValue.checkjstring(), LuaValue.isstring(), TSTRING

toClassname

public static final java.lang.String toClassname(java.lang.String filename)
Convert lua filename to valid class name



Copyright © 2007-2008 Luaj.org. All Rights Reserved.