org.keplerproject.luajava
Class LuaState

java.lang.Object
  extended by org.keplerproject.luajava.LuaState

public class LuaState
extends java.lang.Object

LuaState if the main class of LuaJava for the Java developer. LuaState is a mapping of most of Lua's C API functions. LuaState also provides many other functions that will be used to manipulate objects between Lua and Java.


Field Summary
static java.lang.Integer LUA_ERRERR
          error while running the error handler function.
static java.lang.Integer LUA_ERRMEM
          memory allocation error.
static java.lang.Integer LUA_ERRRUN
          a runtime error.
static java.lang.Integer LUA_ERRSYNTAX
          syntax error during pre-compilation.
static java.lang.Integer LUA_GCCOLLECT
           
static java.lang.Integer LUA_GCCOUNT
           
static java.lang.Integer LUA_GCCOUNTB
           
static java.lang.Integer LUA_GCRESTART
           
static java.lang.Integer LUA_GCSETPAUSE
           
static java.lang.Integer LUA_GCSETSTEPMUL
           
static java.lang.Integer LUA_GCSTEP
           
static java.lang.Integer LUA_GCSTOP
           
static java.lang.Integer LUA_GLOBALSINDEX
           
static java.lang.Integer LUA_MULTRET
          Specifies that an unspecified (multiple) number of return arguments will be returned by a call.
static java.lang.Integer LUA_REGISTRYINDEX
           
static java.lang.Integer LUA_TBOOLEAN
           
static java.lang.Integer LUA_TFUNCTION
           
static java.lang.Integer LUA_TLIGHTUSERDATA
           
static java.lang.Integer LUA_TNIL
           
static java.lang.Integer LUA_TNONE
           
static java.lang.Integer LUA_TNUMBER
           
static java.lang.Integer LUA_TSTRING
           
static java.lang.Integer LUA_TTABLE
           
static java.lang.Integer LUA_TTHREAD
           
static java.lang.Integer LUA_TUSERDATA
           
static java.lang.Integer LUA_YIELD
           
 
Method Summary
 void call(int nArgs, int nResults)
           
 int checkStack(int sz)
           
 void close()
          Closes state and removes the object from the LuaStateFactory
 void concat(int n)
           
