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

## org.luaj.vm2.lib
Class ZeroArgFunction

    java.lang.Object
      org.luaj.vm2.Varargs
          org.luaj.vm2.LuaValue
              org.luaj.vm2.LuaFunction
                  org.luaj.vm2.lib.LibFunction
                      org.luaj.vm2.lib.ZeroArgFunction

    public abstract class ZeroArgFunction

extends LibFunction

Abstract base class for Java function implementations that take no arguments and return one value.

Subclasses need only implement `LuaValue.call()` to complete this class, simplifying development. All other uses of `call(LuaValue)`, `invoke(Varargs)`,etc, are routed through this method by this class.

If one or more arguments are required, or variable argument or variable return values, then use one of the related function `OneArgFunction`, `TwoArgFunction`, `ThreeArgFunction`, or `VarArgFunction`.

See `LibFunction` for more information on implementation libraries and library functions.

See Also:
  `call()`, `LibFunction`, `OneArgFunction`, `TwoArgFunction`, `ThreeArgFunction`, `VarArgFunction`

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
`ZeroArgFunction()` Default constructor

Method Summary
`abstract 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 varargs)` Call `this` with variable arguments, including metatag processing, and retain all return values in a `Varargs`.

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

### ZeroArgFunction

    public ZeroArgFunction()

  Default constructor

Method Detail

### call

    public abstract LuaValue call()

  Description copied from class: `LuaValue`
  Call `this` 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.

  Overrides:
    `call` in class `LibFunction`
  Returns:
    First return value `(this())`, or `LuaValue.NIL` if there were none.
  See Also:
    `LuaValue.call(LuaValue)`, `LuaValue.call(LuaValue,LuaValue)`, `LuaValue.call(LuaValue, LuaValue, LuaValue)`, `LuaValue.invoke()`, `LuaValue.method(String)`, `LuaValue.method(LuaValue)`

### call

    public LuaValue call(LuaValue arg)

  Description copied from class: `LuaValue`
  Call `this` 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.

  Overrides:
    `call` in class `LibFunction`
  Parameters:
    `arg` - First argument to supply to the called function
  Returns:
    First return value `(this(arg))`, or `LuaValue.NIL` if there were none.
  See Also:
    `LuaValue.call()`, `LuaValue.call(LuaValue,LuaValue)`, `LuaValue.call(LuaValue, LuaValue, LuaValue)`, `LuaValue.invoke(Varargs)`, `LuaValue.method(String,LuaValue)`, `LuaValue.method(LuaValue,LuaValue)`

### call

    public LuaValue call(LuaValue arg1,
                         LuaValue arg2)

  Description copied from class: `LuaValue`
  Call `this` 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.

  Overrides:
    `call` in class `LibFunction`
  Parameters:
    `arg1` - First argument to supply to the called function
    `arg2` - Second argument to supply to the called function
  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)`

### call

    public LuaValue call(LuaValue arg1,
                         LuaValue arg2,
                         LuaValue arg3)

  Description copied from class: `LuaValue`
  Call `this` 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.

  Overrides:
    `call` in class `LibFunction`
  Parameters:
    `arg1` - First argument to supply to the called function
    `arg2` - Second argument to supply to the called function
    `arg3` - Second argument to supply to the called function
  Returns:
    First return value `(this(arg1,arg2,arg3))`, or `LuaValue.NIL` if there were none.
  See Also:
    `LuaValue.call()`, `LuaValue.call(LuaValue)`, `LuaValue.call(LuaValue, LuaValue)`, `LuaValue.invoke(LuaValue, LuaValue, Varargs)`, `LuaValue.invokemethod(String,Varargs)`, `LuaValue.invokemethod(LuaValue,Varargs)`

### invoke

    public Varargs invoke(Varargs varargs)

  Description copied from class: `LuaValue`
  Call `this` with variable arguments, including metatag processing, and retain all return values in a `Varargs`.

  If `this` is a `LuaFunction`, call it, and return all values. Otherwise, look for the `LuaValue.CALL` metatag and call that.

  To get a particular return value, us `Varargs.arg(int)`

  To call `this` as a method call, use `LuaValue.invokemethod(LuaValue)` instead.

  Overrides:
    `invoke` in class `LibFunction`
  Parameters:
    `varargs` - Varargs containing the arguments to supply to the called function
  Returns:
    All return values as a `Varargs` instance.
  See Also:
    `LuaValue.varargsOf(LuaValue[])`, `LuaValue.call(LuaValue)`, `LuaValue.invoke()`, `LuaValue.invoke(LuaValue,Varargs)`, `LuaValue.invokemethod(String,Varargs)`, `LuaValue.invokemethod(LuaValue,Varargs)`

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