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.

Lua Environment Variables

The following variables are available to lua scrips when this library has been loaded:

Java Environment Variables

These Java environment variables affect the library behavior:

Loading

Typically, this library is included as part of a call to either JsePlatform.standardGlobals() or JmePlatform.standardGlobals()
 Globals globals = JsePlatform.standardGlobals();
 System.out.println( globals.get("require").call"foo") );
  

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

 Globals globals = new Globals();
 globals.load(new JseBaseLib());
 globals.load(new PackageLib());
 System.out.println( globals.get("require").call("foo") );
  

Limitations

This library 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, Lua 5.2 Package Lib Reference

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)
          Perform one-time initialization on the library by adding package functions to the supplied environment, and returning it as the 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)
Perform one-time initialization on the library by adding package functions to the supplied environment, and returning it as the return value. It also creates the package.preload and package.loaded tables for use by other libraries.

Specified by:
call in class TwoArgFunction
Parameters:
modname - the module name supplied if this is loaded via 'require'.
env - the environment to load into, typically a Globals instance.
Returns:
First return value (this(arg1,arg2)), or LuaValue.NIL if there were none.
See Also:
LuaValue.call(), LuaValue.call(LuaValue), LuaValue.call(LuaValue, LuaValue, LuaValue), LuaValue.invoke(LuaValue, Varargs), 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(), LuaValue.TSTRING

toClassname

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



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