static java.lang.Number convertLuaNumber(java.lang.Double db, java.lang.Class retType)
          When you call a function in lua, it may return a number, and the number will be interpreted as a Double.
 void createTable(int narr, int nrec)
           
 int equal(int idx1, int idx2)
           
 int error()
           
 int gc(int what, int data)
           
 long getCPtrPeer()
          Return the long representing the LuaState pointer
 void getFEnv(int idx)
           
 void getField(int idx, java.lang.String k)
           
 int getGcCount()
           
 void getGlobal(java.lang.String global)
           
 LuaObject getLuaObject(int index)
          Creates a reference to an object in the index position of the stack
 LuaObject getLuaObject(LuaObject parent, LuaObject name)
          This constructor creates a LuaObject from a table that is indexed by any LuaObject.
 LuaObject getLuaObject(LuaObject parent, java.lang.Number name)
          This constructor creates a LuaObject from a table that is indexed by a number.
 LuaObject getLuaObject(LuaObject parent, java.lang.String name)
          Creates a reference to an object inside another object
 LuaObject getLuaObject(java.lang.String globalName)
          Creates a reference to an object in the variable globalName
 int getMetaTable(int idx)
           
 java.lang.Object getObjectFromUserdata(int idx)
          Gets a Object from Lua
 void getTable(int idx)
           
 int getTop()
           
 void insert(int idx)
           
 boolean isBoolean(int idx)
           
 boolean isCFunction(int idx)
           
 boolean isClosed()
          Returns true if state is closed.
 boolean isFunction(int idx)
           
 boolean isJavaFunction(int idx)
          Returns whether a userdata contains a Java Function
 boolean isNil(int idx)
           
 boolean isNone(int idx)
           
 boolean isNoneOrNil(int idx)
           
 boolean isNumber(int idx)
           
 boolean isObject(int idx)
          Tells whether a lua index contains a java Object
 boolean isString(int idx)
           
 boolean isTable(int idx)
           
 boolean isThread(int idx)
           
 boolean isUserdata(int idx)
           
 int LargError(int numArg, java.lang.String extraMsg)
           
 int LcallMeta(int obj, java.lang.String e)
           
 void LcheckAny(int nArg)
           
 int LcheckInteger(int numArg)
           
 double LcheckNumber(int numArg)
           
 void LcheckStack(int sz, java.lang.String msg)
           
 java.lang.String LcheckString(int numArg)
           
 void LcheckType(int nArg, int t)
           
 int LdoFile(java.lang.String fileName)
           
 int LdoString(java.lang.String str)
           
 int lessthan(int idx1, int idx2)
           
 java.lang.String LfindTable(int idx, java.lang.String fname, int szhint)
           
 int LgetMetaField(int obj, java.lang.String e)
           
 void LgetMetatable(java.lang.String tName)
           
 int LgetN(int t)
           
 java.lang.String Lgsub(java.lang.String s, java.lang.String p, java.lang.String r)
           
 int LloadBuffer(byte[] buff, java.lang.String name)
           
 int LloadFile(java.lang.String fileName)
           
 int LloadString(java.lang.String s)
           
 int LnewMetatable(java.lang.String tName)
           
 int LoptInteger(int numArg, int def)
           
 double LoptNumber(int numArg, double def)
           
 java.lang.String LoptString(int numArg, java.lang.String def)
           
 int Lref(int t)
           
 void LsetN(int t, int n)
           
 int Ltyperror(int nArg, java.lang.String tName)
           
 void LunRef(int t, int ref)
           
 void Lwhere(int lvl)
           
 void newTable()
           
 LuaState newThread()
           
 int next(int idx)
           
 int objLen(int idx)
           
 void openBase()
           
 void openDebug()
           
 void openIo()
           
 void openLibs()
           
 void openMath()
           
 void openOs()
           
 void openPackage()
           
 void openString()
           
 void openTable()
           
 int pcall(int nArgs, int nResults, int errFunc)
           
 void pop(int n)
           
 void pushBoolean(boolean bool)
           
 void pushInteger(int integer)
           
 void pushJavaFunction(JavaFunction func)
          Pushes a JavaFunction into the state stack
 void pushJavaObject(java.lang.Object obj)
          Pushes a Java Object into the lua stack.
 void pushNil()
           
 void pushNumber(double db)
           
 void pushObjectValue(java.lang.Object obj)
          Pushes into the stack any object value.
 void pushString(byte[] bytes)
           
 void pushString(java.lang.String str)
           
 void pushValue(int idx)
           
 int rawequal(int idx1, int idx2)
           
 void rawGet(int idx)
           
 void rawGetI(int idx, int n)
           
 void rawSet(int idx)
           
 void rawSetI(int idx, int n)
           
 void remove(int idx)
           
 void replace(int idx)
           
 int resume(int nArgs)
           
 int setFEnv(int idx)
           
 void setField(int idx, java.lang.String k)
           
 void setGlobal(java.lang.String name)
           
 int setMetaTable(int idx)
           
 void setTable(int idx)
           
 void setTop(int idx)
           
 int status()
           
 int strLen(int idx)
           
 boolean toBoolean(int idx)
           
 int toInteger(int idx)
           
 java.lang.Object toJavaObject(int idx)
          Function that returns a Java Object equivalent to the one in the given position of the Lua Stack.
 double toNumber(int idx)
           
 java.lang.String toString(int idx)
           
 LuaState toThread(int idx)
           
 int type(int idx)
           
 java.lang.String typeName(int tp)
           
 void xmove(LuaState to, int n)
           
 int yield(int nResults)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LUA_GLOBALSINDEX

public static final java.lang.Integer LUA_GLOBALSINDEX

LUA_REGISTRYINDEX

public static final java.lang.Integer LUA_REGISTRYINDEX

LUA_TNONE

public static final java.lang.Integer LUA_TNONE

LUA_TNIL

public static final java.lang.Integer LUA_TNIL

LUA_TBOOLEAN

public static final java.lang.Integer LUA_TBOOLEAN

LUA_TLIGHTUSERDATA

public static final java.lang.Integer LUA_TLIGHTUSERDATA

LUA_TNUMBER

public static final java.lang.Integer LUA_TNUMBER

LUA_TSTRING

public static final java.lang.Integer LUA_TSTRING

LUA_TTABLE

public static final java.lang.Integer LUA_TTABLE

LUA_TFUNCTION

public static final java.lang.Integer LUA_TFUNCTION

LUA_TUSERDATA

public static final java.lang.Integer LUA_TUSERDATA

LUA_TTHREAD

public static final java.lang.Integer LUA_TTHREAD

LUA_MULTRET

public static final java.lang.Integer LUA_MULTRET
Specifies that an unspecified (multiple) number of return arguments will be returned by a call.


LUA_ERRRUN

public static final java.lang.Integer LUA_ERRRUN
a runtime error.


LUA_YIELD

public static final java.lang.Integer LUA_YIELD

LUA_ERRSYNTAX

public static final java.lang.Integer LUA_ERRSYNTAX
syntax error during pre-compilation.


LUA_ERRMEM

public static final java.lang.Integer LUA_ERRMEM
memory allocation error. For such errors, Lua does not call the error handler function.


LUA_ERRERR

