org.luaj.vm2.lib
Class BaseLib

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.OneArgFunction
                      extended by org.luaj.vm2.lib.BaseLib
All Implemented Interfaces:
ResourceFinder
Direct Known Subclasses:
JseBaseLib

public class BaseLib
extends OneArgFunction
implements ResourceFinder

Subclass of LibFunction which implements the lua basic library functions.

This contains all library functions listed as "basic functions" in the lua documentation for JME. The functions dofile and loadfile use the FINDER instance to find resource files. Since JME has no file system by default, BaseLib implements ResourceFinder using Class.getResource(String), which is the closest equivalent on JME. The default loader chain in PackageLib will use these as well.

To use basic library functions that include a ResourceFinder based on directory lookup, use JseBaseLib instead.

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

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

 LuaTable _G = new LuaTable();
 LuaThread.setGlobals(_G);
 _G.load(new BaseLib());
 _G.get("print").call(LuaValue.valueOf("hello, world"));
  
Doing so will ensure the library is properly initialized and loaded into the globals table.

This is a direct port of the corresponding library in C.

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

Field Summary
static ResourceFinder FINDER
          Singleton file opener for this Java ClassLoader realm.
static BaseLib instance
           
 java.io.PrintStream STDERR
           
 java.io.InputStream STDIN
           
 java.io.PrintStream STDOUT
           
 
Fields inherited from class org.luaj.vm2.lib.LibFunction
name, opcode
 
Fields inherited from class org.luaj.vm2.LuaFunction
env, s_metatable
 
Fields inherited from class org.luaj.vm2.LuaValue
ADD, CALL, CONCAT, DIV, EMPTYSTRING, 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
BaseLib()
          Construct a base libarary instance.
 
Method Summary
 LuaValue call(LuaValue arg)
          Call this with 1 argument, including metatag processing, and return only the first return value.
 java.io.InputStream findResource(java.lang.String filename)
          ResourceFinder implementation Tries to open the file as a resource, which can work for .
static Varargs loadFile(java.lang.String filename)
          Load from a named file, returning the chunk or nil,error of can't load
static Varargs loadStream(java.io.InputStream is, java.lang.String chunkname)
           
static Varargs pcall(LuaValue func, Varargs args, LuaValue errfunc)
           
 
Methods inherited from class org.luaj.vm2.lib.OneArgFunction
call, call, call, invoke
 
Methods inherited from class org.luaj.vm2.lib.LibFunction
bind, bind, newupe, newupl, newupn, tojstring
 
Methods inherited from class org.luaj.vm2.LuaFunction
checkfunction, getfenv, getmetatable, isfunction, optfunction, setfenv, type, typename
 
Methods inherited from class org.luaj.vm2.LuaValue
add, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, buffer, callmt, checkboolean, checkclosure, checkdouble, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalidkey, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq_b, eq, eqmtcall, equals, error, get, get, get, getn, gettable, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, illegal, inext, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isstring, istable, isthread, isuserdata, isuserdata, isweaknil, len, lenerror, length, listOf, listOf, load, lt_b, lt_b, lt_b, lt, lt, lt, lteq_b, lteq_b, lteq_b, lteq, lteq, lteq, 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, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, strcmp, strcmp, strongkey, strongvalue, strvalue, sub, sub, sub, 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, subargs, 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

instance

public static BaseLib instance

STDIN

public java.io.InputStream STDIN

STDOUT

public java.io.PrintStream STDOUT

STDERR

public java.io.PrintStream STDERR

FINDER

public static ResourceFinder FINDER
Singleton file opener for this Java ClassLoader realm. Unless set or changed elsewhere, will be set by the BaseLib that is created.

Constructor Detail

BaseLib

public BaseLib()
Construct a base libarary instance.

Method Detail

call

public LuaValue call(LuaValue arg)
Description copied from class: LuaValue
Call this with 1 argument, 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 OneArgFunction
Parameters:
arg - First argument to supply to the called function
Returns:
First return value (this(arg)), or NIL if there were none.
See Also:
LuaValue.call(), LuaValue.call(LuaValue,LuaValue), LuaValue.call(LuaValue, LuaValue, LuaValue), #invoke(LuaValue), LuaValue.method(String,LuaValue), LuaValue.method(LuaValue,LuaValue)

findResource

public java.io.InputStream findResource(java.lang.String filename)
ResourceFinder implementation Tries to open the file as a resource, which can work for .

Specified by:
findResource in interface ResourceFinder
Returns:
InputStream, or null if not found.
See Also:
BaseLib, JseBaseLib

pcall

public static Varargs pcall(LuaValue func,
                            Varargs args,
                            LuaValue errfunc)

loadFile

public static Varargs loadFile(java.lang.String filename)
Load from a named file, returning the chunk or nil,error of can't load

Returns:
Varargs containing chunk, or NIL,error-text on error

loadStream

public static Varargs loadStream(java.io.InputStream is,
                                 java.lang.String chunkname)


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