# JseBaseLib (Luaj API)
Date: 2015-04-29

## org.luaj.vm2.lib.jse
Class JseBaseLib

    java.lang.Object
      org.luaj.vm2.Varargs
          org.luaj.vm2.LuaValue
              org.luaj.vm2.LuaFunction
                  org.luaj.vm2.lib.LibFunction
                      org.luaj.vm2.lib.TwoArgFunction
                          org.luaj.vm2.lib.BaseLib
                              org.luaj.vm2.lib.jse.JseBaseLib

All Implemented Interfaces:
  ResourceFinder

    public class JseBaseLib

extends BaseLib

Subclass of `BaseLib` and `LibFunction` which implements the lua basic library functions and provides a directory based `ResourceFinder` as the `Globals.finder`.

Since JME has no file system by default, `BaseLib` implements `ResourceFinder` using `Class.getResource(String)`. The `JseBaseLib` implements `Globals.finder` by scanning the current directory first, then falling back to `Class.getResource(String)` if that fails. Otherwise, the behavior is the same as that of `BaseLib`.

Typically, this library is included as part of a call to `JsePlatform.standardGlobals()`

     Globals globals = JsePlatform.standardGlobals();
     globals.get("print").call(LuaValue.valueOf("hello, world"));

For special cases where the smallest possible footprint is desired, a minimal set of libraries could be loaded directly via `LuaValue.load(LuaValue)` using code such as:

     Globals globals = new Globals();
     globals.load(new JseBaseLib());
     globals.get("print").call(LuaValue.valueOf("hello, world"));

However, other libraries such as PackageLib are not loaded in this case.

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

See Also:
  `Globals`, `BaseLib`, `ResourceFinder`, `Globals.finder`, `LibFunction`, `JsePlatform`, `JmePlatform`, Lua 5.2 Base Lib Reference

Field Summary

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
`JseBaseLib()`

Method Summary
`LuaValue` `call(LuaValue modname, LuaValue env)` Perform one-time initialization on the library by creating a table containing the library functions, adding that table to the supplied environment, adding the table to package.loaded, and returning table as the return value.
`java.io.InputStream` `findResource(java.lang.String filename)` Try to open a file in the current working directory, or fall back to base opener if not found.

Methods inherited from class org.luaj.vm2.lib.BaseLib
`loadFile, loadStream`

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, tojstring`

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`

Constructor Detail

### JseBaseLib

    public JseBaseLib()

Method Detail

### call

    public LuaValue call(LuaValue modname,
                         LuaValue env)

  Perform one-time initialization on the library by creating a table containing the library functions, adding that table to the supplied environment, adding the table to package.loaded, and returning table as the return value.

  Specifically, extend the library loading to set the default value for `Globals.STDIN`

  Overrides:
    `call` in class `BaseLib`
  Parameters:
    `modname` - the module name supplied if this is loaded via 'require'.
    `env` - the environment to load into, which must be 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)`

### findResource

    public java.io.InputStream findResource(java.lang.String filename)

  Try to open a file in the current working directory, or fall back to base opener if not found. This implementation attempts to open the file using new File(filename). It falls back to the base implementation that looks it up as a resource in the class path if not found as a plain file.

  Specified by:
    `findResource` in interface `ResourceFinder`
  Overrides:
    `findResource` in class `BaseLib`
  Parameters:
    `filename` -
  Returns:
    InputStream, or null if not found.
  See Also:
    `BaseLib`, `ResourceFinder`

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