public static final java.lang.Integer LUA_ERRERR
error while running the error handler function.


LUA_GCSTOP

public static final java.lang.Integer LUA_GCSTOP

LUA_GCRESTART

public static final java.lang.Integer LUA_GCRESTART

LUA_GCCOLLECT

public static final java.lang.Integer LUA_GCCOLLECT

LUA_GCCOUNT

public static final java.lang.Integer LUA_GCCOUNT

LUA_GCCOUNTB

public static final java.lang.Integer LUA_GCCOUNTB

LUA_GCSTEP

public static final java.lang.Integer LUA_GCSTEP

LUA_GCSETPAUSE

public static final java.lang.Integer LUA_GCSETPAUSE

LUA_GCSETSTEPMUL

public static final java.lang.Integer LUA_GCSETSTEPMUL
Method Detail

close

public void close()
Closes state and removes the object from the LuaStateFactory


isClosed

public boolean isClosed()
Returns true if state is closed.


getCPtrPeer

public long getCPtrPeer()
Return the long representing the LuaState pointer

Returns:
long

newThread

public LuaState newThread()

getTop

public int getTop()

setTop

public void setTop(int idx)

pushValue

public void pushValue(int idx)

remove

public void remove(int idx)

insert

public void insert(int idx)

replace

public void replace(int idx)

checkStack

public int checkStack(int sz)

xmove

public void xmove(LuaState to,
                  int n)

isNumber

public boolean isNumber(int idx)

isString

public boolean isString(int idx)

isFunction

public boolean isFunction(int idx)

isCFunction

public boolean isCFunction(int idx)

isUserdata

public boolean isUserdata(int idx)

isTable

public boolean isTable(int idx)

isBoolean

public boolean isBoolean(int idx)

isNil

public boolean isNil(int idx)

isThread

public boolean isThread(int idx)

isNone

public boolean isNone(int idx)

isNoneOrNil

public boolean isNoneOrNil(int idx)

type

public int type(int idx)

typeName

public java.lang.String typeName(int tp)

equal

public int equal(int idx1,
                 int idx2)

rawequal

public int rawequal(int idx1,
                    int idx2)

lessthan

public int lessthan(int idx1,
                    int idx2)

toNumber

public double toNumber(int idx)

toInteger

public int toInteger(int idx)

toBoolean

public boolean toBoolean(int idx)

toString

public java.lang.String toString(int idx)

strLen

public int strLen(int idx)

objLen

public int objLen(int idx)

toThread

public LuaState toThread(int idx)

pushNil

public void pushNil()

pushNumber

public void pushNumber(double db)

pushInteger

public void pushInteger(int integer)

pushString

public void pushString(java.lang.String str)

pushString

public void pushString(byte[] bytes)

pushBoolean

public void pushBoolean(boolean bool)

getTable

public void getTable(int idx)

getField

public void getField(int idx,
                     java.lang.String k)

rawGet

public void rawGet(int idx)

rawGetI

public void rawGetI(int idx,
                    int n)

createTable

public void createTable(int narr,
                        int nrec)

newTable

public void newTable()

getMetaTable

public int getMetaTable(int idx)

getFEnv

public void getFEnv(int idx)

setTable

public void setTable(int idx)

setField

public void setField(int idx,
                     java.lang.String k)

rawSet

public void rawSet(int idx)

rawSetI

public void rawSetI(int idx,
                    int n)

setMetaTable

public int setMetaTable(int idx)

setFEnv

public int setFEnv(int idx)

call

public void call(int nArgs,
                 int nResults)

pcall

public int pcall(int nArgs,
                 int nResults,
                 int errFunc)

yield

public int yield(int nResults)

resume

public int resume(int nArgs)

status

public int status()

gc

public int gc(int what,
              int data)

getGcCount

public int getGcCount()

next

public int next(int idx)

error

public int error()

concat

public void concat(int n)

LdoFile

public int LdoFile(java.lang.String fileName)

LdoString

public int LdoString(java.lang.String str)

LgetMetaField

public int LgetMetaField(int obj,
                         java.lang.String e)

LcallMeta

public int LcallMeta(int obj,
                     java.lang.String e)

Ltyperror

public int Ltyperror(int nArg,
                     java.lang.String tName)

LargError

public int LargError(int numArg,
                     java.lang.String extraMsg)

LcheckString

public java.lang.String LcheckString(int numArg)

LoptString

public java.lang.String LoptString(int numArg,
                                   java.lang.String def)

LcheckNumber

public double LcheckNumber(int numArg)

LoptNumber

public double LoptNumber(int numArg,
                         double def)

LcheckInteger

public int LcheckInteger(int numArg)

LoptInteger

public int LoptInteger(int numArg,
                       int def)

LcheckStack

public void LcheckStack(int sz,
                        java.lang.String msg)

