Class VarArgFunction
- All Implemented Interfaces:
com.esotericsoftware.kryo.KryoSerializable
- Direct Known Subclasses:
BaseLib._assert,BaseLib.collectgarbage,BaseLib.dofile,BaseLib.inext,BaseLib.ipairs,BaseLib.load,BaseLib.loadfile,BaseLib.next,BaseLib.pairs,BaseLib.pcall,BaseLib.print,BaseLib.select,BaseLib.xpcall,Bit32Lib.Bit32LibV,CoroutineLib.resume,CoroutineLib.running,CoroutineLib.wrapper,CoroutineLib.yieldImpl,DebugLib.gethook,DebugLib.getinfo,DebugLib.getlocal,DebugLib.getupvalue,DebugLib.sethook,DebugLib.setlocal,DebugLib.setupvalue,DebugLib.setuservalue,DebugLib.traceback,DebugLib.upvalueid,DebugLib.upvaluejoin,IoLib.IoLibV,LuajavaLib,MathLib.frexp,MathLib.max,MathLib.min,MathLib.modf,PackageLib.java_searcher,PackageLib.loadlib,PackageLib.lua_searcher,PackageLib.preload_searcher,PackageLib.searchpath,ScriptManager.luaLog,ScriptManager.luaWarning,StringLib._byte,StringLib._char,StringLib.dump,StringLib.find,StringLib.format,StringLib.gmatch,StringLib.gsub,StringLib.match,StringLib.rep,StringLib.sub,TableLib.insert,TableLib.pack,TableLib.remove,TableLib.sort,TableLib.unpack
Subclasses need only implement LuaValue.invoke(Varargs) to complete this class,
simplifying development.
All other uses of call(LuaValue), LuaValue.invoke(),etc,
are routed through this method by this class,
converting arguments to Varargs and
dropping or extending return values with nil values as required.
If between one and three arguments are required, and only one return value is returned,
ZeroArgFunction, OneArgFunction, TwoArgFunction, or ThreeArgFunction.
See LibFunction for more information on implementation libraries and library functions.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.prineside.luaj.LuaValue
LuaValue.NillableSerializer, LuaValue.None -
Field Summary
Fields inherited from class com.prineside.luaj.LuaFunction
s_metatableFields inherited from class com.prineside.luaj.LuaValue
ADD, CALL, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILLABLE_SERIALIZER, 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncall()Callthiswith 0 arguments, including metatag processing, and return only the first return value.Callthiswith 1 argument, including metatag processing, and return only the first return value.Callthiswith 2 arguments, including metatag processing, and return only the first return value.Callthiswith 3 arguments, including metatag processing, and return only the first return value.Subclass responsibility.Callback used during tail call processing to invoke the function once.Methods inherited from class com.prineside.luaj.lib.LibFunction
call, read, tojstring, writeMethods inherited from class com.prineside.luaj.LuaFunction
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typenameMethods inherited from class com.prineside.luaj.LuaValue
add, add, add, and, arg, arg1, argerror, assert_, buffer, cachedDouble, cachedInt, cachedVarargsOf, cachedVarargsOf, cachedVarargsOf, cachedVarargsOf, cachedVarargsOf, cachedVarargsOf, call, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq, eq_b, eqmtcall, equals, error, get, get, get, gt, gt, gt, gt_b, gt_b, gt_b, gteq, gteq, gteq, gteq_b, gteq_b, gteq_b, 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, length, listOf, listOf, load, lt, lt, lt, lt_b, lt_b, lt_b, lteq, lteq, lteq, lteq_b, lteq_b, lteq_b, metatag, method, method, method, method, method, method, mod, mod, mod, modFrom, mul, mul, mul, narg, neg, neq, neq_b, next, not, 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, 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, userdataOf, userdataOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOfMethods inherited from class com.prineside.luaj.Varargs
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, dealias, 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
-
Constructor Details
-
VarArgFunction
public VarArgFunction()
-
-
Method Details
-
call
Description copied from class:LuaValueCallthiswith 0 arguments, including metatag processing, and return only the first return value.If
thisis aLuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALLmetatag and call that.If the return value is a
Varargs, only the 1st value will be returned. To get multiple values, useLuaValue.invoke()instead.To call
thisas a method call, useLuaValue.method(LuaValue)instead.- Overrides:
callin classLibFunction- Returns:
- First return value
(this()), orLuaValue.NILif there were none. - See Also:
-
call
Description copied from class:LuaValueCallthiswith 1 argument, including metatag processing, and return only the first return value.If
thisis aLuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALLmetatag and call that.If the return value is a
Varargs, only the 1st value will be returned. To get multiple values, useLuaValue.invoke()instead.To call
thisas a method call, useLuaValue.method(LuaValue)instead.- Overrides:
callin classLibFunction- Parameters:
arg- First argument to supply to the called function- Returns:
- First return value
(this(arg)), orLuaValue.NILif there were none. - See Also:
-
call
Description copied from class:LuaValueCallthiswith 2 arguments, including metatag processing, and return only the first return value.If
thisis aLuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALLmetatag and call that.If the return value is a
Varargs, only the 1st value will be returned. To get multiple values, useLuaValue.invoke()instead.To call
thisas a method call, useLuaValue.method(LuaValue)instead.- Overrides:
callin classLibFunction- Parameters:
arg1- First argument to supply to the called functionarg2- Second argument to supply to the called function- Returns:
- First return value
(this(arg1,arg2)), orLuaValue.NILif there were none. - See Also:
-
call
Description copied from class:LuaValueCallthiswith 3 arguments, including metatag processing, and return only the first return value.If
thisis aLuaFunction, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALLmetatag and call that.If the return value is a
Varargs, only the 1st value will be returned. To get multiple values, useLuaValue.invoke()instead.To call
thisas a method call, useLuaValue.method(LuaValue)instead.- Overrides:
callin classLibFunction- Parameters:
arg1- First argument to supply to the called functionarg2- Second argument to supply to the called functionarg3- Second argument to supply to the called function- Returns:
- First return value
(this(arg1,arg2,arg3)), orLuaValue.NILif there were none. - See Also:
-
invoke
Subclass responsibility. May not have expected behavior for tail calls. Should not be used if: - function has a possibility of returning a TailcallVarargs- Overrides:
invokein classLibFunction- Parameters:
args- the arguments to the function call.- Returns:
- All return values as a
Varargsinstance. - See Also:
-
onInvoke
Description copied from class:LuaValueCallback used during tail call processing to invoke the function once.This may return a
TailcallVarargsto be evaluated by the client.This should not be called directly, instead use one of the call invocation functions.
-