|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.luaj.vm2.Varargs
org.luaj.vm2.LuaValue
org.luaj.vm2.LuaFunction
org.luaj.vm2.lib.LibFunction
org.luaj.vm2.lib.VarArgFunction
public abstract class VarArgFunction
Abstract base class for Java function implementations that takes varaiable arguments and returns multiple return values.
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.
invoke(Varargs),
LibFunction,
ZeroArgFunction,
OneArgFunction,
TwoArgFunction,
ThreeArgFunction| 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 | |
|---|---|
VarArgFunction()
|
|
| Method Summary | |
|---|---|
LuaValue |
call()
Call this with 0 arguments, including metatag processing,
and return only the first return value. |
LuaValue |
call(LuaValue arg)
Call this with 1 argument, including metatag processing,
and return only the first return value. |
LuaValue |
call(LuaValue arg1,
LuaValue arg2)
Call this with 2 arguments, including metatag processing,
and return only the first return value. |
LuaValue |
call(LuaValue arg1,
LuaValue arg2,
LuaValue arg3)
Call this with 3 arguments, including metatag processing,
and return only the first return value. |
Varargs |
invoke(Varargs args)
Subclass responsibility. |
Varargs |
onInvoke(Varargs args)
Callback used during tail call processing to invoke the function once. |
| 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.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 |
|---|
public VarArgFunction()
| Method Detail |
|---|
public LuaValue call()
LuaValuethis with 0 arguments, 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 LuaValue.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.
call in class LibFunction(this()), or LuaValue.NIL if there were none.LuaValue.call(LuaValue),
LuaValue.call(LuaValue,LuaValue),
LuaValue.call(LuaValue, LuaValue, LuaValue),
LuaValue.invoke(),
LuaValue.method(String),
LuaValue.method(LuaValue)public LuaValue call(LuaValue arg)
LuaValuethis 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 LuaValue.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.
call in class LibFunctionarg - First argument to supply to the called function
(this(arg)), or LuaValue.NIL if there were none.LuaValue.call(),
LuaValue.call(LuaValue,LuaValue),
LuaValue.call(LuaValue, LuaValue, LuaValue),
LuaValue.invoke(Varargs),
LuaValue.method(String,LuaValue),
LuaValue.method(LuaValue,LuaValue)
public LuaValue call(LuaValue arg1,
LuaValue arg2)
LuaValuethis with 2 arguments, 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 LuaValue.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.
call in class LibFunctionarg1 - First argument to supply to the called functionarg2 - Second argument to supply to the called function
(this(arg1,arg2)), or LuaValue.NIL if there were none.LuaValue.call(),
LuaValue.call(LuaValue),
LuaValue.call(LuaValue, LuaValue, LuaValue),
LuaValue.invoke(LuaValue, Varargs),
LuaValue.method(String,LuaValue,LuaValue),
LuaValue.method(LuaValue,LuaValue,LuaValue)
public LuaValue call(LuaValue arg1,
LuaValue arg2,
LuaValue arg3)
LuaValuethis with 3 arguments, 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 LuaValue.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.
call in class LibFunctionarg1 - First argument to supply to the called functionarg2 - Second argument to supply to the called functionarg3 - Second argument to supply to the called function
(this(arg1,arg2,arg3)), or LuaValue.NIL if there were none.LuaValue.call(),
LuaValue.call(LuaValue),
LuaValue.call(LuaValue, LuaValue),
LuaValue.invoke(LuaValue, LuaValue, Varargs),
LuaValue.invokemethod(String,Varargs),
LuaValue.invokemethod(LuaValue,Varargs)public Varargs invoke(Varargs args)
invoke in class LibFunctionargs - the arguments to the function call.
Varargs instance.LuaValue.varargsOf(LuaValue[]),
LuaValue.call(LuaValue),
LuaValue.invoke(),
LuaValue.invoke(LuaValue,Varargs),
LuaValue.invokemethod(String,Varargs),
LuaValue.invokemethod(LuaValue,Varargs)public Varargs onInvoke(Varargs args)
LuaValue
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.
onInvoke in class LuaValueargs - the arguments to the call invocation.
LuaValue.call(),
LuaValue.invoke(),
LuaValue.method(LuaValue),
LuaValue.invokemethod(LuaValue)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||