LcheckType

public void LcheckType(int nArg,
                       int t)

LcheckAny

public void LcheckAny(int nArg)

LnewMetatable

public int LnewMetatable(java.lang.String tName)

LgetMetatable

public void LgetMetatable(java.lang.String tName)

Lwhere

public void Lwhere(int lvl)

Lref

public int Lref(int t)

LunRef

public void LunRef(int t,
                   int ref)

LgetN

public int LgetN(int t)

LsetN

public void LsetN(int t,
                  int n)

LloadFile

public int LloadFile(java.lang.String fileName)

LloadString

public int LloadString(java.lang.String s)

LloadBuffer

public int LloadBuffer(byte[] buff,
                       java.lang.String name)

Lgsub

public java.lang.String Lgsub(java.lang.String s,
                              java.lang.String p,
                              java.lang.String r)

LfindTable

public java.lang.String LfindTable(int idx,
                                   java.lang.String fname,
                                   int szhint)

pop

public void pop(int n)

getGlobal

public void getGlobal(java.lang.String global)

setGlobal

public void setGlobal(java.lang.String name)

openBase

public void openBase()

openTable

public void openTable()

openIo

public void openIo()

openOs

public void openOs()

openString

public void openString()

openMath

public void openMath()

openDebug

public void openDebug()

openPackage

public void openPackage()

openLibs

public void openLibs()

getObjectFromUserdata

public java.lang.Object getObjectFromUserdata(int idx)
                                       throws LuaException
Gets a Object from Lua

Parameters:
idx - index of the lua stack
Returns:
Object
Throws:
LuaException - if the lua object does not represent a java object.

isObject

public boolean isObject(int idx)
Tells whether a lua index contains a java Object

Parameters:
idx - index of the lua stack
Returns:
boolean

pushJavaObject

public void pushJavaObject(java.lang.Object obj)
Pushes a Java Object into the lua stack.
This function does not check if the object is from a class that could be represented by a lua type. Eg: java.lang.String could be a lua string.

Parameters:
obj - Object to be pushed into lua

pushJavaFunction

public void pushJavaFunction(JavaFunction func)
                      throws LuaException
Pushes a JavaFunction into the state stack

Parameters:
func -
Throws:
LuaException

isJavaFunction

public boolean isJavaFunction(int idx)
Returns whether a userdata contains a Java Function

Parameters:
idx - index of the lua stack
Returns:
boolean

pushObjectValue

public void pushObjectValue(java.lang.Object obj)
                     throws LuaException
Pushes into the stack any object value.
This function checks if the object could be pushed as a lua type, if not pushes the java object.

Parameters:
obj -
Throws:
LuaException

toJavaObject

public java.lang.Object toJavaObject(int idx)
                              throws LuaException
Function that returns a Java Object equivalent to the one in the given position of the Lua Stack.

Parameters:
idx - Index in the Lua Stack
Returns:
Java object equivalent to the Lua one
Throws:
LuaException

getLuaObject

public LuaObject getLuaObject(java.lang.String globalName)
Creates a reference to an object in the variable globalName

Parameters:
globalName -
Returns:
LuaObject

getLuaObject

public LuaObject getLuaObject(LuaObject parent,
                              java.lang.String name)
                       throws LuaException
Creates a reference to an object inside another object

Parameters:
parent - The Lua Table or Userdata that contains the Field.
name - The name that index the field
Returns:
LuaObject
Throws:
LuaException - if parent is not a table or userdata

getLuaObject

public LuaObject getLuaObject(LuaObject parent,
                              java.lang.Number name)
                       throws LuaException
This constructor creates a LuaObject from a table that is indexed by a number.

Parameters:
parent - The Lua Table or Userdata that contains the Field.
name - The name (number) that index the field
Returns:
LuaObject
Throws:
LuaException - When the parent object isn't a Table or Userdata

getLuaObject

public LuaObject getLuaObject(LuaObject parent,
                              LuaObject name)
                       throws LuaException
This constructor creates a LuaObject from a table that is indexed by any LuaObject.

Parameters:
parent - The Lua Table or Userdata that contains the Field.
name - The name (LuaObject) that index the field
Returns:
LuaObject
Throws:
LuaException - When the parent object isn't a Table or Userdata

getLuaObject

public LuaObject getLuaObject(int index)
Creates a reference to an object in the index position of the stack

Parameters:
index - position on the stack
Returns:
LuaObject

convertLuaNumber

public static java.lang.Number convertLuaNumber(java.lang.Double db,
                                                java.lang.Class retType)
When you call a function in lua, it may return a number, and the number will be interpreted as a Double.
This function converts the number into a type specified by retType

Parameters:
db - lua number to be converted
retType - type to convert to
Returns:
The converted number