org.luaj.vm2.lib.jse
Class JseOsLib

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.OsLib
                          extended by org.luaj.vm2.lib.jse.JseOsLib

public class JseOsLib
extends OsLib

Subclass of LibFunction which implements the standard lua os library.

This contains more complete implementations of the following functions using features that are specific to JSE:

Because the nature of the os library is to encapsulate os-specific features, the behavior of these functions varies considerably from their counterparts in the C platform.

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

 Globals globals = JsePlatform.standardGlobals();
 System.out.println( globals.get("os").get("time").call() );
  

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.load(new PackageLib());
 globals.load(new JseOsLib());
 System.out.println( globals.get("os").get("time").call() );
  

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

See Also:
LibFunction, OsLib, JsePlatform, JmePlatform, Lua 5.2 OS Lib Reference

Field Summary
static int EXEC_ERROR
          return code indicating the execute() threw an unknown exception
static int EXEC_INTERRUPTED
          return code indicating the execute() was interrupted
static int EXEC_IOEXCEPTION
          return code indicating the execute() threw an I/O exception
 
Fields inherited from class org.luaj.vm2.lib.OsLib
globals, TMP_PREFIX, TMP_SUFFIX
 
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
JseOsLib()
          public constructor
 
Method Summary
protected  Varargs execute(java.lang.String command)
          This function is equivalent to the C function system.
protected  java.lang.String getenv(java.lang.String varname)
          Returns the value of the process environment variable varname, or the System property value for varname, or null if the variable is not defined in either environment.
protected  void remove(java.lang.String filename)
          Deletes the file or directory with the given name.
protected  void rename(java.lang.String oldname, java.lang.String newname)
          Renames file or directory named oldname to newname.
protected  java.lang.String tmpname()
          Returns a string with a file name that can be used for a temporary file.
 
Methods inherited from class org.luaj.vm2.lib.OsLib
call, clock, date, difftime, exit, setlocale, time
 
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
 

Field Detail

EXEC_IOEXCEPTION

public static int EXEC_IOEXCEPTION
return code indicating the execute() threw an I/O exception


EXEC_INTERRUPTED

public static int EXEC_INTERRUPTED
return code indicating the execute() was interrupted


EXEC_ERROR

public static int EXEC_ERROR
return code indicating the execute() threw an unknown exception

Constructor Detail

JseOsLib

public JseOsLib()
public constructor

Method Detail

getenv

protected java.lang.String getenv(java.lang.String varname)
Description copied from class: OsLib
Returns the value of the process environment variable varname, or the System property value for varname, or null if the variable is not defined in either environment. The default implementation, which is used by the JmePlatform, only queryies System.getProperty(). The JsePlatform overrides this behavior and returns the environment variable value using System.getenv() if it exists, or the System property value if it does not. A SecurityException may be thrown if access is not allowed for 'varname'.

Overrides:
getenv in class OsLib
Returns:
String value, or null if not defined

execute

protected Varargs execute(java.lang.String command)
Description copied from class: OsLib
This function is equivalent to the C function system. It passes command to be executed by an operating system shell. It returns a status code, which is system-dependent. If command is absent, then it returns nonzero if a shell is available and zero otherwise.

Overrides:
execute in class OsLib
Parameters:
command - command to pass to the system

remove

protected void remove(java.lang.String filename)
               throws java.io.IOException
Description copied from class: OsLib
Deletes the file or directory with the given name. Directories must be empty to be removed. If this function fails, it throws and IOException

Overrides:
remove in class OsLib
Throws:
java.io.IOException - if it fails

rename

protected void rename(java.lang.String oldname,
                      java.lang.String newname)
               throws java.io.IOException
Description copied from class: OsLib
Renames file or directory named oldname to newname. If this function fails,it throws and IOException

Overrides:
rename in class OsLib
Parameters:
oldname - old file name
newname - new file name
Throws:
java.io.IOException - if it fails

tmpname

protected java.lang.String tmpname()
Description copied from class: OsLib
Returns a string with a file name that can be used for a temporary file. The file must be explicitly opened before its use and explicitly removed when no longer needed. On some systems (POSIX), this function also creates a file with that name, to avoid security risks. (Someone else might create the file with wrong permissions in the time between getting the name and creating the file.) You still have to open the file to use it and to remove it (even if you do not use it).

Overrides:
tmpname in class OsLib
Returns:
String filename to use


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