--****************************************************************************** --* * --* File: LuaJava_03.lua Revision: 1.0 * --* * --* Contents: first experiments with LuaJava 1.0b3 and Lua 5.0 * --* * --* Creation: 06.11.2004 Last Modification: 07.11.2004 * --* * --* Platform: IBM-compatible PC running Windows 98SE * --* * --* Environment: Lua 5.0, LuaJava 1.0b3, Java 1.4.2 * --* * --* Author: Andreas Rozek Phone: ++49 (7031) 222305 * --* Bunsenstraße 80/1 Fax: - * --* D-71032 Böblingen EMail: Info@Andreas-Rozek.De * --* Germany * --* * --* URL: http://www.Andreas-Rozek.de/ * --* * --* Copyright: the software is published under the "GNU Lesser General Pub- * --* lic License" (see "http://www.fsf.org/copyleft/lesser.html" * --* for additional information) * --* * --* Comments: (none) * --* * --****************************************************************************** local JavaClass = luajava.bindClass ("LuaJava_03"); local JavaInstance = luajava.newInstance("LuaJava_03", "(just for testing)"); --**** Java objects cannot be printed directly - String:valueOf(...) is required **** local String = luajava.bindClass("java.lang.String"); -------------------------------------------------------------------------------- -- main program -- -------------------------------------------------------------------------------- println(); println("LuaJava_03 - first experiments with LuaJava 1.0b3 and Lua 5.0"); println(); --**** analyze the above Lua objects **** println("JavaClass:"); println(" type(...) = \""..type(JavaClass).."\""); println(" value = \""..String:valueOf(JavaClass).."\" (tostring() yields \""..tostring(JavaClass).."\")"); println(); println(" class constants (read access):"); println(" BooleanClassConstant = "..tostring(JavaClass.BooleanClassConstant)); println(" ByteClassConstant = "..tostring(JavaClass.ByteClassConstant)); println(" ShortClassConstant = "..tostring(JavaClass.ShortClassConstant)); println(" IntClassConstant = "..tostring(JavaClass.IntClassConstant)); println(" LongClassConstant = "..tostring(JavaClass.LongClassConstant)); println(" FloatClassConstant = "..tostring(JavaClass.FloatClassConstant)); println(" DoubleClassConstant = "..tostring(JavaClass.DoubleClassConstant)); println(" CharClassConstant = "..tostring(JavaClass.CharClassConstant)); println(" StringClassConstant = "..tostring(JavaClass.StringClassConstant)); println(); println(" class variables (read access):"); println(" BooleanClassVariable = "..tostring(JavaClass.BooleanClassVariable)); println(" ByteClassVariable = "..tostring(JavaClass.ByteClassVariable)); println(" ShortClassVariable = "..tostring(JavaClass.ShortClassVariable)); println(" IntClassVariable = "..tostring(JavaClass.IntClassVariable)); println(" LongClassVariable = "..tostring(JavaClass.LongClassVariable)); println(" FloatClassVariable = "..tostring(JavaClass.FloatClassVariable)); println(" DoubleClassVariable = "..tostring(JavaClass.DoubleClassVariable)); println(" CharClassVariable = "..tostring(JavaClass.CharClassVariable)); println(" StringClassVariable = "..tostring(JavaClass.StringClassVariable)); println(); println(" class variables (write access):"); println(" impossible, throws \"attempt to index local `JavaClass' (a userdata value)\""); -- JavaClass.BooleanClassVariable = false; --println(" BooleanClassVariable = "..tostring(JavaClass.BooleanClassVariable)); -- JavaClass.ByteClassVariable = 23; --println(" ByteClassVariable = "..tostring(JavaClass.ByteClassVariable)); -- JavaClass.ShortClassVariable = 2345; --println(" ShortClassVariable = "..tostring(JavaClass.ShortClassVariable)); -- JavaClass.IntClassVariable = 234567 --println(" IntClassVariable = "..tostring(JavaClass.IntClassVariable)); -- JavaClass.LongClassVariable = 23456789; --println(" LongClassVariable = "..tostring(JavaClass.LongClassVariable)); -- JavaClass.FloatClassVariable = 234.567; --println(" FloatClassVariable = "..tostring(JavaClass.FloatClassVariable)); -- JavaClass.DoubleClassVariable = 234.567; --println(" DoubleClassVariable = "..tostring(JavaClass.DoubleClassVariable)); -- JavaClass.CharClassVariable = 'b'; --println(" CharClassVariable = "..tostring(JavaClass.CharClassVariable)); -- JavaClass.StringClassVariable = "just another value"; --println(" StringClassVariable = "..tostring(JavaClass.StringClassVariable)); println(); println(" class methods (invocation):"); println(" BooleanClassMethod(true) -> "..tostring(JavaClass:BooleanClassMethod(true))); println(" ByteClassMethod(123) -> "..tostring(JavaClass:ByteClassMethod(123))); println(" ShortClassMethod(12345) -> "..tostring(JavaClass:ShortClassMethod(12345))); println(" IntClassMethod(1234567) -> "..tostring(JavaClass:IntClassMethod(1234567))); println(" LongClassMethod(123456789) -> "..tostring(JavaClass:LongClassMethod(123456789))); println(" FloatClassMethod(123.45) -> "..tostring(JavaClass:FloatClassMethod(123.45))); println(" DoubleClassMethod(123.45) -> "..tostring(JavaClass:DoubleClassMethod(123.45))); --println(" CharClassMethod('a') -> "..tostring(JavaClass:CharClassMethod('a'))); println(" CharClassMethod('a') -> impossible, throws \"Invalid method call. No such method.\""); println(" StringClassMethod('Test') -> "..tostring(JavaClass:StringClassMethod('Test'))); println(); println("JavaInstance:"); println(" type(...) = \""..type(JavaInstance).."\""); println(" value = \""..String:valueOf(JavaInstance).."\" (tostring() yields \""..tostring(JavaInstance).."\")"); println(); println(" instance variables (read access):"); println(" BooleanVariable = "..tostring(JavaInstance.BooleanVariable)); println(" ByteVariable = "..tostring(JavaInstance.ByteVariable)); println(" ShortVariable = "..tostring(JavaInstance.ShortVariable)); println(" IntVariable = "..tostring(JavaInstance.IntVariable)); println(" LongVariable = "..tostring(JavaInstance.LongVariable)); println(" FloatVariable = "..tostring(JavaInstance.FloatVariable)); println(" DoubleVariable = "..tostring(JavaInstance.DoubleVariable)); println(" CharVariable = "..tostring(JavaInstance.CharVariable)); println(" StringVariable = "..tostring(JavaInstance.StringVariable)); println(); println(" instance variables (write access):"); println(" impossible, throws \"attempt to index local `JavaInstance' (a userdata value)\""); -- JavaInstance.BooleanVariable = false; --println(" BooleanVariable = "..tostring(JavaInstance.BooleanVariable)); -- JavaInstance.ByteVariable = 23; --println(" ByteVariable = "..tostring(JavaInstance.ByteVariable)); -- JavaInstance.ShortVariable = 2345; --println(" ShortVariable = "..tostring(JavaInstance.ShortVariable)); -- JavaInstance.IntVariable = 234567 --println(" IntVariable = "..tostring(JavaInstance.IntVariable)); -- JavaInstance.LongVariable = 23456789; --println(" LongVariable = "..tostring(JavaInstance.LongVariable)); -- JavaInstance.FloatVariable = 234.567; --println(" FloatVariable = "..tostring(JavaInstance.FloatVariable)); -- JavaInstance.DoubleVariable = 234.567; --println(" DoubleVariable = "..tostring(JavaInstance.DoubleVariable)); -- JavaInstance.CharVariable = 'b'; --println(" CharVariable = "..tostring(JavaInstance.CharVariable)); -- JavaInstance.StringVariable = "just another value"; --println(" StringVariable = "..tostring(JavaInstance.StringVariable)); println(); println(" instance methods (invocation):"); println(" BooleanMethod(true) -> "..tostring(JavaInstance:BooleanMethod(true))); println(" ByteMethod(123) -> "..tostring(JavaInstance:ByteMethod(123))); println(" ShortMethod(12345) -> "..tostring(JavaInstance:ShortMethod(12345))); println(" IntMethod(1234567) -> "..tostring(JavaInstance:IntMethod(1234567))); println(" LongMethod(123456789) -> "..tostring(JavaInstance:LongMethod(123456789))); println(" FloatMethod(123.45) -> "..tostring(JavaInstance:FloatMethod(123.45))); println(" DoubleMethod(123.45) -> "..tostring(JavaInstance:DoubleMethod(123.45))); --println(" CharMethod('a') -> "..tostring(JavaInstance:CharMethod('a'))); println(" CharMethod('a') -> impossible, throws \"Invalid method call. No such method.\""); println(" StringMethod('Test') -> "..tostring(JavaInstance:StringMethod('Test')));