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
,JavaConstructor.Overload
,JavaMember
,LuajavaLib
,MathLib.frexp
,MathLib.max
,MathLib.min
,MathLib.modf
,OsLib.OsLibFunc
,PackageLib.java_searcher
,PackageLib.loadlib
,PackageLib.lua_searcher
,PackageLib.preload_searcher
,PackageLib.searchpath
,ScriptManager.luaLog
,ScriptManager.luaWarning
,StringLib._byte
,StringLib._char
,StringLib.contains
,StringLib.dump
,StringLib.endsWith
,StringLib.find
,StringLib.format
,StringLib.gmatch
,StringLib.gsub
,StringLib.match
,StringLib.rep
,StringLib.replace
,StringLib.replaceAll
,StringLib.split
,StringLib.startsWith
,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
Nested classes/interfaces inherited from class com.prineside.luaj.Varargs
Varargs.ArrayVarargs
-
Field Summary
Fields inherited from class com.prineside.luaj.LuaFunction
s_metatable
Fields 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()
Callthis
with 0 arguments, including metatag processing, and return only the first return value.Callthis
with 1 argument, including metatag processing, and return only the first return value.Callthis
with 2 arguments, including metatag processing, and return only the first return value.Callthis
with 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, write
Methods inherited from class com.prineside.luaj.LuaFunction
checkfunction, classnamestub, getmetatable, isfunction, name, optfunction, strvalue, type, typename
Methods inherited from class com.prineside.luaj.LuaValue
add, add, add, and, arg, arg1, argerror, assert_, buffer, call, cBool, cDouble, cFloat, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkjstring, checklong, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, cInt, cNcDouble, cNcFloat, cNcInt, cObject, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, cRegObject, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, cVarargs, 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, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isRegObject, 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, markAsConst, 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, 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
Methods inherited from class com.prineside.luaj.Varargs
argcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, 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, 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:LuaValue
Callthis
with 0 arguments, including metatag processing, and return only the first return value.If
this
is aLuaFunction
, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALL
metatag 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
this
as a method call, useLuaValue.method(LuaValue)
instead.- Overrides:
call
in classLibFunction
- Returns:
- First return value
(this())
, orLuaValue.NIL
if there were none. - See Also:
-
call
Description copied from class:LuaValue
Callthis
with 1 argument, including metatag processing, and return only the first return value.If
this
is aLuaFunction
, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALL
metatag 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
this
as a method call, useLuaValue.method(LuaValue)
instead.- Overrides:
call
in classLibFunction
- Parameters:
arg
- First argument to supply to the called function- Returns:
- First return value
(this(arg))
, orLuaValue.NIL
if there were none. - See Also:
-
call
Description copied from class:LuaValue
Callthis
with 2 arguments, including metatag processing, and return only the first return value.If
this
is aLuaFunction
, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALL
metatag 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
this
as a method call, useLuaValue.method(LuaValue)
instead.- Overrides:
call
in 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.NIL
if there were none. - See Also:
-
call
Description copied from class:LuaValue
Callthis
with 3 arguments, including metatag processing, and return only the first return value.If
this
is aLuaFunction
, call it, and return only its first return value, dropping any others. Otherwise, look for theLuaValue.CALL
metatag 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
this
as a method call, useLuaValue.method(LuaValue)
instead.- Overrides:
call
in 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.NIL
if 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:
invoke
in classLibFunction
- Parameters:
args
- the arguments to the function call.
-
onInvoke
Description copied from class:LuaValue
Callback used during tail call processing to invoke the function once.This may return a
TailcallVarargs
to be evaluated by the client.This should not be called directly, instead use one of the call invocation functions.
-